436 Commits

Author SHA1 Message Date
Ardeshir81
6b420cebdf
Throw an error if negative offset is provided (#4361) 2021-03-25 11:30:25 +02:00
martinmacko47
1744c8c265
Fix timeout method (#4324) 2021-03-22 01:33:59 +02:00
Matt Machuga
0ab482bcfb
Unify db test helpers (#4356) 2021-03-08 14:16:07 +02:00
Nicola Krumschmidt
c1ab23c206
Await asynchronous expect assertions (#4334) 2021-03-03 01:28:42 +02:00
Daniel Hensby
c0d8c5c247
mssql: schema builder - add predictable constraint names for default values (#4319) 2021-02-28 01:08:15 +02:00
Nicola Krumschmidt
c43fd7269e
Throw error if the array passed to insert is empty (#4289) 2021-02-15 19:03:48 +02:00
Matt
a4b6db85a9
Added merge strategy to allow selecting columns to upsert. (#4252)
Co-authored-by: Matt Goodson <matt.goodson.business@gmail.com>
2021-02-09 10:04:43 +02:00
Igor Savin
511ea2be0f
Querybuilder cleanup (#4282) 2021-02-08 16:54:00 +02:00
Tyler Watson
389b6686b5
mssql: column: json to nvarchar(max) (#4278) 2021-02-08 10:54:51 +02:00
Tyler Watson
c860b89184
WIP: Replace MSSQL dialect with Tedious.js implementation (#2857)
Co-authored-by: Tyler Watson <tyler@rapidplatform.com.au>
Co-authored-by: Igor Savin <iselwin@gmail.com>
2021-02-08 08:46:35 +02:00
Nicola Krumschmidt
edf994d7f7
Simplify reinsert logic when altering a table in SQLite (#4272) 2021-02-03 20:49:42 +02:00
George Petrov
57184acd63
Primary keys improvements (#4266) 2021-02-03 14:47:32 +02:00
martinmacko47
50be910113
Allow optimizer hints (#4243) 2021-01-28 01:57:25 +02:00
schmetzyannick
37eab27d98
Sqlite drop composite foreign keys (#4202)
Co-authored-by: Yannick Schmetz <yannick.schmetz@inform-software.com>
2021-01-05 13:58:02 +02:00
Nicola Krumschmidt
b0299f74ef
Use SQLite rename column instead of ddl helper (#4200)
Since SQLite version 3.25.0 renaming columns is supported natively.
2021-01-03 23:49:12 +02:00
Igor Savin
c16b731fdc
Change default behaviour for transaction rollback (#4195) 2021-01-02 14:23:40 +02:00
Igor Savin
2aec21ed5e
Try to introduce some organization into how files are grouped (#4178) 2020-12-28 16:55:08 +02:00
Igor Savin
6a862e9459
Extract query execution-related code from client (#4175) 2020-12-27 15:19:47 +02:00
Rijk van Zanten
9692e36561
Add primary/foreign support to SQLite on alterTable (#4162)
Co-authored-by: Igor Savin <iselwin@gmail.com>
2020-12-26 19:10:40 +02:00
Igor Savin
d20131f31d Fix SQLite dialect in CI 2020-12-25 20:39:32 +02:00
Igor Savin
938d5c263a Add more debug output for dialect resolution 2020-12-25 20:33:06 +02:00
Igor Savin
b4f5080097
Add GitHub Actions (#4168) 2020-12-22 10:28:58 +02:00
Kkmatt11
629909475c
Fix MSSQL with returns on inserts and deletes on tables with triggers (#4152) 2020-12-18 01:12:04 +02:00
Mark Boyd
76c131e2a9
Add support for WHERE clauses to "upsert" queries (#4148) 2020-12-09 17:51:29 +02:00
Rijk van Zanten
b7e1ffd7d5
Add support for dropForeign in SQLite (#4092)
Co-authored-by: Igor Savin <iselwin@gmail.com>
2020-12-08 14:49:41 +02:00
Nico Burns
8d43019873
Implement "UPSERT" (Postgres/MySQL/Sqlite) (#3763) 2020-10-31 17:22:52 +02:00
Igor Savin
26f3e5d62d
Replace uuid with copied nanoid logic (#4089) 2020-10-30 14:21:17 +02:00
torres-federico
69167b6fa9
Oracle: replace user_tab_columns with all_tab_columns (#4061) 2020-10-28 22:42:24 +02:00
Bogdan Chadkin
6f817a3b6e
Avoid lodash typecheks (#4056)
* Avoid lodash typecheks

Lodash is quite big project. Even with direct imports it loads [tons](https://github.com/knex/knex/pull/3804) of
code and still bloats node_modules. Especially since lodash mostly used
as a polyfill for modern features.

In this diff I attempted to reduce lodash usage by replacing type checks
with `typeof` operator which might be sufficient.

Also replaced lodash/isObject with custom simplified utility which does not
consider functions as objects and allows to simplify code in one place.
2020-10-05 21:29:39 +03:00
hansnull
8029396d2d
Mssql decimal fix (#3910) 2020-09-30 10:05:16 +03:00
Igor Savin
4a1638bfbe
Fix double merging of config for migrator (#4040) 2020-09-25 08:03:17 +02:00
issa marie tseng
378ae79641
Ensure DB stream is destroyed when the PassThrough is destroyed (#2324). (#3900) 2020-08-08 20:27:47 +03:00
cubikrichard
6203b59076
support postProcessResponse for streams (#3870) (#3931) 2020-08-08 17:57:58 +03:00
Keno Medenbach
2bd2ecd91c
MSSQL: Added the removal of a columns default constraint, before dropping the column (#3855) 2020-05-15 11:28:34 +02:00
Igor Savin
c0afe14cde
Warn user if custom migration source is being reset (#3839) 2020-05-06 00:13:09 +02:00
Igor Savin
38f54ce8f0
Refactor migration logic to use async/await. Add test case for using classes with custom migration sources (#3838) 2020-05-05 19:10:50 +02:00
Igor Savin
e37aeaa31c
Prepare for 0.21.0 release (#3811) 2020-04-19 00:40:23 +02:00
Igor Savin
7568ab51c4
Split tests in groups (#3785) 2020-04-07 21:27:40 +02:00
Kabir Baidhya
ec2351b7a8
Minor test internal enhancements (#3747) 2020-03-23 22:09:01 +01:00
Brian Lauber
31c5b86ec4
Fix: Transaction_OracleDB can use config.connection (#3731) 2020-03-15 20:30:40 +01:00
Brian Lauber
37d9c30347
Fix/method binding on knex proxy (#3717)
* knex methods are proxies for context methods ...

... as opposed to injecting the methods directly onto the knex
function.  (Which was then causing `this` to point to the wrong
object when evaluating the context methods)

* Moved CONTEXT_METHODS constant to a higher scope

* mv knex.context -> this.context

* Extracted KNEX_PROPERTY_DEFINITIONS to module scope ...

... which was possible since all of the properties reference
`this` instead of `knex` now

* shallowCloneFunction no longer accesses _context ...

... instead, it uses the normal context property

* transaction method delegates to _transaction ...

... This way, we can be sure that the lower-level details are
consistent across implementations.  Individual implementations
just need to handle the quirks around setting up the `config`
and `outerTx`

* CONTEXT_METHODS shared. Fixed override of withUserParams ...

Restructured the code so that CONTEXT_METHODS populates the
KNEX_PROPERTY_DEFINITIONS with the proxy methods.

In doing so, it also exposed the fact that the withUserParams(..)
method was being overridden on the Transactor instead of its
context.  So, that bug was fixed as well.

* Added a TODO to remove client.makeKnex(..) in future PR

* Added a warning about QueryBuilder.extend(..) and side-effects
2020-03-11 16:05:03 -04:00
Brian Lauber
0f523db957
Removed .should(..) syntax from test cases (#3713) 2020-03-09 10:10:33 -04:00
Brian Lauber
9d07bc97ea
Removed some globals from tests (#3712)
* `chai` is no longer global

* sinon is no longer globally defined

* expect(..) is no longer defined globally

* Removed obsolete eslint hints about globals

* Removed unused variable ( `expect(..)` )
2020-03-08 19:48:23 -04:00
Brian Lauber
d00bd8d2dd
Fix: Added missing call to _reject in Transactor#transaction (#3706) 2020-03-07 01:53:33 +01:00
Brian Lauber
4006bddbcf
Fixed a few unhandled Promise rejections in a test case (#3705) 2020-03-06 22:26:34 +01:00
Igor Savin
b80966a60e
Cleanup/extract transaction ordering logic (implementation 2.0) (#3698) 2020-03-05 21:40:33 +01:00
Brian Lauber
05fedd9e11
Mark missing test cases as "pending" rather than "passed" (#3695)
* Missing test cases are marked as "pending" rather than "passed"
* Work-around for connection disposal bug in pooling logic...

See this conversation thread for more info: https://github.com/knex/knex/issues/3636#issuecomment-592005391
2020-03-02 01:04:01 +01:00
maximelkin
dc30abf39e
bugfix mysql query errors ignored (#3690) 2020-02-29 00:16:07 +01:00
maximelkin
8159f04c12
Remove dependency on bluebird methods from tests (#3682)
* Remove dependency on bluebird methods from tests
* Introduce `"chai-as-promised"` plugin
* Minor enhancements to the testing logic
2020-02-24 19:24:30 -05:00
Jake Coffman
d50d00644c
oracledb: commit was a no-op causing race conditions (#3668)
The underlying issue was that query *always* committed, even during a transaction. The previous fix was to just disable commitAsync in a transaction but then that also disabled explicit commit calls. Instead, this fix disables query's commits during transactions so that explicit commits still work.
2020-02-16 20:26:13 +01:00