* 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
* 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
* 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
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.