Slick 2.0.0-M1

June 07 2013
by Stefan Zeiger

We have just released Slick 2.0.0-M1, the first milestone for Slick 2.0. 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.0.0-M1.

These are the major new features added in this miletone:
  • Refactored profile and driver architecture to support non-SQL databases
  • A query interpreter and in-memory driver
  • Code generator phase incorporated into the query compiler
  • Query scheduling
  • Full type information available in query ASTs
  • Support for server-side Option conversions (e.g. .getOrElse on a computed Option column)
  • Improved direct embedding

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 is not available for this milestone release.

Here is a complete list of changes since 1.0.1:
  • 2b45d1f Bump version number to 2.0.0-M1
  • 054382e Merge pull request #162 from slick/tmp/distributed-driver
  • 65be9d6 Merge pull request #122 from slick/tmp/memory-driver
  • 65a0c21 Remove TableSymbol.
  • aa88230 A simpler encoding of ‘from’ refs in Query objects.
  • 96c338c A first working version of distributed querying.
  • ca7b178 Simplify the early query compiler phases
  • 8aa7242 Move assignTypes phase further up
  • 8b15dee Add DistributedProfile/Driver/Backend.
  • 3a6202a Clean up cname/confName confusion in TestKit
  • 400c5b6 Switch UnionTest and TemplateTest to RelationalProfile.
  • 1429ebc Split up ScalarFunctionTest into Relational and Jdbc parts.
  • 65c94ab Switch PagingTest and PrimaryKeyTest to RelationalProfile.
  • a09b77c Switch NestingTest and NewQuerySemanticsTest to RelationalProfile.
  • 67582b4 Split MiscTest into RelationalMiscTest and JdbcMiscTest.
  • 688961a Switch ColumnDefaultTest and ForeignKeyTest to RelationalProfile.
  • 8008e34 Make joins work in QueryInterpreter.
  • 6e3dc09 Move BigDecimal support and ColumnType aliases up to RelationalProfile.
  • e5e0b53 First cut of HeapBackend + MemoryProfile implementations.
  • b5ffa2f Refactor code generator + insert compiler phases
  • 7aafec5 Add insertion to BasicProfile.
  • 44cdd0c Move more functionality up to Basic/Relational/SqlProfile.
  • 378d2e0 Move Table and Sequence into RelationalProfile, DDL into BasicProfile.
  • d74c374 Move QueryTemplate functionality up into BasicProfile.
  • 035e809 TestKit refactoring to support non-JdbcDriver tests.
  • 394b83f Create a new RelationalProfile for relational non-SQL data stores.
  • c84a049 Merge all changes from 1.0.1-RC1 back into master.
  • 5ad68bb Merge pull request #149 from slick/tmp/matchSymbols
  • 3ee3803 Merge pull request #139 from slick/tmp/test-for-issue36
  • 45ea275 direct embedding: renamed -> annotation to slickOp(erator)
  • fb0f32d direct embedding: added meaningful tests for   and &&. Remove incomplete implementation of size.
  • 33b053e direct embedding: symbol based mapping of main methods
  • 9645133 direct embedding refactoring
  • 654c3c5 direct embedding: symbol-based and easier to read method mapping scala to slick
  • 159125f direct embedding: mapping to more generic slick types
  • ae4f087 New test case for issue #36, works as intended.
  • a180000 matching column types via symbols instead of names
  • b7735b8 Merge pull request #103 from ndeverge/apidoc
  • acad723 Merge pull request #127 from slick/tmp/dont-lift-bound-rows
  • 3806205 Merge pull request #128 from slick/tmp/fix-doctests
  • 421c6e3 Update the syntax used by the documentation snippets.
  • 6e839c6 Propagate the type of “count” operations through the query compiler.
  • 2e5dc1b Throw an exception when trying to lift a bound table row to a Query.
  • bf45e42 Revert cd8cbea5a4c31fbabb25075038a202577263c39b due to broken build.
  • adb4f57 Merge pull request #109 from slick/tmp/switch-dbprops
  • 58d7bab Merge pull request #90 from nafg/patch-2
  • d7a1e82 Merge pull request #91 from aloiscochard/topic/querytemplate-function
  • cd8cbea direct embedding match tuples via symbols (fixes macro paradise incompatibility mentioned in https://github.com/slick/slick/pull/112/files#L4R106)
  • 0603804 Set path to databases.properties through system property.
  • d847994 Merge pull request #106 from slick/tmp/irrefutable-filter-conditions
  • 237306c Remove Filter nodes with a LiteralNode(true) as the filter condition.
  • a81db73 Add the title and version at the generated API doc
  • 2451ed2 Merge pull request #99 from slick/tmp/remove-old-type-encoding
  • 90abb12 added type mapping to direct embedding (fixes tests)
  • 06e058e Further marginalization of Columns.
  • 06bec9b Remove the old type encoding.
  • 518a498 Remove dependency on linearizers from constraint handling and templates.
  • de5c5b1 Bring the design of InsertInvoker closer to the other invokers.
  • 1b0c3b8 Use the new JdbcCodeGen phase for UpdateInvoker
  • 3467dcb Use the new JdbcCodeGen phase for DeleteInvoker
  • 09d17aa Switch QueryExecutor over to the new execution model.
  • 12c746e Add the ability to perform result set updates to the compiled mappings.
  • f0a28ba Compile client-side mapping to JDBC-specific conversion functions.
  • 3d17ecb Encode MappedProjections in the AST.
  • cef0c6c Add option for setting a build target dir.
  • d0e43d8 Merge branch ‘1.0’
  • 9c3f117 Merge pull request #89 from slick/topic/codegen-phase2
  • da1f305 Make the test run on Access via JdbcOdbcDriver again.
  • 607a788 Make Invoker a subtype of Function1
  • f35a8d9 Update src/main/scala/scala/slick/util/iter/Iteratee.scala
  • c652c17 Make convertToComprehensions work on typed trees.
  • c6c968f Bug fix: Memoize on the target node instead of the ref in localizeRefs.
  • 1008bf2 Remove an unnecessary createSelect() call in comprehension fusion.
  • 4398eaf Make fuseComprehensions work on typed trees
  • 88d6029 Bug fix: Reuse SymbolNamer when copying the CompilerState
  • df1735b Make fixRowNumberOrdering work on typed trees
  • 36c4882 Remove mutability from QueryCompiler state (except for the SymbolNamer)
  • 96bab55 Proper translation of Option conversions into SQL.
  • c76e1fc Hoist client ops up into ResultSetMapping and make that fully typed.
  • ecf304a Preserve column type information in some compiler phases.
  • d5fa2aa Add “Self” type to Node for better return types.
  • ef9bd95 Replace ExtendedProfile and ExtendedDriver with deprecated type aliases.
  • 90c3e37 Pass fully compiled ASTs to invokers and executors.
  • 51096f6 Remove OldTest.
  • 53af1c5 Add codeGen phase to generate SQL code within the AST.
  • ee0b3fd Merge branch ‘1.0’
  • 1626447 Encode Option conversions into the AST and remove deprecated methods.
  • 607ff31 Merge branch ‘1.0’
  • 0a9dea6 direct embedding null ordering support
  • 5f63606 direct embedding better exceptions for wrong use of internal functions
  • fa64ec1 reverse ordering for direct embedding/collections (aka descending)
  • 1a20e72 direct embedding sortBy (ignoring Ordering[_]) for now limited to scalar values and tuples
  • 8f2b270 direct embedding now supports nullable/Option
  • cdc16bc Merge branch ‘1.0’
  • 5d0a003 Merge remote-tracking branch ‘slick/1.0’ into master
  • b2cd356 Fix import to use scala.slick instead of slick
  • 3f44665 Merge branch ‘master’ of git@github.com:slick/slick.git
  • 7876b09 Merge branch ‘1.0’
  • f6fcd88 Merge branch ‘1.0’
  • 53215d2 refactored QueryableTest
  • eb8cbad direct embedding: added drop and take
  • 9fbbf3b ! and != support for direct embedding
  • c5f16b7 Use the shiny new type information in the query AST for better casts.
  • bee3333 Fix typing of Comprehension nodes & assign types after relational phases.
  • 4b5ebea Build against Scala 2.10.0-RC3 and bump Slick version
  • 91582a6 Merge pull request #63 from paulp/local-scala
  • faaa4a7 Narrow down ProductNode.apply to require a Seq[Node]
  • 2c198c1 Keep type information in all AST nodes.
  • 1603604 Expose local scala home as a system property.
  • f346209 Enable building against locally compiled Scala version.
  • 32a65f7 Remove deprecated features
  • bec5613 Allow fusion if the inner Comprehension is a Union wrapper.
  • 797e811 Remove old-style aggregation functions.
  • df40f1d Fix lifting of aggregation functions which reference other generators.
  • 2f7b933 Fix statement logging (broken by the backend refactoring)
  • 21bef4c Bug fix: Correctly relabel selects of implicit joins in relabelUnions.
  • 84a29ad Merge branch ‘1.0’ into topic/backend-refactoring
  • 2271685 Simplify DefNode: No need to implement nodePostGeneratorChildren any more
  • e7458ce Simplify RefNode: Only one Symbol per Node allowed
  • a568b8f Remove the non-“Simple” Node, DefNode and RefNode versions.
  • 02cf916 Remove nodeMapNodes and simplify mapOrNone
  • 49cb16d Merge branch ‘master’ into topic/backend-refactoring
  • 92f191f Merge branch ‘master’ into topic/backend-refactoring
  • 02d5224 Simplify construction of typed standard library calls
  • 474dd82 Merge branch ‘master’ into topic/backend-refactoring
  • 47c98ac Fix op handling in Column.forNode and use this instead of WrappedColumn.
  • af0aca8 Remove TypeMapper abstraction.
  • df2060c Always perform TypeMapperDelegate lookup through typeInfoFor
  • 2371e05 Further preparations for moving type information into the AST
  • 2b4c49c Further disentanglement of AST/compiler and lifted embedding.
  • 81ab87a Print types of Typed nodes in AST dumps
  • 04a47b5 Add type information to all standard library calls
  • d7cb723 Allow building with JDK 6 and JDK 7
  • 4dfddde Remove some cruft
  • b37ca03 Move SQL utils down from JdbcProfile to SqlProfile
  • e172ea2 Refactor BasicProfile into BasicProfile, SqlProfile and JdbcProfile
  • 6d0f93c Expose Database in JDBC Session and add UnmanagedSession
  • b3c672d Don’t use path-dependent types for the Backend from the Driver.
  • 94a5587 Backend cake with path-dependent types in driver - almost working.

Past News Items

Aug 04 2014
We are happy to announce the release of Slick 2.1.0. Please see for documentation including an [upgrade guide from 2.0.x](http://slick.typesafe.com/doc/2.1.0/upgrade.html). The artifacts are available on Maven Central, as usual. You...
Jul 24 2014
We are happy to announce the release of Slick 2.1.0-RC3. The artifacts are available on Maven Central, as usual. You can find the source code here: . Please see for...
Jul 21 2014
We are happy to announce the release of Slick 2.1.0-RC2. The artifacts are available on Maven Central, as usual. You can find the source code here: . Please see for...
Jul 10 2014
We are happy to announce the release of Slick 2.1.0-RC1. This is a Release Canditate. If no regressions are found, we will release 2.1.0 final after 7 days. The artifacts...
May 28 2014
We have just released Slick 2.1.0-M2, the second milestone for Slick 2.1. It should show up on Maven Central within the next few hours. You can find the source code...
May 26 2014
Lots of Slick talks coming up in Belgium, Berlin, Barcelona. See http://slick.typesafe.com/docs/
May 10 2014
We are happy to announce the release of Slick 2.0.2. The artifacts are available on Maven Central, as usual. You can find the source code here: . Please see for...
May 02 2014
We are happy to announce the release of Slick 2.0.2-RC1. The artifacts are available on Maven Central, as usual. You can find the source code here: . Please see for...