slick/slick — pull request #246 by szeiger (2013-11-06 12:44:50+00:00)
Title: Add a separate compiler phase for boolean emulation.

For databases like Derby and SQL Server which have some special boolean
expressions but no first-class boolean type, Slick has always emulated
booleans with a numeric type. The conversion between these emulated
booleans and the real booleans in the codeGen phase, however, did not
work properly.

This change adds a new optional compiler phase "rewriteBooleans" that
can be added to the query compiler by a database driver. This phase
inserts conversions between real and fake booleans (in the form of
function calls) at the appropriate places and leaves the interpretation
of these special functions to the code generator. The default
implementation in JdbcStatementBuilderComponent should be suitable for
all databases that use some numeric type with values 1 and 0 for the
emulated booleans.

The useIntForBoolean flag and all associated logic in QueryBuilder are
no longer needed.

Fixes issue #88. Tests in RelationalTypeTest.testBoolean.

Review by @cvogt