MySQL
--------------------------------------------------------------------------------------------------------
'TRADITIONAL' is default; ANSI mode can be set using:
SET GLOBAL sql_mode='ANSI';
SELECT @@global.sql_mode

Non-standard escape mechanism:
select 'Joe''s', 'Joe\'s';

Compare with NULL problem:
drop table test;
create table test(id int);
insert into test values(1);
insert into test values(null);
-- 2 rows even in ANSI mode (correct is 1 row):
select * from test where id=id and 1=1;

Configuration:
create database test;
create user 'sa'@'localhost' identified by 'sa';
use test;
grant all on * to 'sa'@'localhost' with grant option;

Start and Stop:
sudo mysqld_safe
sudo mysqladmin shutdown


MS SQL Server 2005
--------------------------------------------------------------------------------------------------------
Problems when trying to select large objects (even if ResultSet.getBinaryStream is used).
The workaround responseBuffering=adaptive doesn't always seem to work
(jdbc:sqlserver://localhost:4220;DatabaseName=test;responseBuffering=adaptive)


PostgreSQL
--------------------------------------------------------------------------------------------------------

Non-standard escape mechanism:
select 'Joe''s', 'Joe\'s';

HSQLDB
--------------------------------------------------------------------------------------------------------
To use the same default settings as H2, use:
jdbc:hsqldb:data/test;hsqldb.default_table_type=cached;sql.enforce_size=true
Also, you need to execute the following statement:
SET WRITE_DELAY 1
No optimization for COUNT(*)


Derby
--------------------------------------------------------------------------------------------------------
To call getFD().sync() (which results in the OS call fsync()),
set the system property derby.storage.fileSyncTransactionLog to true true.
See
http://db.apache.org/derby/javadoc/engine/org/apache/derby/iapi/reference/Property.html#FILESYNC_TRANSACTION_LOG
Missing features:
LIMIT OFFSET is not supported.
No optimization for COUNT(*)
