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:
2b45d1fBump version number to 2.0.0-M1
054382eMerge pull request #162 from slick/tmp/distributed-driver
65be9d6Merge pull request #122 from slick/tmp/memory-driver
aa88230A simpler encoding of ‘from’ refs in Query objects.
96c338cA first working version of distributed querying.
ca7b178Simplify the early query compiler phases
8aa7242Move assignTypes phase further up
3a6202aClean up cname/confName confusion in TestKit
400c5b6Switch UnionTest and TemplateTest to RelationalProfile.
1429ebcSplit up ScalarFunctionTest into Relational and Jdbc parts.
65c94abSwitch PagingTest and PrimaryKeyTest to RelationalProfile.
a09b77cSwitch NestingTest and NewQuerySemanticsTest to RelationalProfile.
67582b4Split MiscTest into RelationalMiscTest and JdbcMiscTest.
688961aSwitch ColumnDefaultTest and ForeignKeyTest to RelationalProfile.
8008e34Make joins work in QueryInterpreter.
6e3dc09Move BigDecimal support and ColumnType aliases up to RelationalProfile.
e5e0b53First cut of HeapBackend + MemoryProfile implementations.
b5ffa2fRefactor code generator + insert compiler phases
7aafec5Add insertion to BasicProfile.
44cdd0cMove more functionality up to Basic/Relational/SqlProfile.
378d2e0Move Table and Sequence into RelationalProfile, DDL into BasicProfile.
d74c374Move QueryTemplate functionality up into BasicProfile.
035e809TestKit refactoring to support non-JdbcDriver tests.
394b83fCreate a new RelationalProfile for relational non-SQL data stores.
c84a049Merge all changes from 1.0.1-RC1 back into master.
5ad68bbMerge pull request #149 from slick/tmp/matchSymbols
3ee3803Merge pull request #139 from slick/tmp/test-for-issue36
45ea275direct embedding: renamed -> annotation to slickOp(erator)
fb0f32ddirect embedding: added meaningful tests for
and &&. Remove incomplete implementation of size.
33b053edirect embedding: symbol based mapping of main methods
9645133direct embedding refactoring
654c3c5direct embedding: symbol-based and easier to read method mapping scala to slick
159125fdirect embedding: mapping to more generic slick types
ae4f087New test case for issue #36, works as intended.
a180000matching column types via symbols instead of names
b7735b8Merge pull request #103 from ndeverge/apidoc
acad723Merge pull request #127 from slick/tmp/dont-lift-bound-rows
3806205Merge pull request #128 from slick/tmp/fix-doctests
421c6e3Update the syntax used by the documentation snippets.
6e839c6Propagate the type of “count” operations through the query compiler.
2e5dc1bThrow an exception when trying to lift a bound table row to a Query.
bf45e42Revert cd8cbea5a4c31fbabb25075038a202577263c39b due to broken build.
adb4f57Merge pull request #109 from slick/tmp/switch-dbprops
58d7babMerge pull request #90 from nafg/patch-2
d7a1e82Merge pull request #91 from aloiscochard/topic/querytemplate-function
cd8cbeadirect embedding match tuples via symbols (fixes macro paradise incompatibility mentioned in https://github.com/slick/slick/pull/112/files#L4R106)
0603804Set path to databases.properties through system property.
d847994Merge pull request #106 from slick/tmp/irrefutable-filter-conditions
237306cRemove Filter nodes with a LiteralNode(true) as the filter condition.
a81db73Add the title and version at the generated API doc
2451ed2Merge pull request #99 from slick/tmp/remove-old-type-encoding
90abb12added type mapping to direct embedding (fixes tests)
06e058eFurther marginalization of Columns.
06bec9bRemove the old type encoding.
518a498Remove dependency on linearizers from constraint handling and templates.
de5c5b1Bring the design of InsertInvoker closer to the other invokers.
1b0c3b8Use the new JdbcCodeGen phase for UpdateInvoker
3467dcbUse the new JdbcCodeGen phase for DeleteInvoker
09d17aaSwitch QueryExecutor over to the new execution model.
12c746eAdd the ability to perform result set updates to the compiled mappings.
f0a28baCompile client-side mapping to JDBC-specific conversion functions.
3d17ecbEncode MappedProjections in the AST.
cef0c6cAdd option for setting a build target dir.
d0e43d8Merge branch ‘1.0’
9c3f117Merge pull request #89 from slick/topic/codegen-phase2
da1f305Make the test run on Access via JdbcOdbcDriver again.
607a788Make Invoker a subtype of Function1
c652c17Make convertToComprehensions work on typed trees.
c6c968fBug fix: Memoize on the target node instead of the ref in localizeRefs.
1008bf2Remove an unnecessary createSelect() call in comprehension fusion.
4398eafMake fuseComprehensions work on typed trees
88d6029Bug fix: Reuse SymbolNamer when copying the CompilerState
df1735bMake fixRowNumberOrdering work on typed trees
36c4882Remove mutability from QueryCompiler state (except for the SymbolNamer)
96bab55Proper translation of Option conversions into SQL.
c76e1fcHoist client ops up into ResultSetMapping and make that fully typed.
ecf304aPreserve column type information in some compiler phases.
d5fa2aaAdd “Self” type to Node for better return types.
ef9bd95Replace ExtendedProfile and ExtendedDriver with deprecated type aliases.
90c3e37Pass fully compiled ASTs to invokers and executors.
53af1c5Add codeGen phase to generate SQL code within the AST.
ee0b3fdMerge branch ‘1.0’
1626447Encode Option conversions into the AST and remove deprecated methods.
607ff31Merge branch ‘1.0’
0a9dea6direct embedding null ordering support
5f63606direct embedding better exceptions for wrong use of internal functions
fa64ec1reverse ordering for direct embedding/collections (aka descending)
1a20e72direct embedding sortBy (ignoring Ordering[_]) for now limited to scalar values and tuples
8f2b270direct embedding now supports nullable/Option
cdc16bcMerge branch ‘1.0’
5d0a003Merge remote-tracking branch ‘slick/1.0’ into master
b2cd356Fix import to use scala.slick instead of slick
3f44665Merge branch ‘master’ of email@example.com:slick/slick.git
7876b09Merge branch ‘1.0’
f6fcd88Merge branch ‘1.0’
eb8cbaddirect embedding: added drop and take
9fbbf3b! and != support for direct embedding
c5f16b7Use the shiny new type information in the query AST for better casts.
bee3333Fix typing of Comprehension nodes & assign types after relational phases.
4b5ebeaBuild against Scala 2.10.0-RC3 and bump Slick version
91582a6Merge pull request #63 from paulp/local-scala
faaa4a7Narrow down ProductNode.apply to require a Seq[Node]
2c198c1Keep type information in all AST nodes.
1603604Expose local scala home as a system property.
f346209Enable building against locally compiled Scala version.
32a65f7Remove deprecated features
bec5613Allow fusion if the inner Comprehension is a Union wrapper.
797e811Remove old-style aggregation functions.
df40f1dFix lifting of aggregation functions which reference other generators.
2f7b933Fix statement logging (broken by the backend refactoring)
21bef4cBug fix: Correctly relabel selects of implicit joins in relabelUnions.
84a29adMerge branch ‘1.0’ into topic/backend-refactoring
2271685Simplify DefNode: No need to implement nodePostGeneratorChildren any more
e7458ceSimplify RefNode: Only one Symbol per Node allowed
a568b8fRemove the non-“Simple” Node, DefNode and RefNode versions.
02cf916Remove nodeMapNodes and simplify mapOrNone
49cb16dMerge branch ‘master’ into topic/backend-refactoring
92f191fMerge branch ‘master’ into topic/backend-refactoring
02d5224Simplify construction of typed standard library calls
474dd82Merge branch ‘master’ into topic/backend-refactoring
47c98acFix op handling in Column.forNode and use this instead of WrappedColumn.
af0aca8Remove TypeMapper abstraction.
df2060cAlways perform TypeMapperDelegate lookup through typeInfoFor
2371e05Further preparations for moving type information into the AST
2b4c49cFurther disentanglement of AST/compiler and lifted embedding.
81ab87aPrint types of Typed nodes in AST dumps
04a47b5Add type information to all standard library calls
d7cb723Allow building with JDK 6 and JDK 7
4dfdddeRemove some cruft
b37ca03Move SQL utils down from JdbcProfile to SqlProfile
e172ea2Refactor BasicProfile into BasicProfile, SqlProfile and JdbcProfile
6d0f93cExpose Database in JDBC Session and add UnmanagedSession
b3c672dDon’t use path-dependent types for the Backend from the Driver.
94a5587Backend cake with path-dependent types in driver - almost working.