Slick 2.1.0-M1

April 17 2014
by Stefan Zeiger

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 .run
  • 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:
  • 1c89ee8 Set version to 2.1.0-M1
  • 3ca772d Add some hooks to JdbcMappingCompilerComponent.
  • a10be62 Use Scala specialization for ResultConverter.
  • 513c956 Use positional access in JDBC ResultConverters.
  • 90cc8bf Optimize conversion of result and parameter values.
  • 935558e Deprecate more operators:
  • 9dccddc Improve scaladoc comments and clean up API for Slick 2.1.
  • a13e53a Remove IntrinsicSymbol
  • 85d4e00 Clean up dependencies
  • c8420b2 Improve OSGi integration:
  • 57c87f5 Add def size as alias for length to Query for more Scala collections api conformity
  • 55c2a01 Fix assertion error for multiple nameless fks or indices
  • 047bb07 First cut at OSGi-fun for slick.
  • b2a6dc1 Add docs for MappedColumnType import and hand-written case class companions.
  • 3a7f53c Prevent “no-symbol does not have an owner” when using MappedTo.
  • 338e959 Fix identity groupBy with type mappings.
  • 18f3cf2 Emulate outer joins where necessary.
  • 439305f Correctly propagate build failures to sbt’s exit code.
  • 82316d1 Fix codegen autoinc last as option for HLists (issue #704)
  • 76e638c Add test for outer joins and fix capability declarations.
  • b86cd4b Fix name collision with columns named ‘tag’ in codegen
  • f1c3737 Fix Scaladoc links
  • 2dca474 Scala 2.11 compatibility.
  • e71ed6e Add alias and documentation for ForeignKeyAction
  • 3fc16d8 Allow building of non-erased collections through ClassTags.
  • 6e981e5 Provide implicit CollectionTypeConstructors
  • e3ab1d8 Allow Query result type constructors to be changed.
  • 0139d27 Simplify Query internals.
  • 5c5c657 Encode the type constructor for the unpacked collection type into Query.
  • d0e1e99 Remove zero values from ScalaType.
  • 6d1cbd9 Simplify Option handling in JdbcProfile.
  • 1b5f1f4 Simplify Invokers
  • 754660c Add test for broken mapping to Char
  • e2ab531 Fixed issue #698 (MappedColumnType broken for Char)
  • 77a19aa Fixed issue #554 (ZIP joins)
  • ce04fe8 Modify DDL to run drop phases in LIFO order. Fixes issue #701.
  • c78ed2f Emulate empty join conditions where needed.
  • 7ae79d6 Add JDBC interop docs
  • 3555385 Add documentation for into method
  • 258a6bc Support casts to boolean and double in Access.
  • e065fcd Fix initialization order problem in generated code
  • 89c3c2e Reuse “simple” object for “Implicit” in driver implementations.
  • c6bc382 Remove deprecated features
  • 7e2d6b4 Update version numbers for 2.1
  • fc5cabe Enable documentation tests on Travis CI
  • 73064e9 Documentation improvements for 2.0.1.
  • 8b8ed11 Add test case for issue #645 (to be fixed in slick-extensions)
  • 1e5146c Implement casts for more basic data types in QueryInterpreter.
  • 2a54174 Add configuration for MySQL and PostgreSQL tests on Travis CI.
  • 386920a Add basic Travis CI configuration
  • e96132b Fix self-referencing table in codegen (#619)
  • d944e27 Expand Table refs into columns in “returning” projections.
  • 1f87cfb Add ddl for all tables to codegen
  • 4533b0c Substitute correct versions numbers from the build into the docs
  • b01241d Remove all special handling for products of size 1.
  • 2022107 Infer correct NominalType views even without the NominalType.
  • c59ba50 Fix a smorgasbord of bugs for more robust groupBy.
  • 73c9175 Add optional db authentication to default code generator runner
  • 1f76f36 Improve codegen docs: address spotted confusions, hlist fix, typos, formatting
  • 23e9450 Add row value constructor to codegen output Supersedes #614
  • b870f3d Generate scaladoc src links and graphs for test kit
  • be508cc Fix for #618, codegen single, non-option column tables.
  • 6d7610d Fix for taking Option GetResult from caller scope
  • e436802 Fix for #616, code gen generated wrong default value for Option columns
  • da01462 Fix some codegen docs
  • ae51292 Extend codegen HList test to 33 columns to test performance
  • b5f9144 Change codegen to avoid :: HCons type alias (as a possible workaround for #577)
  • b88337d Split compound types and compound values in codegen
  • 9f274cc Enable disabled codegen tests after fixing spurious compilation errors
  • 0d2e885 Document caching insert invoker
  • 217af59 Ensure that CountAll rewriting creates unique column names.
  • 5aad43f Add MiMa for Slick 2.0 stream
  • 98af9b6 Support Library.Max in QueryInterpreter.
  • e2ece2f Pass Slick version properly from sbt into Sphinx.
  • 0be0423 Fix for #597, negative int default value
  • abe9197 Add failing test for #175

Past News Items

Dec 05 2016
We have just released Slick 3.2.0-M2, the second milestone for Slick 3.2. It should show up on Maven Central within the next few hours. You can find the source code...
Jul 04 2016
We have just released Slick 3.2.0-M1, the first milestone for Slick 3.2. It should show up on Maven Central within the next few hours. You can find the source code...
Mar 18 2016
I'd like to draw your attention to the new [community process](/community/process.html) and [code of conduct](/community/conduct.html) for Slick, both of which are based on [Play Framework's](https://playframework.com/community-process). Back in 2008 [I](https://github.com/szeiger) started...
Feb 01 2016
Because nearly every application is driven by some sort of data source, we invested in building Slick, a Functional Relational Mapping (FRM) library for Scala that makes it easy to...
Dec 15 2015
We are happy to announce the release of [Slick](http://slick.typesafe.com/) 3.1.1. The artifacts are available on Maven Central, as usual. You can find the source code here: . Please see for...
Oct 09 2015
We are happy to announce the release of [Slick](http://slick.typesafe.com/) 3.1.0. These are the major new features compared to Slick 3.0.0: * New query compiler back-end. The main goal is to...
Oct 02 2015
We have just released Slick 3.1.0-RC3, the third release candidate for Slick 3.1.0. You can find the source code here: . Builds for Scala 2.10 and 2.11 are available from...
Sep 25 2015
We have just released Slick 3.1.0-RC2, the second release candidate for Slick 3.1.0. You can find the source code here: . Builds for Scala 2.10 and 2.11 are available from...