We have just released Slick 2.1.0-M1, the first milestone for Slick 2.1. It should show up on Maven Central within the next few hours. You can find the source code here: https://github.com/slick/slick/tree/2.1.0-M1. Builds are available for Scala 2.10 (2.10.4 recommended) and 2.11.0-RC4.
These are the major new features added in this miletone:
- OSGi support: Slick and Slick Extensions are now proper OSGi bundles.
- Scala 2.11 support: Slick is cross-built for both Scala 2.10 and 2.11 from the same codebase.
- Collection type constructor encoding in queries: All collection-valued queries now
contain a type constructor (the default for tables being
Seq, as before) that can be changed with a call to
.to[...](like in Scala Collections) at any point in a query, thus allowing arbitrary collections (including arrays) to be built with
- Improved performance when reading JDBC ResultSets, including the option to define even more efficient custom mappings which can completely avoid boxing. See JdbcMapperTest and UnboxedBenchmark for examples.
- Improved and more comprehensive API documentation.
- Outer join emulation: All types of outer joins are now available on all databases. You can check for the corresponding capability flags to see if the support is native or emulated (with different joins and unions).
- Code generator improvements.
- All bug fixes from Slick 2.0.1 and some new ones on top of it, which are also scheduled to go into the upcoming Slick 2.0.2 maintenance release.
Source compatibility of the API has mostly been preserved between 2.0 and 2.1.0-M1 but there are some changes in the JDBC Invokers which may require source changes. There is no binary compatibility between the 2.0 and 2.1 series.
Note that this is not a production-ready or beta release. In particular, the manual has not yet been updated to reflect the changes and new features (but there are unit tests and scaladoc comments for them). The Slick Extensions package has been published along with this milestone release. Please provide feedback on the stability and API of this milestone release if you encounter any problems.
Here is a complete list of changes since 2.0.0:
1c89ee8Set version to 2.1.0-M1
3ca772dAdd some hooks to JdbcMappingCompilerComponent.
a10be62Use Scala specialization for ResultConverter.
513c956Use positional access in JDBC ResultConverters.
90cc8bfOptimize conversion of result and parameter values.
935558eDeprecate more operators:
9dccddcImprove scaladoc comments and clean up API for Slick 2.1.
85d4e00Clean up dependencies
c8420b2Improve OSGi integration:
57c87f5Add def size as alias for length to Query for more Scala collections api conformity
55c2a01Fix assertion error for multiple nameless fks or indices
047bb07First cut at OSGi-fun for slick.
b2a6dc1Add docs for MappedColumnType import and hand-written case class companions.
3a7f53cPrevent “no-symbol does not have an owner” when using MappedTo.
338e959Fix identity groupBy with type mappings.
18f3cf2Emulate outer joins where necessary.
439305fCorrectly propagate build failures to sbt’s exit code.
82316d1Fix codegen autoinc last as option for HLists (issue #704)
76e638cAdd test for outer joins and fix capability declarations.
b86cd4bFix name collision with columns named ‘tag’ in codegen
f1c3737Fix Scaladoc links
2dca474Scala 2.11 compatibility.
e71ed6eAdd alias and documentation for ForeignKeyAction
3fc16d8Allow building of non-erased collections through ClassTags.
6e981e5Provide implicit CollectionTypeConstructors
e3ab1d8Allow Query result type constructors to be changed.
0139d27Simplify Query internals.
5c5c657Encode the type constructor for the unpacked collection type into Query.
d0e1e99Remove zero values from ScalaType.
6d1cbd9Simplify Option handling in JdbcProfile.
754660cAdd test for broken mapping to Char
e2ab531Fixed issue #698 (MappedColumnType broken for Char)
77a19aaFixed issue #554 (ZIP joins)
ce04fe8Modify DDL to run drop phases in LIFO order. Fixes issue #701.
c78ed2fEmulate empty join conditions where needed.
7ae79d6Add JDBC interop docs
3555385Add documentation for
258a6bcSupport casts to boolean and double in Access.
e065fcdFix initialization order problem in generated code
89c3c2eReuse “simple” object for “Implicit” in driver implementations.
c6bc382Remove deprecated features
7e2d6b4Update version numbers for 2.1
fc5cabeEnable documentation tests on Travis CI
73064e9Documentation improvements for 2.0.1.
8b8ed11Add test case for issue #645 (to be fixed in slick-extensions)
1e5146cImplement casts for more basic data types in QueryInterpreter.
2a54174Add configuration for MySQL and PostgreSQL tests on Travis CI.
386920aAdd basic Travis CI configuration
e96132bFix self-referencing table in codegen (#619)
d944e27Expand Table refs into columns in “returning” projections.
1f87cfbAdd ddl for all tables to codegen
4533b0cSubstitute correct versions numbers from the build into the docs
b01241dRemove all special handling for products of size 1.
2022107Infer correct NominalType views even without the NominalType.
c59ba50Fix a smorgasbord of bugs for more robust groupBy.
73c9175Add optional db authentication to default code generator runner
1f76f36Improve codegen docs: address spotted confusions, hlist fix, typos, formatting
23e9450Add row value constructor to codegen output Supersedes #614
b870f3dGenerate scaladoc src links and graphs for test kit
be508ccFix for #618, codegen single, non-option column tables.
6d7610dFix for taking Option GetResult from caller scope
e436802Fix for #616, code gen generated wrong default value for Option columns
da01462Fix some codegen docs
ae51292Extend codegen HList test to 33 columns to test performance
b5f9144Change codegen to avoid :: HCons type alias (as a possible workaround for #577)
b88337dSplit compound types and compound values in codegen
9f274ccEnable disabled codegen tests after fixing spurious compilation errors
0d2e885Document caching insert invoker
217af59Ensure that CountAll rewriting creates unique column names.
5aad43fAdd MiMa for Slick 2.0 stream
98af9b6Support Library.Max in QueryInterpreter.
e2ece2fPass Slick version properly from sbt into Sphinx.
0be0423Fix for #597, negative int default value
abe9197Add failing test for #175