* Normalized and validated driverNames of test db clients and fixed oracle test setup
* Fixed failed queries from old query building tests which hadn't been ran in ages
* Allow selecting node version which is used to run oracledb docker tests
* Improved sql tester error messages
* Fixed rest of the oracledb tests
* Removed invalid flag from docker-compose
* Print mssql logs if initialization fails
* Fixed syntax error + final tests
* Added restart of failure for mssql DB initialization to try again if server was not ready
* Printout always mssql logs after container is started
* Fixed wait time printing after trying to connect
* Use npm run oracledb:test for testing oracle in travis
* Fix knex.initialize() and adds test
* Fix knex.initialize() and adds test
* Added test for reinitializing pool after destroy
* Fixed destroy / reinitialization test
* Fixed the fix
* Fixed float type of mssql to be float
* Many tests where postgres test was not actually ran at all
* Migrations to be mssql compatible
Mssql driver doesn't handle if multiple queries are sent to same transaction concurrently.
* Prevented mssql failing when invalid schema builder was executed by accident
Instead of trying to generate sql from broken schema calls, just make exception to leak before query compiling is started
* Fixed mssql trx rollback to always throw an error
Also modified some connection test query to be mssql compatible
* Fixed various bugs from MSSQL driver to make tests run
* Fixed mssql unique index to be compatible with other dialect implementations
* Enable running mssql tests on CI
* Test for #2588
* Updated tests to not be dependend on tables left from previous test rans
* Trying to make mssql server work on travis
* Make the stream catch errors in the query
* Fix another case in which stream doesnt emits error
* Linter stuff
* Remove setTimeout in tests
* Make a test not to check the MySQL error code
* Fix stream error catching for MariaDB and PostgreSQL
* Fix stream error catching in Oracle
* Throw the error after emitting it to the stream
* Throw the error without instantiating a new Error
* fix wrapIdentifier not being called in postgres alter column
* add test for wrapIdentifier call in postgres alter column
* add comment regarding issue
* add issue & PR #'s in comment
* Add test for precise timestamps schema building
* Create precise timestamp columns on MySQL 5.6+
* Increase precision of timestamps to microsecond
- Six is the maximum that it supports and there's no reason not to use
the maximum available precision.
* Add warning when version is not specified in MySQL
* Update warning message when missing mysql version
* 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
* GH-2550 Add support to wrap returning column
- utilize `this.formatter.wrap` for every columnName in returningClause
* #2550 Add unit test
* Fix unit test
* 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
* Run SQL Server tests locally running SQL server in docker
* Made oracledb test script naming consistent with mssql
* Updated documentation with more info about oracledb and mssql testing
* 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
Currently stress tests are run locally manually, but CI could be set up to run them for a few minutes and record request counts and memory usage during tests.
* 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
* Update dependencies. Tweak ESLint rules to work more like they used to before
* Fix indentation
* Remove unnecessary escapes.
* Remove unused 'usingClause' parameter.
* Address CI failures.
* Revert "Remove unused 'usingClause' parameter."
This reverts commit aaa4d71e914faa1c4c1313c26bbdd26067b0b448.
* eslint: add ignore with todo
* dependencies: update
* 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