Slick 3.0.0-RC2
We have just released Slick 3.0.0-RC2, the second release candidate for “Reactive Slick”. You can find the source code here: https://github.com/slick/slick/tree/3.0.0-RC2. Builds for Scala 2.10 (2.10.4+ recommended) and 2.11 are available from Maven Central, as usual.
These are the major new features in Slick 3.0:
- A new API for composing and executing database actions.
- Support for the Reactive Streams API for streaming results from the database.
- Improved configuration of database connections via Typesafe Config, including built-in support for HikariCP.
- Support for nested Option types and non-primtive Option types in the Lifted Embedding.
- Properly typed outer join operators based on the improved Option support.
- A new macro-based implementation of the Plain SQL API with optional compile-time checking and type inference for embedded SQL statements.
- Many small improvements and bug fixes in the schema code generator.
- Optional multi-line formatting and indenting of generated SQL code for more readable debug output.
Most of the manual has been updated and improved. The “Slick Testkit” chapter will follow soon. The Activator templates “Hello Slick” and “Slick Plain SQL” are available for 3.0.0-RC1 and will be updated to RC2 soon, followed by the remaining templates. There is a new section in the Migration Guide for upgrading from Slick 2.1. The commercial Slick Extensions package with additional database drivers is also available for this RC. See the manual for details on adding it to your build.
Please provide feedback on the stability of this RC if you encounter any problems. The only remaining blocker for a final 3.0.0 release at the moment is the availability of Reactive Streams 1.0.
Here is a complete list of changes since 2.1.0:
1398565
Update dependencies and version number for 3.0.0-RC259917d7
Improve documentation after internal review4183591
Bring back Database.close (via java.io.Closeable)a9f95ab
Replace Database.close with Database.shutdown for asynchronous closing:9e11f07
Distinguish between high- and low-priority jobs in AsyncExecutor:5acc8fc
Handle Exceptions from runInContext correctly:df1e346
Deprecate Database.withSession and remove usages of this method8bf0152
Correctly propagate the AsyncExecutor in Database.forDataSourcea6ff0d3
Lazily instantiate the ExecutionContext in AsyncExecutor:73ad13d
Change all DBIO subtypes to put Effect type parameters last.1b37a85
Return a single Int instead of a Vector[Int] from the sqlu interpolator.a633204
Export scala.slick packages through OSGibd0c9c4
Try to prevent some spurious failures on Travis CI58a1db9
Proper treatment of CHAR(1) columns in JdbcModelBuilder:7f0f62f
Make code generator tests usable from other slick-extensions:25370cb
Fix bugs detected by Slick Extensions upgrade:13bf805
- fix typo in list of code generating tests - by this typo adjusted code of H2Driver for UUID12faf5d
Upgrade to Reactive Streams 1.0.0.RC3648184c
Package structure and project layout refactoring:9c730c0
Upgrade to Reactive Streams 1.0.0.RC2:24770de
AddDatabaseConfig
as a higher-level configuration abstraction:759cbc2
Restore#$
support in the macro-based Plain SQL interpolation:62ddadc
Macro-based PlainSQL API Implemented TypedStaticQuery as tsqld63a018
UUID regression testkit: - port #989 for v3.0 (with tests) - fix wrong PR #1058 (for #982), as new tests have shown - add UUID column for roundtrip tests0a44b74
Update LiftedEmbedding.scala5af0d9b
Distinguish between BLOB and BYTEA in PostgreSQL model builderec7f2aa
Use TestDB for code generator tests:cc8d3f0
Proper support for string lengths:41c717a
Support fetch size in statement parameters.965604c
Use force-insert semantics for inserting from queries and expressions.0e58e7d
Deprecate the Direct Embedding0ba0dd5
Remove the blocking API that was introduced in 3.0.0-M12f64c79
Rename Action to DBIO:86974bd
Simplify SQLBuilder and formatting/indenting:20378ec
QuoteSqlType
argument in code generator.b1dca21
Make ColumnOptions more modular:7272180
Use unconstrained text type as default on PostgreSQL6cec3f7
Prefer prepareStatement(sql) instead of prepareStatement(sql, Int, Int)a3eec4f
Support transaction isolation levels6ea7fdb
Generic fusion implementation for FlatMapAction and CleanupAction:706f2b1
Allow the SQL statements to be overridden in SqlActions.a325f5e
Run a user-defined init function on all created JDBC Statements3315a3b
Refactoring of ActionContext:dc687de
Avoid long nested sequences of SchemaDescription.++ in generated code:62d5e92
Quote illegal identifiers in generated Scala sources.58c4ed5
Make ‘desiredColumnOrder’ in code generator non-final.a645205
Support statement parameters in the new Action-based API.b1c5b66
Switch JDBC metadata API and code generator to the new API.c92a615
Fix typo in orm-to-slick.rstd4f019f
Move profile-level Action definitions outside of profiles.5cd423f
Deprecate Invoker convenience methods and iteratees7d576c8
Properly deprecate .Implicit and .simple in all profile levels30c135e
Upgrade to sbt 0.13.7e9274ec
Improve build system for documentation:a6e3b9b
Further modularization of Slick:4ab4a6b
Switch Direct Embedding over to the new Action-based API.ac37f1c
Update documentation for 3.0:e6562c7
Simplify Action Effect handling:06d1ca0
Increase timeout for Reactive Streams TCK tests.efbe6f6
Bump version numbers:4d42528
Add concurrency stress test for streaming API:80929a6
Documentation plus minor improvements and fixes:273b957
Update to Reactive Streams 1.0.0.M3 and fix remaining PR review issues:688d7f2
Convert more test cases and add missing features:d862e0f
Optimize the streaming engine and fix some bugs:9ad62a9
Implement streaming via Reactive Streams API:6a85767
Convert several test cases to the new API.8ef6cde
Add basic transaction support for database actions.09590fd
Implement session pinning for database Actions:66a9b41
Basic implementation of action monad and asynchronous execution engine:bf17772
Use HikariCP by default (instead of no connection pooling):4569c52
Simplify connection pool configurationcc92c26
Simplify thread pool configuration:423e78c
Remove the option to disable auto-commit for new connections.e4dddcd
Remove BoneCP support and drop configuration compatibility with Play.812100e
Add HikariCP support in addition to BoneCP.bb58103
Add primitives and configuration for async execution of blocking I/O0ea777a
Fix broken build due to merging nested options support8d4a02f
Ensure generated file ends with a newline character.9cdf7ec
Make comment format match others in file.ef5f9a8
Avoid indenting blank lines, to avoid trailing whitespace.8225a8f
Add Option-extended joins:75583dc
Lifted Embedding encoding of nested and multi-column Option types:de389a4
Remove the Column type.5da96b4
Update orm-to-slick.rst7a1d119
modified to use GlobalConfig.777dbeb
Add SimpleLiteral factory (and fix one unrelated unchecked warning)82b258f
Use Unicode symbols in tree and table dumps for better readability.f54d272
Add BoneCP support to Database.forConfig.369ad73
Use application.conf for Slick settings.61d032b
Corrected docs to use “inSet” instead of “inSeq”b0b0252
Fix forceInsertAll for single argument770d0a1
Update build for 2.2.0-SNAPSHOTcb8183d
Added support for string function repeat.57aa9e7
Workaround to pass Travis CI.7a58f7f
Try for SQL String Indentation.