* 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
* 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
* Throw error on non-string table comment
* add unit tests for all dialects
* removed non-valid comments retyping to ''
* Change dockerode version
* reverted dockerode version locking
* added object syntax for aliases
* added mixed tests for alias pair feature
* fixed double aliasing for subqueries
* fixed last untested commit
* Added support for passing query builder inside object syntax and using the syntax in raw identifiers
The aggregate methods include `count`, `min`, `max`, `sum`, `avg`,
`countDistinct`, `sumDistinct`, and `avgDistinct`, all of which
can now receive raw expressions, e.g.
```js
knex('users').count(knex.raw("data->'active'"));
```
There seems to be some demand for this, and I think it's cleaner than the alternative of
```js
knex('users').select(knex.raw("count(data->'active')"));
```
* Exposed also positionBinding method to client base class and refactored calls to em
* Added toSQL().toNative() getter which returns dialect specfic sql and bindings.
* Refactored toSQL method implementation
* Added `loadExtensions` parameter to filter which migrations and seeds will be executed
* `loadExtensions` now includes all supported extensions by default
Also added unit tests for modified code
* Tests for setting comment on table for postgresql, mysql and oracle
* No tests for sqlite as it does not seem to support comments
* No tests for mssql as it can not be tested simply using sql comparison
* Test composition of two cross joins
* Test cross-join with 'on' statement
(same as inner join) only for sqlite3 and mysql
because not supported elsewhere
* 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.
* Add optional parameter fetchAsString to oracledb
* Add some checks to oracle fetchAsString
* use const instead of let
* add fetchAsString test
* change const to var in tests
* move oracle driver specific test to bottom
* fix fetchAsSting multiple instance
* Fix tests
* replace const to var in test
* Rework Oracle fetchAsString tests
* remove const
* remove done and timeout
* # This is a combination of 3 commits.
# The first commit's message is:
Allow passing config.version variable to knex instead of parsing the DB version from string returned form DB server.
This makes it possible to connect custom databases which are compatible with an official database of certain version.
# The 2nd commit message will be skipped:
# Update checkVersion
#
# To use `const` instead of `let` to fix lint error
# The 3rd commit message will be skipped:
# Revert "Update checkVersion"
#
# This reverts commit 248907decb94f0df2f2b3b9fe114738fb48394fc.
* Allow passing config.version variable to knex instead of parsing the DB version from string returned form DB server.
This makes it possible to connect custom databases which are compatible with an official database of certain version.
* 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
* Allow casting when using named bindings.
* Remove template string in test.
* Only replace matches that are member to the bindings object.
* Slight refactor for tests.
* Simplify regex.
* Allow casting on named identifiers.
* adding support for ONLY keyword for PostgreSQL as an optional flag of from() and into() through table(tableName, only)
* passing only parameter from default function was missing
* changing only option to options object with only key
* better style per @wubzz suggestion
* Adding external authentication capability as mentioned in https://github.com/oracle/node-oracledb/blob/master/doc/api.md#extauth
* Add unit test for externalAuth
* Cover the connection string part
* Update documentation
* fix spaces
* Hide the fake Oracle server error
* minor grammar changes and spaces changes
* Modify test suite to test #1602
We shouldn’t be testing the “default” client class. Replace any
usages with postgresql
* Simplify knex.raw, deprecate global Knex.raw usage
* Remove unused bluebird shim
* Remove old / unused test comments
* Don't capture Pool2 error event
* Fix pg string escaping & parameterization #1602, #1548
* Fixed knex #1577
Aslo corrected tests for primarykey
* Fix for installing from github
* Fix for installing from github
* Fix for installing from github