* Add a Redshift dialect that inherits from Postgres.
* Turn .index() and .dropIndex() into no-ops with warnings in the Redshift dialect.
* Update the Redshift dialect to be compatible with master.
* Update package.json
* Disable liftoff cli
* Remove the CLI
* Add lib to the repo
* Allow the escaping of named bindings.
* Update dist
* Update the Redshift dialect’s instantiation of the query and column compilers.
* Update the distribution
* Fix a merge conflict
* Take lib back out
* Trying to bring back in line with tgreisser/knex
* Add npm 5 package-lock
* Bring cli.js back in line
* Bring cli.js back in line
* Progress commit on redshift integration tests
* Revert "Progress commit on redshift integration tests"
This reverts commit 207e31635c638853dec54ce0580d34559ba5a54c.
* Progress commit
* Working not null on primary columns in createTable
* Working redshift unit tests
* Working unit and integration tests, still need to fix migration tests
* Brought datatypes more in line with what redshift actually supports
* Added query compiler unit tests
* Add a hacky returning clause for redshift ugh
* Working migration integration tests
* Working insert integration tests
* Allow multiple insert returning values
* Working select integration tests
* Working join integration tests
* Working aggregate integration tests
* All integration suite tests working
* Put docker index for reconnect tests back
* Redshift does not support insert...returning, there does not seem to be a way around that, therefore accept it and test accordingly
* Leave redshift integration tests in place, but do not run them by default
* Fix mysql order by test
* Fix more tests
* Change test db name to knex_test for consistency
* Address PR comments
* Sublime Text gitignore
* Redshift does not support adding more than one column in alter table
* Fix integration tests for redshift
* Linter
* Combine dialect test skip if clause
* test(QueryBuilder): add test for countDistinct with multiple columns
* test: add integration test for countDistinct with multiple columns
* feat(QueryBuilder): support multiple columns for countDistinct
* feat(QueryBuilder): support object alias notation for aggregate methods
i.e. `count`, `countDistinct`, `max`, `min`, `avg`, `avgDistinct`, `sum`, `sumDistinct`
* test: fix integration tests for countDistinct
* fix(QueryBuilder): fix countDistinct formatting with multiple columns
* refactor(QueryBuilder): add _aggregate from helpers
* fix(QueryCompiler): only use parens for distinct with postgres
* test(QueryBuilder): remove unsupported tests
for count with multiple distinct columns in databases where this is
not supported
* refactor(QueryBuilder): improve readability
* Support multi-column `whereIn` with query
Add support for supplying a subquery for a `whereIn` statment on multiple columns.
Fixes#1384.
* Fixed method
* Removed duplicate import
* Fixed isArray calls and linter warnings
* Fixed isArray call
* Fixed tests and added assertions for all dialects
* Checks for an empty, undefined or null object on transacting
Fixes https://github.com/tgriesser/knex/issues/2079
Those values indicates that the developer probably made a mistake.
* Fix message assertions
* replace generic-pool with Tarn
* fix bug where mariadb client didn't propagate connection errors to pool
* destroy connection if a query times out (and cancellation is not enabled)
Before this change, when a query timeout happened without { cancel: true }
the connection was immediately released back to the pool. If the query
timed out because of a time consuming query, the released connection would
still execute the query to its end and the connection would be useless until
that time. This commit marks the connection as disposed so that the pool never
again gives that connection to anyone, and destorys it in the near future.
* fix a weird database version dependent casing bug in a tests
* fix an unstable test that failed randomly because the query order was not guaranteed
* Add a Redshift dialect that inherits from Postgres.
* Turn .index() and .dropIndex() into no-ops with warnings in the Redshift dialect.
* Update the Redshift dialect to be compatible with master.
* Update package.json
* Disable liftoff cli
* Remove the CLI
* Add lib to the repo
* Allow the escaping of named bindings.
* Update dist
* Update the Redshift dialect’s instantiation of the query and column compilers.
* Update the distribution
* Fix a merge conflict
* Take lib back out
* Trying to bring back in line with tgreisser/knex
* Add npm 5 package-lock
* Bring cli.js back in line
* Bring cli.js back in line
* Progress commit on redshift integration tests
* Revert "Progress commit on redshift integration tests"
This reverts commit 207e31635c638853dec54ce0580d34559ba5a54c.
* Progress commit
* Working not null on primary columns in createTable
* Working redshift unit tests
* Working unit and integration tests, still need to fix migration tests
* Brought datatypes more in line with what redshift actually supports
* Added query compiler unit tests
* Add a hacky returning clause for redshift ugh
* Working migration integration tests
* Working insert integration tests
* Allow multiple insert returning values
* Working select integration tests
* Working join integration tests
* Working aggregate integration tests
* All integration suite tests working
* Put docker index for reconnect tests back
* Redshift does not support insert...returning, there does not seem to be a way around that, therefore accept it and test accordingly
* Leave redshift integration tests in place, but do not run them by default
* Fix mysql order by test
* Fix more tests
* Change test db name to knex_test for consistency
* Address PR comments
* feat(query-builder): add hookContext for wrapIdentifier
* refactor: use isUndefined
* test(transaction): test passing of hookContext
* feat(runnner): pass context to postProcessResponse
* test(runner): test postProcessResponse for raw responses
* test(raw): test passing of hookContext
* feat: add hookContext to Raw and SchemaBuilder
* test(transaction): fix test for hookContext
* chore: fix lint error
* fix: check for hookContext before calling it
* test(transaction): fix hookContext test
* chore: remove whitespace
* test(hookContext): test cloning of context object
* refactor: hookContext -> queryContext
* minor: use more descriptive variable name
i.e. refactor: `context` => `queryContext`
* fix: remove unnecessary checks for query builder
* fix(Raw): pass query builder to formatter
* fix(SchemaCompiler): pass schema builder to formatter
* refactor: add addQueryContext helper
* feat: add queryContext to TableBuilder and ColumnBuilder
* fix(TableCompiler): pass table builder to formatter
* fix(ColumnCompiler): pass column builder to formatter
* fix(pushQuery): fix passing builder to formatter
* test(Schema|Table|ColumnCompiler): test passing queryContext
* fix(SchemaCompiler): pass queryContext to TableCompiler
* fix(TableCompiler): pass queryContext to ColumnCompiler
* test: add queryContext tests for all schema dialects
* test(TableCompiler): test overwriting queryContext from SchemaCompiler
* test(Raw): test passing queryContext to wrapIdentifier
* tests: run all the tests
* Fixing issue with add columns on tables failing if using both after and collate
* Adding tests for collate modifier alongside first and after modifiers
* Make postgres client wrapIdentifierImpl independent of `this` context
* Also fixes a bug where only single digit indices were accepted.
* add customWrapIdentifier helper for client
* customWrapIdentifier is one more level of abstraction for the wrapIdentifier "pipeline"
that allows the custom wrapIdentifier to be called without calling the `wrapIdentifierImpl`
* bufix: use custom wrapIdentifier in columnInfo. fixes#2402
* Fix connection error propagation when streaming
If stream() is used without a handler, make sure to emit connection
errors on the stream itself.
* Test stream error emission
* Improve test
* Removed check increments check on the modifiers. Implemented a default lookup map on the generic columncompiler
* Ignore VS Code User Workspace Settings
* Added test case to assert comments are added to increments columns
* Shortened line length and added explicit db tests for postgres and mysql dialects
* Added check for modifiers on incrementing types and only allow comment modifiers
* fixed table alter attribute order. (first, after)
* add test cases, alter table position with comment.
* add real database test cases.
* after, first tests only mysql or mariadb.
* Use transaction for entire migration batch + locking if all migrations are transactional.
* Fix tests.
Use knex instead of query builder.
Do no use single transaction if `disableTransactions` is true.
* Added tests for parallel migrations.
Subtract already done migrations after getting the lock, when there is a wrapping transaction.
* Fix indentation.
* Fix linting errors (which are locally warnings, for some reason).
* Remove `const` keyword.
Remove obsolete `it` clauses.
* No maria. PG first.
* Test only pg and oracle.
* Remove error swallowing.
* Test parallel migration only in postgres (select for update works differently in other databases).
* Add transaction to missed places.
* Remove ignored table name argument.
* Enabled parallel migrations test for `mssql` dialect (still not part of CI test).
Fixed indentation.
* Added support for custom foreign key name
* Update unit test for #1311
* Fix TableCompiler::foreign to respect previous behavior + typo
* Add dialect specific unit tests
* Fixed comment
Actually trying to trigger travis to run tests with latest travis configuration... (maybe it just doesn't run tests against merged branch..)
* Added support for altering columns
* Add mysql dialect key for alter (modify)
* Added tests for .alter()
* Updated dialects for .alter() on column
* .alter() for mssql and tests
* Added an error for sqlite3 alter column
Sqlite does not support alter column at all
* Implemented schema alter column support for postgresql
* Added unit test for alter column and fixed postgres implementation
* Add test case for adding multiple columns at once (oracle check)
* Try upgrading CI mysql / postgres and distro
* Disabled adding multiple columns test from oracle
* Fixed node 0.12 test compatibility
* Fixed review comments
Check for rollback failures on mssql and pass them through to the transaction promise-- attaching the underlying cause as an 'originalError' property. This fixes a hang when mssql server aborts a transaction and the client issues a rollback.