tgriesser/knex — pull request #419 by vschoettke (2014-08-11 11:51:51+00:00)
Title: Add Oracle support

Added Oracle support. Tested with Oracle 11g. It requires the oracle npm module, but I refrained to add it to the package.json to avoid problems for other developers.

There is also a new enviroment variable "KNEX_TEST_INTEGRATION_DIALECTS" to limit the integration tests to specified dialects. e.g.:
`export KNEX_TEST_INTEGRATION_DIALECTS="oracle sqlite3"`

I had to work around the limitation of missing auto_increment by automatically generating a per table sequence and trigger to add the auto incremented value for insert statements if somebody used `increment()` in their table. Oracle deletes triggers implicitly but no sequences, so `dropTable()` and `dropTableIfExists()` also delete the sequences if they exist.

A word of caution. Node-oracle module together with the Oracle 11g I tested does not seem to like how the cleanup of the default pool is done. It may lead to false test errors sometimes (e.g.ORA-01007: variable not in select list). Implementing my own pool and waiting for some time after the db connection is closed fixed the problem for me, but it is not part of this pull request.