knex 3.2.3 → 3.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2447 -2441
- package/CONTRIBUTING.md +190 -190
- package/LICENSE +22 -22
- package/README.md +177 -156
- package/UPGRADING.md +245 -245
- package/bin/cli.js +516 -516
- package/bin/knexfile-runtime-error.js +27 -27
- package/bin/utils/cli-config-utils.js +217 -217
- package/bin/utils/constants.js +7 -7
- package/bin/utils/migrationsLister.js +37 -37
- package/knex.js +23 -23
- package/knex.mjs +11 -11
- package/lib/builder-interface-augmenter.js +120 -120
- package/lib/client.js +585 -585
- package/lib/constants.js +61 -61
- package/lib/dialects/better-sqlite3/index.js +101 -101
- package/lib/dialects/cockroachdb/crdb-columncompiler.js +14 -14
- package/lib/dialects/cockroachdb/crdb-querybuilder.js +11 -11
- package/lib/dialects/cockroachdb/crdb-querycompiler.js +122 -122
- package/lib/dialects/cockroachdb/crdb-tablecompiler.js +46 -46
- package/lib/dialects/cockroachdb/crdb-viewcompiler.js +15 -15
- package/lib/dialects/cockroachdb/index.js +86 -86
- package/lib/dialects/index.js +34 -34
- package/lib/dialects/mssql/index.js +498 -498
- package/lib/dialects/mssql/mssql-formatter.js +34 -34
- package/lib/dialects/mssql/query/mssql-querycompiler.js +601 -601
- package/lib/dialects/mssql/schema/mssql-columncompiler.js +185 -185
- package/lib/dialects/mssql/schema/mssql-compiler.js +91 -91
- package/lib/dialects/mssql/schema/mssql-tablecompiler.js +393 -393
- package/lib/dialects/mssql/schema/mssql-viewcompiler.js +55 -55
- package/lib/dialects/mssql/transaction.js +176 -176
- package/lib/dialects/mysql/index.js +317 -317
- package/lib/dialects/mysql/query/mysql-querybuilder.js +14 -14
- package/lib/dialects/mysql/query/mysql-querycompiler.js +292 -292
- package/lib/dialects/mysql/schema/mysql-columncompiler.js +193 -193
- package/lib/dialects/mysql/schema/mysql-compiler.js +60 -60
- package/lib/dialects/mysql/schema/mysql-tablecompiler.js +426 -426
- package/lib/dialects/mysql/schema/mysql-viewbuilder.js +21 -21
- package/lib/dialects/mysql/schema/mysql-viewcompiler.js +15 -15
- package/lib/dialects/mysql/transaction.js +46 -46
- package/lib/dialects/mysql2/index.js +53 -53
- package/lib/dialects/mysql2/transaction.js +44 -44
- package/lib/dialects/oracle/DEAD_CODE.md +5 -5
- package/lib/dialects/oracle/index.js +92 -92
- package/lib/dialects/oracle/query/oracle-querycompiler.js +343 -343
- package/lib/dialects/oracle/schema/internal/incrementUtils.js +22 -22
- package/lib/dialects/oracle/schema/internal/trigger.js +155 -155
- package/lib/dialects/oracle/schema/oracle-columnbuilder.js +17 -17
- package/lib/dialects/oracle/schema/oracle-columncompiler.js +126 -126
- package/lib/dialects/oracle/schema/oracle-compiler.js +124 -124
- package/lib/dialects/oracle/schema/oracle-tablecompiler.js +210 -210
- package/lib/dialects/oracle/utils.js +107 -107
- package/lib/dialects/oracledb/index.js +381 -381
- package/lib/dialects/oracledb/query/oracledb-querycompiler.js +481 -481
- package/lib/dialects/oracledb/schema/oracledb-columncompiler.js +61 -61
- package/lib/dialects/oracledb/schema/oracledb-tablecompiler.js +19 -19
- package/lib/dialects/oracledb/schema/oracledb-viewbuilder.js +13 -13
- package/lib/dialects/oracledb/schema/oracledb-viewcompiler.js +19 -19
- package/lib/dialects/oracledb/transaction.js +98 -98
- package/lib/dialects/oracledb/utils.js +208 -208
- package/lib/dialects/pgnative/index.js +60 -60
- package/lib/dialects/postgres/execution/pg-transaction.js +19 -19
- package/lib/dialects/postgres/index.js +373 -373
- package/lib/dialects/postgres/query/pg-querybuilder.js +43 -43
- package/lib/dialects/postgres/query/pg-querycompiler.js +400 -400
- package/lib/dialects/postgres/schema/pg-columncompiler.js +162 -162
- package/lib/dialects/postgres/schema/pg-compiler.js +138 -138
- package/lib/dialects/postgres/schema/pg-tablecompiler.js +331 -331
- package/lib/dialects/postgres/schema/pg-viewbuilder.js +21 -21
- package/lib/dialects/postgres/schema/pg-viewcompiler.js +35 -35
- package/lib/dialects/redshift/index.js +86 -86
- package/lib/dialects/redshift/query/redshift-querycompiler.js +163 -163
- package/lib/dialects/redshift/schema/redshift-columnbuilder.js +22 -22
- package/lib/dialects/redshift/schema/redshift-columncompiler.js +67 -67
- package/lib/dialects/redshift/schema/redshift-compiler.js +14 -14
- package/lib/dialects/redshift/schema/redshift-tablecompiler.js +134 -134
- package/lib/dialects/redshift/schema/redshift-viewcompiler.js +11 -11
- package/lib/dialects/redshift/transaction.js +32 -32
- package/lib/dialects/sqlite3/execution/sqlite-transaction.js +172 -172
- package/lib/dialects/sqlite3/index.js +263 -263
- package/lib/dialects/sqlite3/query/sqlite-querybuilder.js +33 -33
- package/lib/dialects/sqlite3/query/sqlite-querycompiler.js +341 -341
- package/lib/dialects/sqlite3/schema/ddl.js +380 -380
- package/lib/dialects/sqlite3/schema/internal/compiler.js +327 -327
- package/lib/dialects/sqlite3/schema/internal/parser-combinator.js +161 -161
- package/lib/dialects/sqlite3/schema/internal/parser.js +638 -638
- package/lib/dialects/sqlite3/schema/internal/sqlite-ddl-operations.js +41 -41
- package/lib/dialects/sqlite3/schema/internal/tokenizer.js +38 -38
- package/lib/dialects/sqlite3/schema/internal/utils.js +12 -12
- package/lib/dialects/sqlite3/schema/sqlite-columncompiler.js +50 -50
- package/lib/dialects/sqlite3/schema/sqlite-compiler.js +80 -80
- package/lib/dialects/sqlite3/schema/sqlite-tablecompiler.js +364 -364
- package/lib/dialects/sqlite3/schema/sqlite-viewcompiler.js +40 -40
- package/lib/execution/batch-insert.js +51 -51
- package/lib/execution/internal/delay.js +6 -6
- package/lib/execution/internal/ensure-connection-callback.js +41 -41
- package/lib/execution/internal/query-executioner.js +62 -62
- package/lib/execution/runner.js +325 -325
- package/lib/execution/transaction.js +417 -417
- package/lib/formatter/formatterUtils.js +42 -42
- package/lib/formatter/rawFormatter.js +84 -84
- package/lib/formatter/wrappingFormatter.js +253 -253
- package/lib/formatter.js +25 -25
- package/lib/index.js +3 -3
- package/lib/knex-builder/FunctionHelper.js +80 -80
- package/lib/knex-builder/Knex.js +59 -59
- package/lib/knex-builder/internal/config-resolver.js +57 -57
- package/lib/knex-builder/internal/parse-connection.js +87 -87
- package/lib/knex-builder/make-knex.js +345 -345
- package/lib/logger.js +76 -76
- package/lib/migrations/common/MigrationsLoader.js +36 -36
- package/lib/migrations/migrate/MigrationGenerator.js +84 -84
- package/lib/migrations/migrate/Migrator.js +632 -632
- package/lib/migrations/migrate/migrate-stub.js +17 -17
- package/lib/migrations/migrate/migration-list-resolver.js +33 -33
- package/lib/migrations/migrate/migrator-configuration-merger.js +58 -58
- package/lib/migrations/migrate/sources/fs-migrations.js +74 -74
- package/lib/migrations/migrate/stub/cjs.stub +15 -15
- package/lib/migrations/migrate/stub/coffee.stub +13 -13
- package/lib/migrations/migrate/stub/eg.stub +14 -14
- package/lib/migrations/migrate/stub/js-schema.stub +22 -22
- package/lib/migrations/migrate/stub/js.stub +22 -22
- package/lib/migrations/migrate/stub/knexfile-coffee.stub +34 -34
- package/lib/migrations/migrate/stub/knexfile-eg.stub +43 -43
- package/lib/migrations/migrate/stub/knexfile-js.stub +47 -47
- package/lib/migrations/migrate/stub/knexfile-ls.stub +35 -35
- package/lib/migrations/migrate/stub/knexfile-ts.stub +47 -47
- package/lib/migrations/migrate/stub/ls.stub +14 -14
- package/lib/migrations/migrate/stub/mjs.stub +23 -23
- package/lib/migrations/migrate/stub/ts-schema.stub +21 -21
- package/lib/migrations/migrate/stub/ts.stub +21 -21
- package/lib/migrations/migrate/table-creator.js +77 -77
- package/lib/migrations/migrate/table-resolver.js +27 -27
- package/lib/migrations/seed/Seeder.js +137 -137
- package/lib/migrations/seed/seed-stub.js +13 -13
- package/lib/migrations/seed/seeder-configuration-merger.js +60 -60
- package/lib/migrations/seed/sources/fs-seeds.js +65 -65
- package/lib/migrations/seed/stub/coffee.stub +9 -9
- package/lib/migrations/seed/stub/eg.stub +11 -11
- package/lib/migrations/seed/stub/js.stub +13 -13
- package/lib/migrations/seed/stub/ls.stub +11 -11
- package/lib/migrations/seed/stub/mjs.stub +12 -12
- package/lib/migrations/seed/stub/ts.stub +13 -13
- package/lib/migrations/util/fs.js +86 -86
- package/lib/migrations/util/import-file.js +12 -12
- package/lib/migrations/util/is-module-type.js +9 -9
- package/lib/migrations/util/template.js +52 -52
- package/lib/migrations/util/timestamp.js +14 -14
- package/lib/query/analytic.js +52 -52
- package/lib/query/constants.js +15 -15
- package/lib/query/joinclause.js +270 -270
- package/lib/query/method-constants.js +136 -136
- package/lib/query/querybuilder.js +1793 -1793
- package/lib/query/querycompiler.js +1634 -1634
- package/lib/raw.js +139 -139
- package/lib/ref.js +39 -39
- package/lib/schema/builder.js +115 -115
- package/lib/schema/columnbuilder.js +146 -146
- package/lib/schema/columncompiler.js +307 -307
- package/lib/schema/compiler.js +187 -187
- package/lib/schema/internal/helpers.js +55 -55
- package/lib/schema/tablebuilder.js +379 -379
- package/lib/schema/tablecompiler.js +450 -450
- package/lib/schema/viewbuilder.js +92 -92
- package/lib/schema/viewcompiler.js +138 -138
- package/lib/util/finally-mixin.js +13 -13
- package/lib/util/helpers.js +95 -95
- package/lib/util/is.js +32 -32
- package/lib/util/nanoid.js +40 -40
- package/lib/util/noop.js +1 -1
- package/lib/util/save-async-stack.js +14 -14
- package/lib/util/security.js +32 -32
- package/lib/util/string.js +190 -190
- package/lib/util/timeout.js +29 -29
- package/package.json +295 -293
- package/scripts/act-testing/act.sh +19 -19
- package/scripts/act-testing/merged-no-label.json +11 -11
- package/scripts/act-testing/merged-patch-labeled.json +12 -12
- package/scripts/act-testing/merged-skip-labeled.json +12 -12
- package/scripts/act-testing/not-merged-patch-labeled.json +12 -12
- package/scripts/build-for-release.sh +121 -121
- package/scripts/build.js +125 -125
- package/scripts/clean.js +31 -31
- package/scripts/docker-compose.yml +150 -150
- package/scripts/format-changelog.js +55 -55
- package/scripts/next-release-howto.md +24 -24
- package/scripts/oracledb-install-driver-libs.sh +82 -82
- package/scripts/release.sh +36 -36
- package/scripts/runkit-example.js +35 -35
- package/scripts/stress-test/README.txt +18 -18
- package/scripts/stress-test/docker-compose.yml +55 -55
- package/scripts/stress-test/knex-stress-test.js +212 -212
- package/scripts/stress-test/mysql2-random-hanging-every-now-and-then.js +149 -149
- package/scripts/stress-test/mysql2-sudden-exit-without-error.js +101 -101
- package/scripts/stress-test/reconnect-test-mysql-based-drivers.js +188 -188
- package/types/index.d.mts +14 -0
- package/types/index.d.ts +3321 -3321
- package/types/result.d.ts +27 -27
- package/types/tables.d.ts +4 -4
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
/* eslint max-len: 0 */
|
|
2
|
-
|
|
3
|
-
const TableCompiler = require('../postgres/schema/pg-tablecompiler');
|
|
4
|
-
|
|
5
|
-
class TableCompiler_CRDB extends TableCompiler {
|
|
6
|
-
constructor(client, tableBuilder) {
|
|
7
|
-
super(client, tableBuilder);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
addColumns(columns, prefix, colCompilers) {
|
|
11
|
-
if (prefix === this.alterColumnsPrefix) {
|
|
12
|
-
// alter columns
|
|
13
|
-
for (const col of colCompilers) {
|
|
14
|
-
this.client.logger.warn(
|
|
15
|
-
'Experimental alter column in use, see issue: https://github.com/cockroachdb/cockroach/issues/49329'
|
|
16
|
-
);
|
|
17
|
-
this.pushQuery({
|
|
18
|
-
sql: 'SET enable_experimental_alter_column_type_general = true',
|
|
19
|
-
bindings: [],
|
|
20
|
-
});
|
|
21
|
-
super._addColumn(col);
|
|
22
|
-
}
|
|
23
|
-
} else {
|
|
24
|
-
// base class implementation for normal add
|
|
25
|
-
super.addColumns(columns, prefix);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
dropUnique(columns, indexName) {
|
|
30
|
-
indexName = indexName
|
|
31
|
-
? this.formatter.wrap(indexName)
|
|
32
|
-
: this._indexCommand('unique', this.tableNameRaw, columns);
|
|
33
|
-
this.pushQuery(`drop index ${this.tableName()}@${indexName} cascade`);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
dropUniqueIfExists(columns, indexName) {
|
|
37
|
-
indexName = indexName
|
|
38
|
-
? this.formatter.wrap(indexName)
|
|
39
|
-
: this._indexCommand('unique', this.tableNameRaw, columns);
|
|
40
|
-
this.pushQuery(
|
|
41
|
-
`drop index if exists ${this.tableName()}@${indexName} cascade`
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
module.exports = TableCompiler_CRDB;
|
|
1
|
+
/* eslint max-len: 0 */
|
|
2
|
+
|
|
3
|
+
const TableCompiler = require('../postgres/schema/pg-tablecompiler');
|
|
4
|
+
|
|
5
|
+
class TableCompiler_CRDB extends TableCompiler {
|
|
6
|
+
constructor(client, tableBuilder) {
|
|
7
|
+
super(client, tableBuilder);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
addColumns(columns, prefix, colCompilers) {
|
|
11
|
+
if (prefix === this.alterColumnsPrefix) {
|
|
12
|
+
// alter columns
|
|
13
|
+
for (const col of colCompilers) {
|
|
14
|
+
this.client.logger.warn(
|
|
15
|
+
'Experimental alter column in use, see issue: https://github.com/cockroachdb/cockroach/issues/49329'
|
|
16
|
+
);
|
|
17
|
+
this.pushQuery({
|
|
18
|
+
sql: 'SET enable_experimental_alter_column_type_general = true',
|
|
19
|
+
bindings: [],
|
|
20
|
+
});
|
|
21
|
+
super._addColumn(col);
|
|
22
|
+
}
|
|
23
|
+
} else {
|
|
24
|
+
// base class implementation for normal add
|
|
25
|
+
super.addColumns(columns, prefix);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
dropUnique(columns, indexName) {
|
|
30
|
+
indexName = indexName
|
|
31
|
+
? this.formatter.wrap(indexName)
|
|
32
|
+
: this._indexCommand('unique', this.tableNameRaw, columns);
|
|
33
|
+
this.pushQuery(`drop index ${this.tableName()}@${indexName} cascade`);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
dropUniqueIfExists(columns, indexName) {
|
|
37
|
+
indexName = indexName
|
|
38
|
+
? this.formatter.wrap(indexName)
|
|
39
|
+
: this._indexCommand('unique', this.tableNameRaw, columns);
|
|
40
|
+
this.pushQuery(
|
|
41
|
+
`drop index if exists ${this.tableName()}@${indexName} cascade`
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
module.exports = TableCompiler_CRDB;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
const ViewCompiler_PG = require('../postgres/schema/pg-viewcompiler.js');
|
|
2
|
-
|
|
3
|
-
class ViewCompiler_CRDB extends ViewCompiler_PG {
|
|
4
|
-
renameColumn(from, to) {
|
|
5
|
-
throw new Error('rename column of views is not supported by this dialect.');
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
defaultTo(column, defaultValue) {
|
|
9
|
-
throw new Error(
|
|
10
|
-
'change default values of views is not supported by this dialect.'
|
|
11
|
-
);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
module.exports = ViewCompiler_CRDB;
|
|
1
|
+
const ViewCompiler_PG = require('../postgres/schema/pg-viewcompiler.js');
|
|
2
|
+
|
|
3
|
+
class ViewCompiler_CRDB extends ViewCompiler_PG {
|
|
4
|
+
renameColumn(from, to) {
|
|
5
|
+
throw new Error('rename column of views is not supported by this dialect.');
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
defaultTo(column, defaultValue) {
|
|
9
|
+
throw new Error(
|
|
10
|
+
'change default values of views is not supported by this dialect.'
|
|
11
|
+
);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
module.exports = ViewCompiler_CRDB;
|
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
// CockroachDB Client
|
|
2
|
-
// -------
|
|
3
|
-
const Client_PostgreSQL = require('../postgres');
|
|
4
|
-
const Transaction = require('../postgres/execution/pg-transaction');
|
|
5
|
-
const QueryCompiler = require('./crdb-querycompiler');
|
|
6
|
-
const ColumnCompiler = require('./crdb-columncompiler');
|
|
7
|
-
const TableCompiler = require('./crdb-tablecompiler');
|
|
8
|
-
const ViewCompiler = require('./crdb-viewcompiler');
|
|
9
|
-
const QueryBuilder = require('./crdb-querybuilder');
|
|
10
|
-
|
|
11
|
-
// Always initialize with the "QueryBuilder" and "QueryCompiler"
|
|
12
|
-
// objects, which extend the base 'lib/query/builder' and
|
|
13
|
-
// 'lib/query/compiler', respectively.
|
|
14
|
-
class Client_CockroachDB extends Client_PostgreSQL {
|
|
15
|
-
transaction() {
|
|
16
|
-
return new Transaction(this, ...arguments);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
queryCompiler(builder, formatter) {
|
|
20
|
-
return new QueryCompiler(this, builder, formatter);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
columnCompiler() {
|
|
24
|
-
return new ColumnCompiler(this, ...arguments);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
tableCompiler() {
|
|
28
|
-
return new TableCompiler(this, ...arguments);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
viewCompiler() {
|
|
32
|
-
return new ViewCompiler(this, ...arguments);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
queryBuilder() {
|
|
36
|
-
return new QueryBuilder(this);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
_parseVersion(versionString) {
|
|
40
|
-
return versionString.split(' ')[2];
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
async cancelQuery(connectionToKill) {
|
|
44
|
-
try {
|
|
45
|
-
return await this._wrappedCancelQueryCall(null, connectionToKill);
|
|
46
|
-
} catch (err) {
|
|
47
|
-
this.logger.warn(`Connection Error: ${err}`);
|
|
48
|
-
throw err;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
_wrappedCancelQueryCall(emptyConnection, connectionToKill) {
|
|
53
|
-
// FixMe https://github.com/cockroachdb/cockroach/issues/41335
|
|
54
|
-
if (
|
|
55
|
-
connectionToKill.activeQuery.processID === 0 &&
|
|
56
|
-
connectionToKill.activeQuery.secretKey === 0
|
|
57
|
-
) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return connectionToKill.cancel(
|
|
62
|
-
connectionToKill,
|
|
63
|
-
connectionToKill.activeQuery
|
|
64
|
-
);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
toArrayPathFromJsonPath(jsonPath, builder, bindingsHolder) {
|
|
68
|
-
return jsonPath
|
|
69
|
-
.replace(/^(\$\.)/, '') // remove the first dollar
|
|
70
|
-
.replace(/\[([0-9]+)]/, '.$1')
|
|
71
|
-
.split('.')
|
|
72
|
-
.map(
|
|
73
|
-
function (v) {
|
|
74
|
-
return this.parameter(v, builder, bindingsHolder);
|
|
75
|
-
}.bind(this)
|
|
76
|
-
)
|
|
77
|
-
.join(', ');
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
Object.assign(Client_CockroachDB.prototype, {
|
|
82
|
-
// The "dialect", for reference elsewhere.
|
|
83
|
-
driverName: 'cockroachdb',
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
module.exports = Client_CockroachDB;
|
|
1
|
+
// CockroachDB Client
|
|
2
|
+
// -------
|
|
3
|
+
const Client_PostgreSQL = require('../postgres');
|
|
4
|
+
const Transaction = require('../postgres/execution/pg-transaction');
|
|
5
|
+
const QueryCompiler = require('./crdb-querycompiler');
|
|
6
|
+
const ColumnCompiler = require('./crdb-columncompiler');
|
|
7
|
+
const TableCompiler = require('./crdb-tablecompiler');
|
|
8
|
+
const ViewCompiler = require('./crdb-viewcompiler');
|
|
9
|
+
const QueryBuilder = require('./crdb-querybuilder');
|
|
10
|
+
|
|
11
|
+
// Always initialize with the "QueryBuilder" and "QueryCompiler"
|
|
12
|
+
// objects, which extend the base 'lib/query/builder' and
|
|
13
|
+
// 'lib/query/compiler', respectively.
|
|
14
|
+
class Client_CockroachDB extends Client_PostgreSQL {
|
|
15
|
+
transaction() {
|
|
16
|
+
return new Transaction(this, ...arguments);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
queryCompiler(builder, formatter) {
|
|
20
|
+
return new QueryCompiler(this, builder, formatter);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
columnCompiler() {
|
|
24
|
+
return new ColumnCompiler(this, ...arguments);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
tableCompiler() {
|
|
28
|
+
return new TableCompiler(this, ...arguments);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
viewCompiler() {
|
|
32
|
+
return new ViewCompiler(this, ...arguments);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
queryBuilder() {
|
|
36
|
+
return new QueryBuilder(this);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
_parseVersion(versionString) {
|
|
40
|
+
return versionString.split(' ')[2];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async cancelQuery(connectionToKill) {
|
|
44
|
+
try {
|
|
45
|
+
return await this._wrappedCancelQueryCall(null, connectionToKill);
|
|
46
|
+
} catch (err) {
|
|
47
|
+
this.logger.warn(`Connection Error: ${err}`);
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
_wrappedCancelQueryCall(emptyConnection, connectionToKill) {
|
|
53
|
+
// FixMe https://github.com/cockroachdb/cockroach/issues/41335
|
|
54
|
+
if (
|
|
55
|
+
connectionToKill.activeQuery.processID === 0 &&
|
|
56
|
+
connectionToKill.activeQuery.secretKey === 0
|
|
57
|
+
) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return connectionToKill.cancel(
|
|
62
|
+
connectionToKill,
|
|
63
|
+
connectionToKill.activeQuery
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
toArrayPathFromJsonPath(jsonPath, builder, bindingsHolder) {
|
|
68
|
+
return jsonPath
|
|
69
|
+
.replace(/^(\$\.)/, '') // remove the first dollar
|
|
70
|
+
.replace(/\[([0-9]+)]/, '.$1')
|
|
71
|
+
.split('.')
|
|
72
|
+
.map(
|
|
73
|
+
function (v) {
|
|
74
|
+
return this.parameter(v, builder, bindingsHolder);
|
|
75
|
+
}.bind(this)
|
|
76
|
+
)
|
|
77
|
+
.join(', ');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
Object.assign(Client_CockroachDB.prototype, {
|
|
82
|
+
// The "dialect", for reference elsewhere.
|
|
83
|
+
driverName: 'cockroachdb',
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
module.exports = Client_CockroachDB;
|
package/lib/dialects/index.js
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
|
-
exports.getDialectByNameOrAlias = void 0;
|
|
4
|
-
const { resolveClientNameWithAliases } = require('../util/helpers');
|
|
5
|
-
const dbNameToDialectLoader = Object.freeze({
|
|
6
|
-
'better-sqlite3': () => require('./better-sqlite3'),
|
|
7
|
-
cockroachdb: () => require('./cockroachdb'),
|
|
8
|
-
mssql: () => require('./mssql'),
|
|
9
|
-
mysql: () => require('./mysql'),
|
|
10
|
-
mysql2: () => require('./mysql2'),
|
|
11
|
-
oracle: () => require('./oracle'),
|
|
12
|
-
oracledb: () => require('./oracledb'),
|
|
13
|
-
pgnative: () => require('./pgnative'),
|
|
14
|
-
postgres: () => require('./postgres'),
|
|
15
|
-
redshift: () => require('./redshift'),
|
|
16
|
-
sqlite3: () => require('./sqlite3'),
|
|
17
|
-
});
|
|
18
|
-
/**
|
|
19
|
-
* Gets the Dialect object with the given client name or throw an
|
|
20
|
-
* error if not found.
|
|
21
|
-
*
|
|
22
|
-
* NOTE: This is a replacement for prior practice of doing dynamic
|
|
23
|
-
* string construction for imports of Dialect objects.
|
|
24
|
-
*/
|
|
25
|
-
function getDialectByNameOrAlias(clientName) {
|
|
26
|
-
const resolvedClientName = resolveClientNameWithAliases(clientName);
|
|
27
|
-
const dialectLoader = dbNameToDialectLoader[resolvedClientName];
|
|
28
|
-
if (!dialectLoader) {
|
|
29
|
-
throw new Error(`Invalid clientName given: ${clientName}`);
|
|
30
|
-
}
|
|
31
|
-
return dialectLoader();
|
|
32
|
-
}
|
|
33
|
-
exports.getDialectByNameOrAlias = getDialectByNameOrAlias;
|
|
34
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
|
+
exports.getDialectByNameOrAlias = void 0;
|
|
4
|
+
const { resolveClientNameWithAliases } = require('../util/helpers');
|
|
5
|
+
const dbNameToDialectLoader = Object.freeze({
|
|
6
|
+
'better-sqlite3': () => require('./better-sqlite3'),
|
|
7
|
+
cockroachdb: () => require('./cockroachdb'),
|
|
8
|
+
mssql: () => require('./mssql'),
|
|
9
|
+
mysql: () => require('./mysql'),
|
|
10
|
+
mysql2: () => require('./mysql2'),
|
|
11
|
+
oracle: () => require('./oracle'),
|
|
12
|
+
oracledb: () => require('./oracledb'),
|
|
13
|
+
pgnative: () => require('./pgnative'),
|
|
14
|
+
postgres: () => require('./postgres'),
|
|
15
|
+
redshift: () => require('./redshift'),
|
|
16
|
+
sqlite3: () => require('./sqlite3'),
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Gets the Dialect object with the given client name or throw an
|
|
20
|
+
* error if not found.
|
|
21
|
+
*
|
|
22
|
+
* NOTE: This is a replacement for prior practice of doing dynamic
|
|
23
|
+
* string construction for imports of Dialect objects.
|
|
24
|
+
*/
|
|
25
|
+
function getDialectByNameOrAlias(clientName) {
|
|
26
|
+
const resolvedClientName = resolveClientNameWithAliases(clientName);
|
|
27
|
+
const dialectLoader = dbNameToDialectLoader[resolvedClientName];
|
|
28
|
+
if (!dialectLoader) {
|
|
29
|
+
throw new Error(`Invalid clientName given: ${clientName}`);
|
|
30
|
+
}
|
|
31
|
+
return dialectLoader();
|
|
32
|
+
}
|
|
33
|
+
exports.getDialectByNameOrAlias = getDialectByNameOrAlias;
|
|
34
|
+
//# sourceMappingURL=index.js.map
|