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 are available on Maven Central, as usual. You can find the source code here: https://github.com/slick/slick/tree/2.1.0-RC1. Please see http://slick.typesafe.com/doc/2.1.0-RC1/ for documentation.
Fixes and features
This is a feature release.
- Official support for Scala 2.11 and 2.10, cross-built from the same codebase.
- New documentation in the user manual, including a chapter for migrating from SQL to Slick.
- Improved and more comprehensive API documentation.
- Insert-or-update support which makes use of native databases features where possible, falling back to a client-side emulation otherwise.
- Parameters for
dropcalls (required for pagination) can now be used in precompiled queries.
- We don’t use sample projects like
slick-examplesanymore. All samples come in the form of Activator templates with an integrated tutorial. They are tied to a Slick major version but evolve separately from minor releases.
- Configure database connections through Typesafe Config using
Database.forConfig, in a format which is compatible with Play’s database configuration (but no support for connection pools yet)
- 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).
- OSGi support: Slick and Slick Extensions are now proper OSGi bundles.
- 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.
- 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
- Additional string methods like
substringcan now be used in queries.
- Insert queries can now be pre-compiled using
Compiled, just like other queries.
- Model reverse-engineering from the database schema has been made customizable as
ModelBuilderclass. This allows to make up for non-standard conformant jdbc drivers and driver specific-extensions, when generating the model.
- Code generator improvements.
- TestKit is more flexible and easier to use. You can now use it to test your own extensions for Slick against the standard databases supported by Slick. Less configuration is required due to the use of Typesafe Config with sensible defaults.
- All bug fixes from the Slick 2.0.x series
The Slick Extensions package with closed-source drivers for Oracle, DB/2 and SQL Server will be published to the Typesafe repository within a few days.
Complete list of changes since Slick 2.0.0
b05b411Add Float support to ModelBuilder / Fix MetaModelTest for jtds
7ade0e8Prepare model for binary compatibility with potential future extension
fd22e84Improve reverse engineer to work with slick-extensions - support for Char and BigDecimal caveats: - Boolean mapping still flawed - DBType mapping still flawed and non-portable
65c4544Add a test for Array[Byte] literals.
0b9d8d2Enhance model reverse engineering
2acc05dAdd new ColumnOption Length for string columns
d659d09Move code generator into its own subproject
ea0589aUpdate custom shape docs.
bb4ae81Add scaladoc link checker and fix the currently broken links
c8a28bbAdd the CaseClassShape from #692.
78f543fMove JDBC Meta data API tests into TestKit.
953ccc0Improve new String operations introduced in #843.
2ee426cGenerate table of driver capabilities for the user manual.
39e4fe5Use BIGSERIAL for auto-generated BIGINT columns in PostgresDriver.
b6a4df3Improve error message for unsupported DELETE queries.
3939bb0Expose “open” and “transaction” flags in BaseSession.
b434e8fAdd hashCode/equals methods to the DDL trait
490f7bdIgnore follow-up exceptions when closing a withSession block.
ba71affAdd test case for issue #511
190c50eSet type when inlining aggregation functions.
0ce4f51Add a complete snippet to paste to build
beafa0cBetter scaladoc for extension methods for Column and Query.
885ff9fFix result set debug logging, broken by the previous commit
29a1784Add result set debug logging
5289c0aAdded few string functions
5e331dfAdd performance benchmark logging for JDBC statement execution
1c7c6f5Mark AccessDriver as deprecated.
e7585e2Table constraints and indexes ordered by name. Generated DDL are then unique and thus, difference in DDL can only be the result of a change in the table. Fixes playframework/play-slick#146.
22cdcc2Add some missing cases to Compilable/Executable
9baf84fFix the Shape for Query.
56c7fb7Simplify Rep hierarchy
69abcaeFix docs TOC depth
d74adb5Fix docs TOC depth
b937743Update Scala version to 2.11.1
60e7e89User uppercase identifiers in InsertTest.testInsertOrUpdateAutoInc.
c823c59More flexibility for TestKit
17c298fUse Typesafe Config for database configurations
542e642Improve from SQL to Slick documentation, add operators comparison
03a3eb4Various documentation improvements for 2.1
76efe03Add from SQL to Slick documentation
d1d6a91Fix the build failure from merging tmp/issue-742 & tmp/insert-or-update
bde4ad2OSGi bundle improvements:
d2ac664Restrict Shape.provenShape to only allow unpacked types in ProvenShape.
5234454Fix some bugs in comprehension fusion.
dd15e41Support Unit values in Query return types.
cfee5bbRevert the hconsShape workaround.
f91370fEnforce maxRows in PositionedResultIterator.
be2ff65Prevent some initialization order problems
4fa915cAdd insertOrUpdate to InsertInvoker.
27ba43dMore improvements for Inserts.
0b77999Allow non-literal constant values for Query.take and Query.drop
21f85e9Do not escape columns named tag in generated code
889dae9Don’t patch type changes from OptionApply in hoistClientOps.
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 (non type-safe equality caught us)
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.
70a5a2bAdd test case for nesting mapped entities
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 (not using Some)
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