kysely 0.23.4 → 0.24.0
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/README.md +49 -25
- package/dist/cjs/dialect/database-introspector.d.ts +4 -2
- package/dist/cjs/dialect/mysql/mysql-adapter.js +2 -2
- package/dist/cjs/dialect/mysql/mysql-driver.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-driver.js +1 -1
- package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-introspector.js +19 -13
- package/dist/cjs/dialect/postgres/postgres-adapter.js +1 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +1 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.js +3 -1
- package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +1 -0
- package/dist/cjs/dialect/sqlite/sqlite-dialect.js +1 -0
- package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +1 -1
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +6 -5
- package/dist/cjs/driver/runtime-driver.js +4 -2
- package/dist/cjs/expression/expression-builder.d.ts +386 -0
- package/dist/cjs/expression/expression-builder.js +92 -0
- package/dist/cjs/expression/expression-wrapper.d.ts +92 -0
- package/dist/cjs/expression/expression-wrapper.js +54 -0
- package/dist/cjs/expression/expression.d.ts +1 -1
- package/dist/cjs/helpers/postgres.d.ts +133 -0
- package/dist/cjs/helpers/postgres.js +141 -0
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/kysely.d.ts +10 -0
- package/dist/cjs/kysely.js +12 -1
- package/dist/cjs/migration/file-migration-provider.d.ts +5 -2
- package/dist/cjs/migration/migrator.d.ts +5 -2
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +3 -2
- package/dist/cjs/operation-node/aggregate-function-node.js +2 -2
- package/dist/cjs/operation-node/create-index-node.d.ts +2 -0
- package/dist/cjs/operation-node/delete-query-node.d.ts +1 -2
- package/dist/cjs/operation-node/delete-query-node.js +2 -8
- package/dist/cjs/operation-node/function-node.d.ts +13 -0
- package/dist/cjs/operation-node/function-node.js +19 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +11 -2
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +13 -2
- package/dist/cjs/operation-node/operator-node.js +38 -3
- package/dist/cjs/operation-node/query-node.d.ts +25 -8
- package/dist/cjs/operation-node/query-node.js +9 -2
- package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/select-query-node.js +0 -6
- package/dist/cjs/operation-node/update-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/update-query-node.js +0 -6
- package/dist/cjs/parser/binary-operation-parser.d.ts +9 -10
- package/dist/cjs/parser/binary-operation-parser.js +89 -39
- package/dist/cjs/parser/coalesce-parser.d.ts +0 -2
- package/dist/cjs/parser/coalesce-parser.js +0 -9
- package/dist/cjs/parser/expression-parser.d.ts +7 -3
- package/dist/cjs/parser/expression-parser.js +4 -4
- package/dist/cjs/parser/group-by-parser.d.ts +3 -2
- package/dist/cjs/parser/group-by-parser.js +3 -0
- package/dist/cjs/parser/insert-values-parser.d.ts +4 -1
- package/dist/cjs/parser/insert-values-parser.js +19 -13
- package/dist/cjs/parser/join-parser.js +1 -1
- package/dist/cjs/parser/parse-utils.d.ts +0 -2
- package/dist/cjs/parser/parse-utils.js +1 -8
- package/dist/cjs/parser/returning-parser.d.ts +2 -1
- package/dist/cjs/parser/select-parser.d.ts +5 -13
- package/dist/cjs/parser/select-parser.js +8 -4
- package/dist/cjs/parser/table-parser.d.ts +6 -3
- package/dist/cjs/parser/unary-operation-parser.d.ts +5 -2
- package/dist/cjs/parser/unary-operation-parser.js +9 -8
- package/dist/cjs/parser/update-set-parser.d.ts +4 -1
- package/dist/cjs/parser/update-set-parser.js +9 -4
- package/dist/cjs/parser/value-parser.d.ts +5 -0
- package/dist/cjs/parser/value-parser.js +1 -3
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +7 -0
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +10 -4
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +40 -113
- package/dist/cjs/query-builder/aggregate-function-builder.js +23 -63
- package/dist/cjs/query-builder/delete-query-builder.d.ts +224 -205
- package/dist/cjs/query-builder/delete-query-builder.js +21 -27
- package/dist/cjs/query-builder/delete-result.js +3 -0
- package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-having-expression-builder.js +2 -0
- package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-on-expression-builder.js +2 -0
- package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-where-expression-builder.js +2 -0
- package/dist/cjs/query-builder/function-module.d.ts +304 -42
- package/dist/cjs/query-builder/function-module.js +44 -208
- package/dist/cjs/query-builder/having-interface.d.ts +19 -16
- package/dist/cjs/query-builder/insert-query-builder.d.ts +78 -30
- package/dist/cjs/query-builder/insert-query-builder.js +21 -30
- package/dist/cjs/query-builder/insert-result.js +3 -0
- package/dist/cjs/query-builder/join-builder.d.ts +23 -26
- package/dist/cjs/query-builder/join-builder.js +17 -22
- package/dist/cjs/query-builder/no-result-error.d.ts +1 -0
- package/dist/cjs/query-builder/no-result-error.js +5 -1
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +158 -276
- package/dist/cjs/query-builder/on-conflict-builder.js +52 -36
- package/dist/cjs/query-builder/over-builder.d.ts +5 -0
- package/dist/cjs/query-builder/over-builder.js +7 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +2 -2
- package/dist/cjs/query-builder/select-query-builder.d.ts +155 -243
- package/dist/cjs/query-builder/select-query-builder.js +333 -78
- package/dist/cjs/query-builder/update-query-builder.d.ts +149 -217
- package/dist/cjs/query-builder/update-query-builder.js +21 -115
- package/dist/cjs/query-builder/update-result.js +3 -0
- package/dist/cjs/query-builder/where-interface.d.ts +71 -184
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +3 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +18 -2
- package/dist/cjs/query-creator.d.ts +38 -2
- package/dist/cjs/query-creator.js +3 -45
- package/dist/cjs/query-executor/query-executor.d.ts +3 -3
- package/dist/cjs/raw-builder/raw-builder.d.ts +5 -3
- package/dist/cjs/raw-builder/raw-builder.js +13 -7
- package/dist/cjs/raw-builder/sql.d.ts +17 -9
- package/dist/cjs/raw-builder/sql.js +8 -2
- package/dist/cjs/schema/alter-column-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-column-builder.js +7 -0
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
- package/dist/cjs/schema/alter-table-drop-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-table-drop-constraint-builder.js +7 -0
- package/dist/cjs/schema/column-definition-builder.d.ts +6 -1
- package/dist/cjs/schema/column-definition-builder.js +8 -1
- package/dist/cjs/schema/create-index-builder.d.ts +51 -9
- package/dist/cjs/schema/create-index-builder.js +17 -0
- package/dist/cjs/schema/create-schema-builder.d.ts +5 -0
- package/dist/cjs/schema/create-schema-builder.js +7 -0
- package/dist/cjs/schema/create-table-builder.d.ts +3 -1
- package/dist/cjs/schema/create-table-builder.js +3 -1
- package/dist/cjs/schema/create-type-builder.d.ts +5 -0
- package/dist/cjs/schema/create-type-builder.js +7 -0
- package/dist/cjs/schema/create-view-builder.d.ts +5 -0
- package/dist/cjs/schema/create-view-builder.js +7 -0
- package/dist/cjs/schema/drop-index-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-index-builder.js +7 -0
- package/dist/cjs/schema/drop-schema-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-schema-builder.js +7 -0
- package/dist/cjs/schema/drop-table-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-table-builder.js +7 -0
- package/dist/cjs/schema/drop-type-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-type-builder.js +7 -0
- package/dist/cjs/schema/drop-view-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-view-builder.js +7 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.js +7 -0
- package/dist/cjs/util/compilable.d.ts +1 -0
- package/dist/cjs/util/compilable.js +6 -0
- package/dist/cjs/util/explainable.d.ts +35 -0
- package/dist/cjs/util/log.d.ts +2 -0
- package/dist/cjs/util/object-utils.js +1 -1
- package/dist/cjs/util/streamable.d.ts +29 -0
- package/dist/cjs/util/streamable.js +2 -0
- package/dist/cjs/util/type-utils.d.ts +6 -4
- package/dist/esm/dialect/database-introspector.d.ts +4 -2
- package/dist/esm/dialect/mysql/mysql-adapter.js +2 -2
- package/dist/esm/dialect/mysql/mysql-driver.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-driver.js +1 -1
- package/dist/esm/dialect/mysql/mysql-introspector.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-introspector.js +19 -13
- package/dist/esm/dialect/postgres/postgres-adapter.js +1 -1
- package/dist/esm/dialect/postgres/postgres-introspector.d.ts +1 -1
- package/dist/esm/dialect/postgres/postgres-introspector.js +3 -1
- package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +1 -0
- package/dist/esm/dialect/sqlite/sqlite-dialect.js +1 -0
- package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +1 -1
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +6 -5
- package/dist/esm/driver/runtime-driver.js +4 -2
- package/dist/esm/expression/expression-builder.d.ts +386 -0
- package/dist/esm/expression/expression-builder.js +88 -0
- package/dist/esm/expression/expression-wrapper.d.ts +92 -0
- package/dist/esm/expression/expression-wrapper.js +50 -0
- package/dist/esm/expression/expression.d.ts +1 -1
- package/dist/esm/helpers/postgres.d.ts +133 -0
- package/dist/esm/helpers/postgres.js +136 -0
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +2 -1
- package/dist/esm/kysely.d.ts +10 -0
- package/dist/esm/kysely.js +13 -2
- package/dist/esm/migration/file-migration-provider.d.ts +5 -2
- package/dist/esm/migration/migrator.d.ts +5 -2
- package/dist/esm/operation-node/aggregate-function-node.d.ts +3 -2
- package/dist/esm/operation-node/aggregate-function-node.js +2 -2
- package/dist/esm/operation-node/create-index-node.d.ts +2 -0
- package/dist/esm/operation-node/delete-query-node.d.ts +1 -2
- package/dist/esm/operation-node/delete-query-node.js +2 -8
- package/dist/esm/operation-node/function-node.d.ts +13 -0
- package/dist/esm/operation-node/function-node.js +17 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.js +11 -2
- package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-visitor.js +1 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +13 -2
- package/dist/esm/operation-node/operator-node.js +34 -3
- package/dist/esm/operation-node/query-node.d.ts +25 -8
- package/dist/esm/operation-node/query-node.js +9 -2
- package/dist/esm/operation-node/select-query-node.d.ts +0 -1
- package/dist/esm/operation-node/select-query-node.js +0 -6
- package/dist/esm/operation-node/update-query-node.d.ts +0 -1
- package/dist/esm/operation-node/update-query-node.js +0 -6
- package/dist/esm/parser/binary-operation-parser.d.ts +9 -10
- package/dist/esm/parser/binary-operation-parser.js +85 -37
- package/dist/esm/parser/coalesce-parser.d.ts +0 -2
- package/dist/esm/parser/coalesce-parser.js +1 -7
- package/dist/esm/parser/expression-parser.d.ts +7 -3
- package/dist/esm/parser/expression-parser.js +5 -5
- package/dist/esm/parser/group-by-parser.d.ts +3 -2
- package/dist/esm/parser/group-by-parser.js +3 -0
- package/dist/esm/parser/insert-values-parser.d.ts +4 -1
- package/dist/esm/parser/insert-values-parser.js +18 -12
- package/dist/esm/parser/join-parser.js +2 -2
- package/dist/esm/parser/parse-utils.d.ts +0 -2
- package/dist/esm/parser/parse-utils.js +0 -6
- package/dist/esm/parser/returning-parser.d.ts +2 -1
- package/dist/esm/parser/select-parser.d.ts +5 -13
- package/dist/esm/parser/select-parser.js +7 -3
- package/dist/esm/parser/table-parser.d.ts +6 -3
- package/dist/esm/parser/unary-operation-parser.d.ts +5 -2
- package/dist/esm/parser/unary-operation-parser.js +8 -8
- package/dist/esm/parser/update-set-parser.d.ts +4 -1
- package/dist/esm/parser/update-set-parser.js +7 -2
- package/dist/esm/parser/value-parser.d.ts +5 -0
- package/dist/esm/parser/value-parser.js +1 -3
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +7 -0
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +10 -4
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +40 -113
- package/dist/esm/query-builder/aggregate-function-builder.js +24 -64
- package/dist/esm/query-builder/delete-query-builder.d.ts +224 -205
- package/dist/esm/query-builder/delete-query-builder.js +24 -30
- package/dist/esm/query-builder/delete-result.js +3 -0
- package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-having-expression-builder.js +2 -0
- package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-on-expression-builder.js +2 -0
- package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-where-expression-builder.js +2 -0
- package/dist/esm/query-builder/function-module.d.ts +304 -42
- package/dist/esm/query-builder/function-module.js +43 -207
- package/dist/esm/query-builder/having-interface.d.ts +19 -16
- package/dist/esm/query-builder/insert-query-builder.d.ts +78 -30
- package/dist/esm/query-builder/insert-query-builder.js +25 -34
- package/dist/esm/query-builder/insert-result.js +3 -0
- package/dist/esm/query-builder/join-builder.d.ts +23 -26
- package/dist/esm/query-builder/join-builder.js +18 -23
- package/dist/esm/query-builder/no-result-error.d.ts +1 -0
- package/dist/esm/query-builder/no-result-error.js +3 -0
- package/dist/esm/query-builder/on-conflict-builder.d.ts +158 -276
- package/dist/esm/query-builder/on-conflict-builder.js +54 -38
- package/dist/esm/query-builder/over-builder.d.ts +5 -0
- package/dist/esm/query-builder/over-builder.js +7 -0
- package/dist/esm/query-builder/returning-interface.d.ts +2 -2
- package/dist/esm/query-builder/select-query-builder.d.ts +155 -243
- package/dist/esm/query-builder/select-query-builder.js +337 -82
- package/dist/esm/query-builder/update-query-builder.d.ts +149 -217
- package/dist/esm/query-builder/update-query-builder.js +25 -119
- package/dist/esm/query-builder/update-result.js +3 -0
- package/dist/esm/query-builder/where-interface.d.ts +71 -184
- package/dist/esm/query-compiler/default-query-compiler.d.ts +3 -0
- package/dist/esm/query-compiler/default-query-compiler.js +18 -2
- package/dist/esm/query-creator.d.ts +38 -2
- package/dist/esm/query-creator.js +3 -45
- package/dist/esm/query-executor/query-executor.d.ts +3 -3
- package/dist/esm/raw-builder/raw-builder.d.ts +5 -3
- package/dist/esm/raw-builder/raw-builder.js +13 -7
- package/dist/esm/raw-builder/sql.d.ts +17 -9
- package/dist/esm/raw-builder/sql.js +8 -2
- package/dist/esm/schema/alter-column-builder.d.ts +5 -0
- package/dist/esm/schema/alter-column-builder.js +7 -0
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
- package/dist/esm/schema/alter-table-drop-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/alter-table-drop-constraint-builder.js +7 -0
- package/dist/esm/schema/column-definition-builder.d.ts +6 -1
- package/dist/esm/schema/column-definition-builder.js +8 -1
- package/dist/esm/schema/create-index-builder.d.ts +51 -9
- package/dist/esm/schema/create-index-builder.js +17 -0
- package/dist/esm/schema/create-schema-builder.d.ts +5 -0
- package/dist/esm/schema/create-schema-builder.js +7 -0
- package/dist/esm/schema/create-table-builder.d.ts +3 -1
- package/dist/esm/schema/create-table-builder.js +3 -1
- package/dist/esm/schema/create-type-builder.d.ts +5 -0
- package/dist/esm/schema/create-type-builder.js +7 -0
- package/dist/esm/schema/create-view-builder.d.ts +5 -0
- package/dist/esm/schema/create-view-builder.js +7 -0
- package/dist/esm/schema/drop-index-builder.d.ts +5 -0
- package/dist/esm/schema/drop-index-builder.js +7 -0
- package/dist/esm/schema/drop-schema-builder.d.ts +5 -0
- package/dist/esm/schema/drop-schema-builder.js +7 -0
- package/dist/esm/schema/drop-table-builder.d.ts +5 -0
- package/dist/esm/schema/drop-table-builder.js +7 -0
- package/dist/esm/schema/drop-type-builder.d.ts +5 -0
- package/dist/esm/schema/drop-type-builder.js +7 -0
- package/dist/esm/schema/drop-view-builder.d.ts +5 -0
- package/dist/esm/schema/drop-view-builder.js +7 -0
- package/dist/esm/schema/foreign-key-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/foreign-key-constraint-builder.js +7 -0
- package/dist/esm/util/compilable.d.ts +1 -0
- package/dist/esm/util/compilable.js +4 -1
- package/dist/esm/util/explainable.d.ts +35 -0
- package/dist/esm/util/log.d.ts +2 -0
- package/dist/esm/util/object-utils.js +1 -1
- package/dist/esm/util/streamable.d.ts +29 -0
- package/dist/esm/util/streamable.js +2 -0
- package/dist/esm/util/type-utils.d.ts +6 -4
- package/helpers/postgres.d.ts +1 -0
- package/helpers/postgres.js +1 -0
- package/package.json +20 -9
- package/dist/cjs/query-builder/expression-builder.d.ts +0 -126
- package/dist/cjs/query-builder/expression-builder.js +0 -107
- package/dist/esm/query-builder/expression-builder.d.ts +0 -126
- package/dist/esm/query-builder/expression-builder.js +0 -104
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
/// <reference types="./insert-query-builder.d.ts" />
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { parseSelectArg, parseSelectAll, } from '../parser/select-parser.js';
|
|
3
|
+
import { parseInsertExpression, } from '../parser/insert-values-parser.js';
|
|
4
4
|
import { InsertQueryNode } from '../operation-node/insert-query-node.js';
|
|
5
5
|
import { QueryNode } from '../operation-node/query-node.js';
|
|
6
|
-
import {
|
|
6
|
+
import { parseUpdateExpression, } from '../parser/update-set-parser.js';
|
|
7
7
|
import { preventAwait } from '../util/prevent-await.js';
|
|
8
8
|
import { freeze } from '../util/object-utils.js';
|
|
9
9
|
import { OnDuplicateKeyNode } from '../operation-node/on-duplicate-key-node.js';
|
|
10
10
|
import { InsertResult } from './insert-result.js';
|
|
11
|
-
import { NoResultError } from './no-result-error.js';
|
|
11
|
+
import { isNoResultErrorConstructor, NoResultError, } from './no-result-error.js';
|
|
12
12
|
import { parseExpression, } from '../parser/expression-parser.js';
|
|
13
13
|
import { ColumnNode } from '../operation-node/column-node.js';
|
|
14
14
|
import { OnConflictBuilder, } from './on-conflict-builder.js';
|
|
15
15
|
import { OnConflictNode } from '../operation-node/on-conflict-node.js';
|
|
16
|
-
import { ExplainNode } from '../operation-node/explain-node.js';
|
|
17
16
|
export class InsertQueryBuilder {
|
|
18
17
|
#props;
|
|
19
18
|
constructor(props) {
|
|
20
19
|
this.#props = freeze(props);
|
|
21
20
|
}
|
|
22
|
-
values(
|
|
23
|
-
const [columns, values] =
|
|
21
|
+
values(insert) {
|
|
22
|
+
const [columns, values] = parseInsertExpression(insert);
|
|
24
23
|
return new InsertQueryBuilder({
|
|
25
24
|
...this.#props,
|
|
26
25
|
queryNode: InsertQueryNode.cloneWith(this.#props.queryNode, {
|
|
@@ -159,7 +158,6 @@ export class InsertQueryBuilder {
|
|
|
159
158
|
* .doUpdateSet({ species: 'hamster' })
|
|
160
159
|
* )
|
|
161
160
|
* .execute()
|
|
162
|
-
* .execute()
|
|
163
161
|
* ```
|
|
164
162
|
*
|
|
165
163
|
* The generated SQL (PostgreSQL):
|
|
@@ -294,18 +292,18 @@ export class InsertQueryBuilder {
|
|
|
294
292
|
* .onDuplicateKeyUpdate({ species: 'hamster' })
|
|
295
293
|
* ```
|
|
296
294
|
*/
|
|
297
|
-
onDuplicateKeyUpdate(
|
|
295
|
+
onDuplicateKeyUpdate(update) {
|
|
298
296
|
return new InsertQueryBuilder({
|
|
299
297
|
...this.#props,
|
|
300
298
|
queryNode: InsertQueryNode.cloneWith(this.#props.queryNode, {
|
|
301
|
-
onDuplicateKey: OnDuplicateKeyNode.create(
|
|
299
|
+
onDuplicateKey: OnDuplicateKeyNode.create(parseUpdateExpression(update)),
|
|
302
300
|
}),
|
|
303
301
|
});
|
|
304
302
|
}
|
|
305
303
|
returning(selection) {
|
|
306
304
|
return new InsertQueryBuilder({
|
|
307
305
|
...this.#props,
|
|
308
|
-
queryNode: QueryNode.cloneWithReturning(this.#props.queryNode,
|
|
306
|
+
queryNode: QueryNode.cloneWithReturning(this.#props.queryNode, parseSelectArg(selection)),
|
|
309
307
|
});
|
|
310
308
|
}
|
|
311
309
|
returningAll() {
|
|
@@ -315,7 +313,8 @@ export class InsertQueryBuilder {
|
|
|
315
313
|
});
|
|
316
314
|
}
|
|
317
315
|
/**
|
|
318
|
-
* Simply calls the
|
|
316
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
317
|
+
* what the provided function returns.
|
|
319
318
|
*
|
|
320
319
|
* If you want to conditionally call a method on `this`, see
|
|
321
320
|
* the {@link $if} method.
|
|
@@ -441,7 +440,7 @@ export class InsertQueryBuilder {
|
|
|
441
440
|
* )
|
|
442
441
|
* .with('new_pet', (qb) => qb
|
|
443
442
|
* .insertInto('pet')
|
|
444
|
-
* .values(
|
|
443
|
+
* .values((eb) => ({ owner_id: eb.selectFrom('new_person').select('id'), ...pet }))
|
|
445
444
|
* .returning(['name as pet_name', 'species'])
|
|
446
445
|
* .$assertType<{ pet_name: string, species: Species }>()
|
|
447
446
|
* )
|
|
@@ -505,38 +504,30 @@ export class InsertQueryBuilder {
|
|
|
505
504
|
* the query returned no result.
|
|
506
505
|
*
|
|
507
506
|
* By default an instance of {@link NoResultError} is thrown, but you can
|
|
508
|
-
* provide a custom error class as the only argument to throw a different
|
|
507
|
+
* provide a custom error class, or callback as the only argument to throw a different
|
|
509
508
|
* error.
|
|
510
509
|
*/
|
|
511
510
|
async executeTakeFirstOrThrow(errorConstructor = NoResultError) {
|
|
512
511
|
const result = await this.executeTakeFirst();
|
|
513
512
|
if (result === undefined) {
|
|
514
|
-
|
|
513
|
+
const error = isNoResultErrorConstructor(errorConstructor)
|
|
514
|
+
? new errorConstructor(this.toOperationNode())
|
|
515
|
+
: errorConstructor(this.toOperationNode());
|
|
516
|
+
throw error;
|
|
515
517
|
}
|
|
516
518
|
return result;
|
|
517
519
|
}
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
* .explain('json')
|
|
526
|
-
* ```
|
|
527
|
-
*
|
|
528
|
-
* The generated SQL (MySQL):
|
|
529
|
-
*
|
|
530
|
-
* ```sql
|
|
531
|
-
* explain format=json insert into `person` (`id`, `first_name`, `last_name`) values (?, ?, ?) (?, ?, ?)
|
|
532
|
-
* ```
|
|
533
|
-
*/
|
|
520
|
+
async *stream(chunkSize = 100) {
|
|
521
|
+
const compiledQuery = this.compile();
|
|
522
|
+
const stream = this.#props.executor.stream(compiledQuery, chunkSize, this.#props.queryId);
|
|
523
|
+
for await (const item of stream) {
|
|
524
|
+
yield* item.rows;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
534
527
|
async explain(format, options) {
|
|
535
528
|
const builder = new InsertQueryBuilder({
|
|
536
529
|
...this.#props,
|
|
537
|
-
queryNode:
|
|
538
|
-
explain: ExplainNode.create(format, options?.toOperationNode()),
|
|
539
|
-
}),
|
|
530
|
+
queryNode: QueryNode.cloneWithExplain(this.#props.queryNode, format, options),
|
|
540
531
|
});
|
|
541
532
|
return await builder.execute();
|
|
542
533
|
}
|
|
@@ -4,6 +4,8 @@ import { OperationNodeSource } from '../operation-node/operation-node-source.js'
|
|
|
4
4
|
import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
|
|
5
5
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
6
6
|
import { ExistsExpression } from '../parser/unary-operation-parser.js';
|
|
7
|
+
import { SqlBool } from '../util/type-utils.js';
|
|
8
|
+
import { OnExpressionBuilder } from './deprecated-on-expression-builder.js';
|
|
7
9
|
export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNodeSource {
|
|
8
10
|
#private;
|
|
9
11
|
constructor(props: JoinBuilderProps);
|
|
@@ -14,16 +16,19 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
|
|
|
14
16
|
* See {@link WhereInterface.where} for documentation and examples.
|
|
15
17
|
*/
|
|
16
18
|
on<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
|
|
17
|
-
on(
|
|
19
|
+
on(factory: OnExpressionFactory<DB, TB>): JoinBuilder<DB, TB>;
|
|
18
20
|
on(expression: Expression<any>): JoinBuilder<DB, TB>;
|
|
19
21
|
/**
|
|
20
|
-
*
|
|
21
|
-
* `on` clause instead.
|
|
22
|
-
*
|
|
23
|
-
* See {@link WhereInterface.orWhere} for documentation and examples.
|
|
22
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
24
23
|
*/
|
|
25
24
|
orOn<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
|
|
26
|
-
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
27
|
+
*/
|
|
28
|
+
orOn(factory: OnExpressionFactory<DB, TB>): JoinBuilder<DB, TB>;
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
31
|
+
*/
|
|
27
32
|
orOn(expression: Expression<any>): JoinBuilder<DB, TB>;
|
|
28
33
|
/**
|
|
29
34
|
* Just like {@link WhereInterface.whereRef} but adds an item to the join's
|
|
@@ -33,46 +38,38 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
|
|
|
33
38
|
*/
|
|
34
39
|
onRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
35
40
|
/**
|
|
36
|
-
*
|
|
37
|
-
* `on` clause instead.
|
|
38
|
-
*
|
|
39
|
-
* See {@link WhereInterface.orWhereRef} for documentation and examples.
|
|
41
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
40
42
|
*/
|
|
41
43
|
orOnRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
42
44
|
/**
|
|
43
|
-
*
|
|
44
|
-
* `on` clause instead.
|
|
45
|
-
*
|
|
46
|
-
* See {@link WhereInterface.whereExists} for documentation and examples.
|
|
45
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
47
46
|
*/
|
|
48
47
|
onExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
49
48
|
/**
|
|
50
|
-
*
|
|
51
|
-
* `on` clause instead.
|
|
52
|
-
*
|
|
53
|
-
* See {@link WhereInterface.whereNotExists} for documentation and examples.
|
|
49
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
54
50
|
*/
|
|
55
51
|
onNotExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
56
52
|
/**
|
|
57
|
-
*
|
|
58
|
-
* `on` clause instead.
|
|
59
|
-
*
|
|
60
|
-
* See {@link WhereInterface.orWhereExists} for documentation and examples.
|
|
53
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
61
54
|
*/
|
|
62
55
|
orOnExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
63
56
|
/**
|
|
64
|
-
*
|
|
65
|
-
* `on` clause instead.
|
|
66
|
-
*
|
|
67
|
-
* See {@link WhereInterface.orWhereNotExists} for documentation and examples.
|
|
57
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
68
58
|
*/
|
|
69
59
|
orOnNotExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
70
60
|
/**
|
|
71
61
|
* Adds `on true`.
|
|
72
62
|
*/
|
|
73
63
|
onTrue(): JoinBuilder<DB, TB>;
|
|
64
|
+
/**
|
|
65
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
66
|
+
* what the provided function returns.
|
|
67
|
+
*/
|
|
68
|
+
$call<T>(func: (qb: this) => T): T;
|
|
74
69
|
toOperationNode(): JoinNode;
|
|
75
70
|
}
|
|
76
71
|
export interface JoinBuilderProps {
|
|
77
72
|
readonly joinNode: JoinNode;
|
|
78
73
|
}
|
|
74
|
+
declare type OnExpressionFactory<DB, TB extends keyof DB> = (eb: OnExpressionBuilder<DB, TB>) => Expression<SqlBool> | OnExpressionBuilder<DB, TB>;
|
|
75
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="./join-builder.d.ts" />
|
|
2
2
|
import { JoinNode } from '../operation-node/join-node.js';
|
|
3
3
|
import { RawNode } from '../operation-node/raw-node.js';
|
|
4
|
-
import { parseOn,
|
|
4
|
+
import { parseOn, parseReferentialComparison, } from '../parser/binary-operation-parser.js';
|
|
5
5
|
import { parseExists, parseNotExists, } from '../parser/unary-operation-parser.js';
|
|
6
6
|
import { freeze } from '../util/object-utils.js';
|
|
7
7
|
import { preventAwait } from '../util/prevent-await.js';
|
|
@@ -16,6 +16,9 @@ export class JoinBuilder {
|
|
|
16
16
|
joinNode: JoinNode.cloneWithOn(this.#props.joinNode, parseOn(args)),
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
21
|
+
*/
|
|
19
22
|
orOn(...args) {
|
|
20
23
|
return new JoinBuilder({
|
|
21
24
|
...this.#props,
|
|
@@ -31,26 +34,20 @@ export class JoinBuilder {
|
|
|
31
34
|
onRef(lhs, op, rhs) {
|
|
32
35
|
return new JoinBuilder({
|
|
33
36
|
...this.#props,
|
|
34
|
-
joinNode: JoinNode.cloneWithOn(this.#props.joinNode,
|
|
37
|
+
joinNode: JoinNode.cloneWithOn(this.#props.joinNode, parseReferentialComparison(lhs, op, rhs)),
|
|
35
38
|
});
|
|
36
39
|
}
|
|
37
40
|
/**
|
|
38
|
-
*
|
|
39
|
-
* `on` clause instead.
|
|
40
|
-
*
|
|
41
|
-
* See {@link WhereInterface.orWhereRef} for documentation and examples.
|
|
41
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
42
42
|
*/
|
|
43
43
|
orOnRef(lhs, op, rhs) {
|
|
44
44
|
return new JoinBuilder({
|
|
45
45
|
...this.#props,
|
|
46
|
-
joinNode: JoinNode.cloneWithOrOn(this.#props.joinNode,
|
|
46
|
+
joinNode: JoinNode.cloneWithOrOn(this.#props.joinNode, parseReferentialComparison(lhs, op, rhs)),
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
51
|
-
* `on` clause instead.
|
|
52
|
-
*
|
|
53
|
-
* See {@link WhereInterface.whereExists} for documentation and examples.
|
|
50
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
54
51
|
*/
|
|
55
52
|
onExists(arg) {
|
|
56
53
|
return new JoinBuilder({
|
|
@@ -59,10 +56,7 @@ export class JoinBuilder {
|
|
|
59
56
|
});
|
|
60
57
|
}
|
|
61
58
|
/**
|
|
62
|
-
*
|
|
63
|
-
* `on` clause instead.
|
|
64
|
-
*
|
|
65
|
-
* See {@link WhereInterface.whereNotExists} for documentation and examples.
|
|
59
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
66
60
|
*/
|
|
67
61
|
onNotExists(arg) {
|
|
68
62
|
return new JoinBuilder({
|
|
@@ -71,10 +65,7 @@ export class JoinBuilder {
|
|
|
71
65
|
});
|
|
72
66
|
}
|
|
73
67
|
/**
|
|
74
|
-
*
|
|
75
|
-
* `on` clause instead.
|
|
76
|
-
*
|
|
77
|
-
* See {@link WhereInterface.orWhereExists} for documentation and examples.
|
|
68
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
78
69
|
*/
|
|
79
70
|
orOnExists(arg) {
|
|
80
71
|
return new JoinBuilder({
|
|
@@ -83,10 +74,7 @@ export class JoinBuilder {
|
|
|
83
74
|
});
|
|
84
75
|
}
|
|
85
76
|
/**
|
|
86
|
-
*
|
|
87
|
-
* `on` clause instead.
|
|
88
|
-
*
|
|
89
|
-
* See {@link WhereInterface.orWhereNotExists} for documentation and examples.
|
|
77
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
90
78
|
*/
|
|
91
79
|
orOnNotExists(arg) {
|
|
92
80
|
return new JoinBuilder({
|
|
@@ -103,6 +91,13 @@ export class JoinBuilder {
|
|
|
103
91
|
joinNode: JoinNode.cloneWithOn(this.#props.joinNode, RawNode.createWithSql('true')),
|
|
104
92
|
});
|
|
105
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
96
|
+
* what the provided function returns.
|
|
97
|
+
*/
|
|
98
|
+
$call(func) {
|
|
99
|
+
return func(this);
|
|
100
|
+
}
|
|
106
101
|
toOperationNode() {
|
|
107
102
|
return this.#props.joinNode;
|
|
108
103
|
}
|