kysely 0.25.0 → 0.26.1
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 +10 -563
- package/dist/cjs/dialect/database-introspector.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +2 -2
- package/dist/cjs/dialect/mysql/mysql-driver.js +5 -1
- package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +1 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.js +1 -4
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -1
- package/dist/cjs/driver/database-connection.d.ts +6 -0
- package/dist/cjs/driver/driver.d.ts +1 -1
- package/dist/cjs/expression/expression-builder.d.ts +207 -108
- package/dist/cjs/expression/expression-builder.js +28 -7
- package/dist/cjs/expression/expression-wrapper.d.ts +296 -5
- package/dist/cjs/expression/expression-wrapper.js +70 -2
- package/dist/cjs/helpers/postgres.d.ts +30 -18
- package/dist/cjs/helpers/postgres.js +30 -18
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/kysely.d.ts +23 -13
- package/dist/cjs/kysely.js +13 -9
- package/dist/cjs/migration/file-migration-provider.js +2 -2
- package/dist/cjs/operation-node/alter-column-node.d.ts +2 -3
- package/dist/cjs/operation-node/alter-column-node.js +2 -7
- package/dist/cjs/operation-node/alter-table-node.d.ts +2 -2
- package/dist/cjs/operation-node/column-definition-node.d.ts +1 -1
- package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-index-node.d.ts +2 -2
- package/dist/cjs/operation-node/create-schema-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-table-node.d.ts +2 -2
- package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-view-node.d.ts +1 -1
- package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
- package/dist/cjs/operation-node/drop-constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-index-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-schema-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-table-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-view-node.d.ts +1 -1
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/generated-node.d.ts +1 -1
- package/dist/cjs/operation-node/insert-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/join-node.d.ts +1 -2
- package/dist/cjs/operation-node/join-node.js +0 -8
- package/dist/cjs/operation-node/json-operator-chain-node.d.ts +16 -0
- package/dist/cjs/operation-node/json-operator-chain-node.js +25 -0
- package/dist/cjs/operation-node/json-path-leg-node.d.ts +14 -0
- package/dist/cjs/operation-node/json-path-leg-node.js +19 -0
- package/dist/cjs/operation-node/json-path-node.d.ts +16 -0
- package/dist/cjs/operation-node/json-path-node.js +25 -0
- package/dist/cjs/operation-node/json-reference-node.d.ts +17 -0
- package/dist/cjs/operation-node/json-reference-node.js +25 -0
- package/dist/cjs/operation-node/on-conflict-node.d.ts +1 -1
- package/dist/cjs/operation-node/on-duplicate-key-node.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +8 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +33 -1
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +13 -9
- package/dist/cjs/operation-node/operator-node.js +12 -2
- package/dist/cjs/operation-node/query-node.d.ts +9 -10
- package/dist/cjs/operation-node/query-node.js +0 -8
- package/dist/cjs/operation-node/reference-node.d.ts +2 -2
- package/dist/cjs/operation-node/reference-node.js +1 -1
- package/dist/cjs/operation-node/references-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-modifier-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/select-query-node.js +0 -8
- package/dist/cjs/operation-node/selection-node.d.ts +1 -1
- package/dist/cjs/operation-node/set-operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +1 -1
- package/dist/cjs/operation-node/update-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/values-node.d.ts +1 -1
- package/dist/cjs/operation-node/with-node.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.d.ts +9 -12
- package/dist/cjs/parser/binary-operation-parser.js +40 -119
- package/dist/cjs/parser/coalesce-parser.d.ts +1 -1
- package/dist/cjs/parser/data-type-parser.d.ts +1 -1
- package/dist/cjs/parser/default-value-parser.d.ts +1 -1
- package/dist/cjs/parser/expression-parser.d.ts +5 -5
- package/dist/cjs/parser/group-by-parser.d.ts +2 -2
- package/dist/cjs/parser/insert-values-parser.d.ts +4 -4
- package/dist/cjs/parser/join-parser.d.ts +4 -4
- package/dist/cjs/parser/order-by-parser.d.ts +3 -3
- package/dist/cjs/parser/partition-by-parser.d.ts +2 -2
- package/dist/cjs/parser/reference-parser.d.ts +13 -9
- package/dist/cjs/parser/reference-parser.js +28 -16
- package/dist/cjs/parser/returning-parser.d.ts +2 -2
- package/dist/cjs/parser/select-parser.d.ts +10 -10
- package/dist/cjs/parser/table-parser.d.ts +12 -12
- package/dist/cjs/parser/unary-operation-parser.d.ts +1 -1
- package/dist/cjs/parser/update-set-parser.d.ts +3 -3
- package/dist/cjs/parser/update-set-parser.js +1 -3
- package/dist/cjs/parser/value-parser.d.ts +4 -4
- package/dist/cjs/parser/with-parser.d.ts +12 -8
- package/dist/cjs/plugin/camel-case/camel-case.d.ts +1 -1
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +32 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +22 -6
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +5 -38
- package/dist/cjs/query-builder/aggregate-function-builder.js +4 -59
- package/dist/cjs/query-builder/case-builder.d.ts +11 -11
- package/dist/cjs/query-builder/case-builder.js +2 -2
- package/dist/cjs/query-builder/delete-query-builder.d.ts +110 -62
- package/dist/cjs/query-builder/delete-query-builder.js +1 -62
- package/dist/cjs/query-builder/delete-result.d.ts +1 -2
- package/dist/cjs/query-builder/delete-result.js +2 -8
- package/dist/cjs/query-builder/function-module.d.ts +44 -66
- package/dist/cjs/query-builder/having-interface.d.ts +2 -35
- package/dist/cjs/query-builder/insert-query-builder.d.ts +59 -48
- package/dist/cjs/query-builder/insert-query-builder.js +17 -34
- package/dist/cjs/query-builder/insert-result.d.ts +3 -4
- package/dist/cjs/query-builder/insert-result.js +5 -14
- package/dist/cjs/query-builder/join-builder.d.ts +2 -35
- package/dist/cjs/query-builder/join-builder.js +1 -56
- package/dist/cjs/query-builder/json-path-builder.d.ts +212 -0
- package/dist/cjs/query-builder/json-path-builder.js +191 -0
- package/dist/cjs/query-builder/no-result-error.d.ts +1 -1
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +194 -77
- package/dist/cjs/query-builder/on-conflict-builder.js +2 -111
- package/dist/cjs/query-builder/over-builder.d.ts +2 -2
- package/dist/cjs/query-builder/over-builder.js +1 -1
- package/dist/cjs/query-builder/returning-interface.d.ts +1 -1
- package/dist/cjs/query-builder/select-query-builder.d.ts +169 -141
- package/dist/cjs/query-builder/select-query-builder.js +27 -136
- package/dist/cjs/query-builder/update-query-builder.d.ts +147 -66
- package/dist/cjs/query-builder/update-query-builder.js +3 -63
- package/dist/cjs/query-builder/update-result.d.ts +3 -3
- package/dist/cjs/query-builder/update-result.js +5 -9
- package/dist/cjs/query-builder/where-interface.d.ts +98 -40
- package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
- package/dist/cjs/query-compiler/compiled-query.js +2 -2
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +37 -2
- package/dist/cjs/query-compiler/query-compiler.d.ts +1 -1
- package/dist/cjs/query-creator.d.ts +4 -2
- package/dist/cjs/schema/alter-column-builder.d.ts +11 -5
- package/dist/cjs/schema/alter-column-builder.js +19 -21
- package/dist/cjs/schema/alter-table-builder.d.ts +0 -4
- package/dist/cjs/schema/alter-table-builder.js +2 -9
- package/dist/cjs/schema/column-definition-builder.d.ts +1 -1
- package/dist/cjs/schema/column-definition-builder.js +1 -2
- package/dist/cjs/schema/create-index-builder.js +1 -1
- package/dist/cjs/schema/create-table-builder.d.ts +2 -6
- package/dist/cjs/schema/create-table-builder.js +0 -6
- package/dist/cjs/schema/schema.d.ts +1 -2
- package/dist/cjs/schema/schema.js +1 -2
- package/dist/cjs/util/column-type.d.ts +22 -18
- package/dist/cjs/util/explainable.d.ts +1 -1
- package/dist/cjs/util/infer-result.d.ts +2 -2
- package/dist/cjs/util/log.d.ts +4 -4
- package/dist/cjs/util/require-all-props.d.ts +1 -1
- package/dist/cjs/util/type-utils.d.ts +19 -19
- package/dist/esm/dialect/database-introspector.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +2 -2
- package/dist/esm/dialect/mysql/mysql-driver.js +5 -1
- package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +1 -1
- package/dist/esm/dialect/postgres/postgres-introspector.js +1 -4
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -1
- package/dist/esm/driver/database-connection.d.ts +6 -0
- package/dist/esm/driver/driver.d.ts +1 -1
- package/dist/esm/expression/expression-builder.d.ts +207 -108
- package/dist/esm/expression/expression-builder.js +30 -9
- package/dist/esm/expression/expression-wrapper.d.ts +296 -5
- package/dist/esm/expression/expression-wrapper.js +67 -1
- package/dist/esm/helpers/postgres.d.ts +30 -18
- package/dist/esm/helpers/postgres.js +30 -18
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/kysely.d.ts +23 -13
- package/dist/esm/kysely.js +13 -9
- package/dist/esm/operation-node/alter-column-node.d.ts +2 -3
- package/dist/esm/operation-node/alter-column-node.js +2 -7
- package/dist/esm/operation-node/alter-table-node.d.ts +2 -2
- package/dist/esm/operation-node/column-definition-node.d.ts +1 -1
- package/dist/esm/operation-node/constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/create-index-node.d.ts +2 -2
- package/dist/esm/operation-node/create-schema-node.d.ts +1 -1
- package/dist/esm/operation-node/create-table-node.d.ts +2 -2
- package/dist/esm/operation-node/create-type-node.d.ts +1 -1
- package/dist/esm/operation-node/create-view-node.d.ts +1 -1
- package/dist/esm/operation-node/data-type-node.d.ts +2 -2
- package/dist/esm/operation-node/drop-constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-index-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-schema-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-table-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-view-node.d.ts +1 -1
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/generated-node.d.ts +1 -1
- package/dist/esm/operation-node/insert-query-node.d.ts +1 -1
- package/dist/esm/operation-node/join-node.d.ts +1 -2
- package/dist/esm/operation-node/join-node.js +0 -8
- package/dist/esm/operation-node/json-operator-chain-node.d.ts +16 -0
- package/dist/esm/operation-node/json-operator-chain-node.js +23 -0
- package/dist/esm/operation-node/json-path-leg-node.d.ts +14 -0
- package/dist/esm/operation-node/json-path-leg-node.js +17 -0
- package/dist/esm/operation-node/json-path-node.d.ts +16 -0
- package/dist/esm/operation-node/json-path-node.js +23 -0
- package/dist/esm/operation-node/json-reference-node.d.ts +17 -0
- package/dist/esm/operation-node/json-reference-node.js +23 -0
- package/dist/esm/operation-node/on-conflict-node.d.ts +1 -1
- package/dist/esm/operation-node/on-duplicate-key-node.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +8 -0
- package/dist/esm/operation-node/operation-node-transformer.js +33 -1
- package/dist/esm/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/esm/operation-node/operation-node-visitor.js +4 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +13 -9
- package/dist/esm/operation-node/operator-node.js +10 -1
- package/dist/esm/operation-node/query-node.d.ts +9 -10
- package/dist/esm/operation-node/query-node.js +0 -8
- package/dist/esm/operation-node/reference-node.d.ts +2 -2
- package/dist/esm/operation-node/reference-node.js +1 -1
- package/dist/esm/operation-node/references-node.d.ts +1 -1
- package/dist/esm/operation-node/select-modifier-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.d.ts +0 -1
- package/dist/esm/operation-node/select-query-node.js +0 -8
- package/dist/esm/operation-node/selection-node.d.ts +1 -1
- package/dist/esm/operation-node/set-operation-node.d.ts +1 -1
- package/dist/esm/operation-node/simple-reference-expression-node.d.ts +1 -1
- package/dist/esm/operation-node/update-query-node.d.ts +1 -1
- package/dist/esm/operation-node/values-node.d.ts +1 -1
- package/dist/esm/operation-node/with-node.d.ts +1 -1
- package/dist/esm/parser/binary-operation-parser.d.ts +9 -12
- package/dist/esm/parser/binary-operation-parser.js +38 -114
- package/dist/esm/parser/coalesce-parser.d.ts +1 -1
- package/dist/esm/parser/data-type-parser.d.ts +1 -1
- package/dist/esm/parser/default-value-parser.d.ts +1 -1
- package/dist/esm/parser/expression-parser.d.ts +5 -5
- package/dist/esm/parser/group-by-parser.d.ts +2 -2
- package/dist/esm/parser/insert-values-parser.d.ts +4 -4
- package/dist/esm/parser/join-parser.d.ts +4 -4
- package/dist/esm/parser/order-by-parser.d.ts +3 -3
- package/dist/esm/parser/partition-by-parser.d.ts +2 -2
- package/dist/esm/parser/reference-parser.d.ts +13 -9
- package/dist/esm/parser/reference-parser.js +26 -15
- package/dist/esm/parser/returning-parser.d.ts +2 -2
- package/dist/esm/parser/select-parser.d.ts +10 -10
- package/dist/esm/parser/table-parser.d.ts +12 -12
- package/dist/esm/parser/unary-operation-parser.d.ts +1 -1
- package/dist/esm/parser/update-set-parser.d.ts +3 -3
- package/dist/esm/parser/update-set-parser.js +2 -4
- package/dist/esm/parser/value-parser.d.ts +4 -4
- package/dist/esm/parser/with-parser.d.ts +12 -8
- package/dist/esm/plugin/camel-case/camel-case.d.ts +1 -1
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +29 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +22 -6
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +5 -38
- package/dist/esm/query-builder/aggregate-function-builder.js +5 -60
- package/dist/esm/query-builder/case-builder.d.ts +11 -11
- package/dist/esm/query-builder/case-builder.js +3 -3
- package/dist/esm/query-builder/delete-query-builder.d.ts +110 -62
- package/dist/esm/query-builder/delete-query-builder.js +2 -63
- package/dist/esm/query-builder/delete-result.d.ts +1 -2
- package/dist/esm/query-builder/delete-result.js +2 -8
- package/dist/esm/query-builder/function-module.d.ts +44 -66
- package/dist/esm/query-builder/having-interface.d.ts +2 -35
- package/dist/esm/query-builder/insert-query-builder.d.ts +59 -48
- package/dist/esm/query-builder/insert-query-builder.js +17 -34
- package/dist/esm/query-builder/insert-result.d.ts +3 -4
- package/dist/esm/query-builder/insert-result.js +5 -14
- package/dist/esm/query-builder/join-builder.d.ts +2 -35
- package/dist/esm/query-builder/join-builder.js +2 -57
- package/dist/esm/query-builder/json-path-builder.d.ts +212 -0
- package/dist/esm/query-builder/json-path-builder.js +186 -0
- package/dist/esm/query-builder/no-result-error.d.ts +1 -1
- package/dist/esm/query-builder/on-conflict-builder.d.ts +194 -77
- package/dist/esm/query-builder/on-conflict-builder.js +3 -112
- package/dist/esm/query-builder/over-builder.d.ts +2 -2
- package/dist/esm/query-builder/over-builder.js +1 -1
- package/dist/esm/query-builder/returning-interface.d.ts +1 -1
- package/dist/esm/query-builder/select-query-builder.d.ts +169 -141
- package/dist/esm/query-builder/select-query-builder.js +28 -137
- package/dist/esm/query-builder/update-query-builder.d.ts +147 -66
- package/dist/esm/query-builder/update-query-builder.js +4 -64
- package/dist/esm/query-builder/update-result.d.ts +3 -3
- package/dist/esm/query-builder/update-result.js +5 -9
- package/dist/esm/query-builder/where-interface.d.ts +98 -40
- package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
- package/dist/esm/query-compiler/compiled-query.js +2 -2
- package/dist/esm/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/esm/query-compiler/default-query-compiler.js +37 -2
- package/dist/esm/query-compiler/query-compiler.d.ts +1 -1
- package/dist/esm/query-creator.d.ts +4 -2
- package/dist/esm/schema/alter-column-builder.d.ts +11 -5
- package/dist/esm/schema/alter-column-builder.js +19 -21
- package/dist/esm/schema/alter-table-builder.d.ts +0 -4
- package/dist/esm/schema/alter-table-builder.js +2 -9
- package/dist/esm/schema/column-definition-builder.d.ts +1 -1
- package/dist/esm/schema/column-definition-builder.js +1 -2
- package/dist/esm/schema/create-index-builder.js +2 -2
- package/dist/esm/schema/create-table-builder.d.ts +2 -6
- package/dist/esm/schema/create-table-builder.js +0 -6
- package/dist/esm/schema/schema.d.ts +1 -2
- package/dist/esm/schema/schema.js +1 -2
- package/dist/esm/util/column-type.d.ts +22 -18
- package/dist/esm/util/explainable.d.ts +1 -1
- package/dist/esm/util/infer-result.d.ts +2 -2
- package/dist/esm/util/log.d.ts +4 -4
- package/dist/esm/util/require-all-props.d.ts +1 -1
- package/dist/esm/util/type-utils.d.ts +19 -19
- package/package.json +25 -23
- package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-having-expression-builder.js +0 -2
- package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-on-expression-builder.js +0 -2
- package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-where-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-having-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-on-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-where-expression-builder.js +0 -2
|
@@ -15,7 +15,7 @@ import { ReturningRow } from '../parser/returning-parser.js';
|
|
|
15
15
|
import { NoResultErrorConstructor } from './no-result-error.js';
|
|
16
16
|
import { ExpressionOrFactory } from '../parser/expression-parser.js';
|
|
17
17
|
import { ReturningInterface } from './returning-interface.js';
|
|
18
|
-
import { OnConflictBuilder, OnConflictDoNothingBuilder, OnConflictUpdateBuilder } from './on-conflict-builder.js';
|
|
18
|
+
import { OnConflictBuilder, OnConflictDatabase, OnConflictDoNothingBuilder, OnConflictTables, OnConflictUpdateBuilder } from './on-conflict-builder.js';
|
|
19
19
|
import { Selectable } from '../util/column-type.js';
|
|
20
20
|
import { Explainable, ExplainFormat } from '../util/explainable.js';
|
|
21
21
|
import { Expression } from '../expression/expression.js';
|
|
@@ -46,23 +46,31 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
|
|
|
46
46
|
*
|
|
47
47
|
* ### Examples
|
|
48
48
|
*
|
|
49
|
-
*
|
|
49
|
+
* <!-- siteExample("insert", "Single row", 10) -->
|
|
50
|
+
*
|
|
51
|
+
* Insert a single row:
|
|
52
|
+
*
|
|
50
53
|
* ```ts
|
|
51
54
|
* const result = await db
|
|
52
55
|
* .insertInto('person')
|
|
53
56
|
* .values({
|
|
54
57
|
* first_name: 'Jennifer',
|
|
55
|
-
* last_name: 'Aniston'
|
|
58
|
+
* last_name: 'Aniston',
|
|
59
|
+
* age: 40
|
|
56
60
|
* })
|
|
57
|
-
* .
|
|
61
|
+
* .executeTakeFirst()
|
|
62
|
+
*
|
|
63
|
+
* console.log(result.insertId)
|
|
58
64
|
* ```
|
|
59
65
|
*
|
|
60
66
|
* The generated SQL (PostgreSQL):
|
|
61
67
|
*
|
|
62
68
|
* ```sql
|
|
63
|
-
* insert into "person" ("first_name", "last_name") values ($1, $2)
|
|
69
|
+
* insert into "person" ("first_name", "last_name", "age") values ($1, $2, $3)
|
|
64
70
|
* ```
|
|
65
71
|
*
|
|
72
|
+
* <!-- siteExample("insert", "Multiple rows", 20) -->
|
|
73
|
+
*
|
|
66
74
|
* On dialects that support it (for example PostgreSQL) you can insert multiple
|
|
67
75
|
* rows by providing an array. Note that the return value is once again very
|
|
68
76
|
* dialect-specific. Some databases may only return the id of the *last* inserted
|
|
@@ -73,10 +81,12 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
|
|
|
73
81
|
* .insertInto('person')
|
|
74
82
|
* .values([{
|
|
75
83
|
* first_name: 'Jennifer',
|
|
76
|
-
* last_name: 'Aniston'
|
|
84
|
+
* last_name: 'Aniston',
|
|
85
|
+
* age: 40,
|
|
77
86
|
* }, {
|
|
78
87
|
* first_name: 'Arnold',
|
|
79
88
|
* last_name: 'Schwarzenegger',
|
|
89
|
+
* age: 70,
|
|
80
90
|
* }])
|
|
81
91
|
* .execute()
|
|
82
92
|
* ```
|
|
@@ -84,56 +94,61 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
|
|
|
84
94
|
* The generated SQL (PostgreSQL):
|
|
85
95
|
*
|
|
86
96
|
* ```sql
|
|
87
|
-
* insert into "person" ("first_name", "last_name") values (($1, $2), ($
|
|
97
|
+
* insert into "person" ("first_name", "last_name", "age") values (($1, $2, $3), ($4, $5, $6))
|
|
88
98
|
* ```
|
|
89
99
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
100
|
+
* <!-- siteExample("insert", "Returning data", 30) -->
|
|
101
|
+
*
|
|
102
|
+
* On supported dialects like PostgreSQL you need to chain `returning` to the query to get
|
|
103
|
+
* the inserted row's columns (or any other expression) as the return value. `returning`
|
|
104
|
+
* works just like `select`. Refer to `select` method's examples and documentation for
|
|
105
|
+
* more info.
|
|
93
106
|
*
|
|
94
107
|
* ```ts
|
|
95
|
-
* const
|
|
108
|
+
* const result = await db
|
|
96
109
|
* .insertInto('person')
|
|
97
110
|
* .values({
|
|
98
111
|
* first_name: 'Jennifer',
|
|
99
|
-
* last_name: 'Aniston'
|
|
112
|
+
* last_name: 'Aniston',
|
|
113
|
+
* age: 40,
|
|
100
114
|
* })
|
|
101
|
-
* .returning('id')
|
|
115
|
+
* .returning(['id', 'first_name as name'])
|
|
102
116
|
* .executeTakeFirstOrThrow()
|
|
103
|
-
*
|
|
104
|
-
* row.id
|
|
105
117
|
* ```
|
|
106
118
|
*
|
|
107
119
|
* The generated SQL (PostgreSQL):
|
|
108
120
|
*
|
|
109
121
|
* ```sql
|
|
110
|
-
* insert into "person" ("first_name", "last_name") values ($1, $2) returning "id"
|
|
122
|
+
* insert into "person" ("first_name", "last_name", "age") values ($1, $2, $3) returning "id", "first_name" as "name"
|
|
111
123
|
* ```
|
|
112
124
|
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
125
|
+
* <!-- siteExample("insert", "Complex values", 40) -->
|
|
126
|
+
*
|
|
127
|
+
* In addition to primitives, the values can also be arbitrary expressions.
|
|
128
|
+
* You can build the expressions by using a callback and calling the methods
|
|
129
|
+
* on the expression builder passed to it:
|
|
115
130
|
*
|
|
116
131
|
* ```ts
|
|
117
132
|
* import { sql } from 'kysely'
|
|
118
133
|
*
|
|
119
134
|
* const result = await db
|
|
120
135
|
* .insertInto('person')
|
|
121
|
-
* .values((
|
|
136
|
+
* .values(({ ref, selectFrom, fn }) => ({
|
|
122
137
|
* first_name: 'Jennifer',
|
|
123
138
|
* last_name: sql`${'Ani'} || ${'ston'}`,
|
|
124
|
-
* middle_name:
|
|
125
|
-
* age:
|
|
139
|
+
* middle_name: ref('first_name'),
|
|
140
|
+
* age: selectFrom('person')
|
|
141
|
+
* .select(fn.avg<number>('age')
|
|
142
|
+
* .as('avg_age')),
|
|
126
143
|
* }))
|
|
127
144
|
* .executeTakeFirst()
|
|
128
|
-
*
|
|
129
|
-
* console.log(result.insertId)
|
|
130
145
|
* ```
|
|
131
146
|
*
|
|
132
147
|
* The generated SQL (PostgreSQL):
|
|
133
148
|
*
|
|
134
149
|
* ```sql
|
|
135
150
|
* insert into "person" ("first_name", "last_name", "age")
|
|
136
|
-
* values ($1, $2 || $3, (select avg(age) from "person"))
|
|
151
|
+
* values ($1, $2 || $3, (select avg("age") as "avg_age" from "person"))
|
|
137
152
|
* ```
|
|
138
153
|
*
|
|
139
154
|
* You can also use the callback version of subqueries or raw expressions:
|
|
@@ -181,17 +196,29 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
|
|
|
181
196
|
*
|
|
182
197
|
* ### Examples
|
|
183
198
|
*
|
|
199
|
+
* <!-- siteExample("insert", "Insert subquery", 50) -->
|
|
200
|
+
*
|
|
201
|
+
* You can create an `INSERT INTO SELECT FROM` query using the `expression` method:
|
|
202
|
+
*
|
|
184
203
|
* ```ts
|
|
185
|
-
* db.insertInto('person')
|
|
186
|
-
* .columns(['first_name'])
|
|
187
|
-
* .expression((eb) => eb
|
|
204
|
+
* const result = await db.insertInto('person')
|
|
205
|
+
* .columns(['first_name', 'last_name', 'age'])
|
|
206
|
+
* .expression((eb) => eb
|
|
207
|
+
* .selectFrom('pet')
|
|
208
|
+
* .select((eb) => [
|
|
209
|
+
* 'pet.name',
|
|
210
|
+
* eb.val('Petson').as('last_name'),
|
|
211
|
+
* eb.val(7).as('age'),
|
|
212
|
+
* ])
|
|
213
|
+
* )
|
|
214
|
+
* .execute()
|
|
188
215
|
* ```
|
|
189
216
|
*
|
|
190
217
|
* The generated SQL (PostgreSQL):
|
|
191
218
|
*
|
|
192
219
|
* ```sql
|
|
193
|
-
* insert into "person" ("first_name")
|
|
194
|
-
* select "pet"."name" from "pet"
|
|
220
|
+
* insert into "person" ("first_name", "last_name", "age")
|
|
221
|
+
* select "pet"."name", $1 as "first_name", $2 as "last_name" from "pet"
|
|
195
222
|
* ```
|
|
196
223
|
*/
|
|
197
224
|
expression(expression: ExpressionOrFactory<DB, TB, any>): InsertQueryBuilder<DB, TB, O>;
|
|
@@ -368,7 +395,7 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
|
|
|
368
395
|
* )
|
|
369
396
|
* ```
|
|
370
397
|
*/
|
|
371
|
-
onConflict(callback: (builder: OnConflictBuilder<DB, TB>) =>
|
|
398
|
+
onConflict(callback: (builder: OnConflictBuilder<DB, TB>) => OnConflictUpdateBuilder<OnConflictDatabase<DB, TB>, OnConflictTables<TB>> | OnConflictDoNothingBuilder<DB, TB>): InsertQueryBuilder<DB, TB, O>;
|
|
372
399
|
/**
|
|
373
400
|
* Adds `on duplicate key update` to the query.
|
|
374
401
|
*
|
|
@@ -439,7 +466,7 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
|
|
|
439
466
|
* first_name: 'Jennifer',
|
|
440
467
|
* last_name: 'Aniston'
|
|
441
468
|
* })
|
|
442
|
-
* .returning(eb => [
|
|
469
|
+
* .returning((eb) => [
|
|
443
470
|
* 'id as id',
|
|
444
471
|
* sql<string>`concat(first_name, ' ', last_name)`.as('full_name'),
|
|
445
472
|
* eb.selectFrom('pets').select('pet.id').limit(1).as('first_pet_id')
|
|
@@ -477,10 +504,6 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
|
|
|
477
504
|
* ```
|
|
478
505
|
*/
|
|
479
506
|
$call<T>(func: (qb: this) => T): T;
|
|
480
|
-
/**
|
|
481
|
-
* @deprecated Use `$call` instead
|
|
482
|
-
*/
|
|
483
|
-
call<T>(func: (qb: this) => T): T;
|
|
484
507
|
/**
|
|
485
508
|
* Call `func(this)` if `condition` is true.
|
|
486
509
|
*
|
|
@@ -516,11 +539,7 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
|
|
|
516
539
|
* }
|
|
517
540
|
* ```
|
|
518
541
|
*/
|
|
519
|
-
$if<O2>(condition: boolean, func: (qb: this) => InsertQueryBuilder<
|
|
520
|
-
/**
|
|
521
|
-
* @deprecated Use `$if` instead
|
|
522
|
-
*/
|
|
523
|
-
if<O2>(condition: boolean, func: (qb: this) => InsertQueryBuilder<DB, TB, O2>): O2 extends InsertResult ? InsertQueryBuilder<DB, TB, InsertResult> : O2 extends O & infer E ? InsertQueryBuilder<DB, TB, O & Partial<E>> : InsertQueryBuilder<DB, TB, Partial<O2>>;
|
|
542
|
+
$if<O2>(condition: boolean, func: (qb: this) => InsertQueryBuilder<any, any, O2>): O2 extends InsertResult ? InsertQueryBuilder<DB, TB, InsertResult> : O2 extends O & infer E ? InsertQueryBuilder<DB, TB, O & Partial<E>> : InsertQueryBuilder<DB, TB, Partial<O2>>;
|
|
524
543
|
/**
|
|
525
544
|
* Change the output type of the query.
|
|
526
545
|
*
|
|
@@ -528,10 +547,6 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
|
|
|
528
547
|
* don't support your use case.
|
|
529
548
|
*/
|
|
530
549
|
$castTo<T>(): InsertQueryBuilder<DB, TB, T>;
|
|
531
|
-
/**
|
|
532
|
-
* @deprecated Use `$castTo` instead.
|
|
533
|
-
*/
|
|
534
|
-
castTo<T>(): InsertQueryBuilder<DB, TB, T>;
|
|
535
550
|
/**
|
|
536
551
|
* Narrows (parts of) the output type of the query.
|
|
537
552
|
*
|
|
@@ -615,10 +630,6 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
|
|
|
615
630
|
* ```
|
|
616
631
|
*/
|
|
617
632
|
$assertType<T extends O>(): O extends T ? InsertQueryBuilder<DB, TB, T> : KyselyTypeError<`$assertType() call failed: The type passed in is not equal to the output type of the query.`>;
|
|
618
|
-
/**
|
|
619
|
-
* @deprecated Use `$assertType` instead.
|
|
620
|
-
*/
|
|
621
|
-
assertType<T extends O>(): O extends T ? InsertQueryBuilder<DB, TB, T> : KyselyTypeError<`assertType() call failed: The type passed in is not equal to the output type of the query.`>;
|
|
622
633
|
/**
|
|
623
634
|
* Returns a copy of this InsertQueryBuilder instance with the given plugin installed.
|
|
624
635
|
*/
|
|
@@ -63,17 +63,29 @@ export class InsertQueryBuilder {
|
|
|
63
63
|
*
|
|
64
64
|
* ### Examples
|
|
65
65
|
*
|
|
66
|
+
* <!-- siteExample("insert", "Insert subquery", 50) -->
|
|
67
|
+
*
|
|
68
|
+
* You can create an `INSERT INTO SELECT FROM` query using the `expression` method:
|
|
69
|
+
*
|
|
66
70
|
* ```ts
|
|
67
|
-
* db.insertInto('person')
|
|
68
|
-
* .columns(['first_name'])
|
|
69
|
-
* .expression((eb) => eb
|
|
71
|
+
* const result = await db.insertInto('person')
|
|
72
|
+
* .columns(['first_name', 'last_name', 'age'])
|
|
73
|
+
* .expression((eb) => eb
|
|
74
|
+
* .selectFrom('pet')
|
|
75
|
+
* .select((eb) => [
|
|
76
|
+
* 'pet.name',
|
|
77
|
+
* eb.val('Petson').as('last_name'),
|
|
78
|
+
* eb.val(7).as('age'),
|
|
79
|
+
* ])
|
|
80
|
+
* )
|
|
81
|
+
* .execute()
|
|
70
82
|
* ```
|
|
71
83
|
*
|
|
72
84
|
* The generated SQL (PostgreSQL):
|
|
73
85
|
*
|
|
74
86
|
* ```sql
|
|
75
|
-
* insert into "person" ("first_name")
|
|
76
|
-
* select "pet"."name" from "pet"
|
|
87
|
+
* insert into "person" ("first_name", "last_name", "age")
|
|
88
|
+
* select "pet"."name", $1 as "first_name", $2 as "last_name" from "pet"
|
|
77
89
|
* ```
|
|
78
90
|
*/
|
|
79
91
|
expression(expression) {
|
|
@@ -338,12 +350,6 @@ export class InsertQueryBuilder {
|
|
|
338
350
|
$call(func) {
|
|
339
351
|
return func(this);
|
|
340
352
|
}
|
|
341
|
-
/**
|
|
342
|
-
* @deprecated Use `$call` instead
|
|
343
|
-
*/
|
|
344
|
-
call(func) {
|
|
345
|
-
return this.$call(func);
|
|
346
|
-
}
|
|
347
353
|
/**
|
|
348
354
|
* Call `func(this)` if `condition` is true.
|
|
349
355
|
*
|
|
@@ -387,17 +393,6 @@ export class InsertQueryBuilder {
|
|
|
387
393
|
...this.#props,
|
|
388
394
|
});
|
|
389
395
|
}
|
|
390
|
-
/**
|
|
391
|
-
* @deprecated Use `$if` instead
|
|
392
|
-
*/
|
|
393
|
-
if(condition, func) {
|
|
394
|
-
if (condition) {
|
|
395
|
-
return func(this);
|
|
396
|
-
}
|
|
397
|
-
return new InsertQueryBuilder({
|
|
398
|
-
...this.#props,
|
|
399
|
-
});
|
|
400
|
-
}
|
|
401
396
|
/**
|
|
402
397
|
* Change the output type of the query.
|
|
403
398
|
*
|
|
@@ -407,12 +402,6 @@ export class InsertQueryBuilder {
|
|
|
407
402
|
$castTo() {
|
|
408
403
|
return new InsertQueryBuilder(this.#props);
|
|
409
404
|
}
|
|
410
|
-
/**
|
|
411
|
-
* @deprecated Use `$castTo` instead.
|
|
412
|
-
*/
|
|
413
|
-
castTo() {
|
|
414
|
-
return this.$castTo();
|
|
415
|
-
}
|
|
416
405
|
/**
|
|
417
406
|
* Narrows (parts of) the output type of the query.
|
|
418
407
|
*
|
|
@@ -500,12 +489,6 @@ export class InsertQueryBuilder {
|
|
|
500
489
|
$assertType() {
|
|
501
490
|
return new InsertQueryBuilder(this.#props);
|
|
502
491
|
}
|
|
503
|
-
/**
|
|
504
|
-
* @deprecated Use `$assertType` instead.
|
|
505
|
-
*/
|
|
506
|
-
assertType() {
|
|
507
|
-
return new InsertQueryBuilder(this.#props);
|
|
508
|
-
}
|
|
509
492
|
/**
|
|
510
493
|
* Returns a copy of this InsertQueryBuilder instance with the given plugin installed.
|
|
511
494
|
*/
|
|
@@ -22,14 +22,13 @@
|
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
export declare class InsertResult {
|
|
25
|
-
#private;
|
|
26
|
-
constructor(insertId: bigint | undefined, numInsertedOrUpdatedRows: bigint | undefined);
|
|
27
25
|
/**
|
|
28
26
|
* The auto incrementing primary key
|
|
29
27
|
*/
|
|
30
|
-
|
|
28
|
+
readonly insertId: bigint | undefined;
|
|
31
29
|
/**
|
|
32
30
|
* Affected rows count.
|
|
33
31
|
*/
|
|
34
|
-
|
|
32
|
+
readonly numInsertedOrUpdatedRows: bigint | undefined;
|
|
33
|
+
constructor(insertId: bigint | undefined, numInsertedOrUpdatedRows: bigint | undefined);
|
|
35
34
|
}
|
|
@@ -23,25 +23,16 @@
|
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
25
|
export class InsertResult {
|
|
26
|
-
#insertId;
|
|
27
|
-
#numInsertedOrUpdatedRows;
|
|
28
|
-
constructor(insertId, numInsertedOrUpdatedRows) {
|
|
29
|
-
this.#insertId = insertId;
|
|
30
|
-
this.#numInsertedOrUpdatedRows = numInsertedOrUpdatedRows;
|
|
31
|
-
}
|
|
32
26
|
/**
|
|
33
27
|
* The auto incrementing primary key
|
|
34
28
|
*/
|
|
35
|
-
|
|
36
|
-
return this.#insertId;
|
|
37
|
-
}
|
|
29
|
+
insertId;
|
|
38
30
|
/**
|
|
39
31
|
* Affected rows count.
|
|
40
32
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
numInsertedOrUpdatedRows;
|
|
34
|
+
constructor(insertId, numInsertedOrUpdatedRows) {
|
|
35
|
+
this.insertId = insertId;
|
|
36
|
+
this.numInsertedOrUpdatedRows = numInsertedOrUpdatedRows;
|
|
43
37
|
}
|
|
44
38
|
}
|
|
45
|
-
for (const property of ['insertId', 'numInsertedOrUpdatedRows']) {
|
|
46
|
-
Object.defineProperty(InsertResult.prototype, property, { enumerable: true });
|
|
47
|
-
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
+
import { ExpressionBuilder } from '../expression/expression-builder.js';
|
|
1
2
|
import { Expression } from '../expression/expression.js';
|
|
2
3
|
import { JoinNode } from '../operation-node/join-node.js';
|
|
3
4
|
import { OperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
4
5
|
import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
|
|
5
6
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
6
|
-
import { ExistsExpression } from '../parser/unary-operation-parser.js';
|
|
7
7
|
import { SqlBool } from '../util/type-utils.js';
|
|
8
|
-
import { OnExpressionBuilder } from './deprecated-on-expression-builder.js';
|
|
9
8
|
export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNodeSource {
|
|
10
9
|
#private;
|
|
11
10
|
constructor(props: JoinBuilderProps);
|
|
@@ -18,18 +17,6 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
|
|
|
18
17
|
on<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
|
|
19
18
|
on(factory: OnExpressionFactory<DB, TB>): JoinBuilder<DB, TB>;
|
|
20
19
|
on(expression: Expression<any>): JoinBuilder<DB, TB>;
|
|
21
|
-
/**
|
|
22
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
23
|
-
*/
|
|
24
|
-
orOn<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
|
|
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
|
-
*/
|
|
32
|
-
orOn(expression: Expression<any>): JoinBuilder<DB, TB>;
|
|
33
20
|
/**
|
|
34
21
|
* Just like {@link WhereInterface.whereRef} but adds an item to the join's
|
|
35
22
|
* `on` clause instead.
|
|
@@ -37,26 +24,6 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
|
|
|
37
24
|
* See {@link WhereInterface.whereRef} for documentation and examples.
|
|
38
25
|
*/
|
|
39
26
|
onRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
40
|
-
/**
|
|
41
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
42
|
-
*/
|
|
43
|
-
orOnRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
44
|
-
/**
|
|
45
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
46
|
-
*/
|
|
47
|
-
onExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
48
|
-
/**
|
|
49
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
50
|
-
*/
|
|
51
|
-
onNotExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
52
|
-
/**
|
|
53
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
54
|
-
*/
|
|
55
|
-
orOnExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
56
|
-
/**
|
|
57
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
58
|
-
*/
|
|
59
|
-
orOnNotExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
60
27
|
/**
|
|
61
28
|
* Adds `on true`.
|
|
62
29
|
*/
|
|
@@ -71,5 +38,5 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
|
|
|
71
38
|
export interface JoinBuilderProps {
|
|
72
39
|
readonly joinNode: JoinNode;
|
|
73
40
|
}
|
|
74
|
-
|
|
41
|
+
type OnExpressionFactory<DB, TB extends keyof DB> = (eb: ExpressionBuilder<DB, TB>) => Expression<SqlBool>;
|
|
75
42
|
export {};
|
|
@@ -1,8 +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 {
|
|
5
|
-
import { parseExists, parseNotExists, } from '../parser/unary-operation-parser.js';
|
|
4
|
+
import { parseFilter, parseReferentialComparison, } from '../parser/binary-operation-parser.js';
|
|
6
5
|
import { freeze } from '../util/object-utils.js';
|
|
7
6
|
import { preventAwait } from '../util/prevent-await.js';
|
|
8
7
|
export class JoinBuilder {
|
|
@@ -13,16 +12,7 @@ export class JoinBuilder {
|
|
|
13
12
|
on(...args) {
|
|
14
13
|
return new JoinBuilder({
|
|
15
14
|
...this.#props,
|
|
16
|
-
joinNode: JoinNode.cloneWithOn(this.#props.joinNode,
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
21
|
-
*/
|
|
22
|
-
orOn(...args) {
|
|
23
|
-
return new JoinBuilder({
|
|
24
|
-
...this.#props,
|
|
25
|
-
joinNode: JoinNode.cloneWithOrOn(this.#props.joinNode, parseOn(args)),
|
|
15
|
+
joinNode: JoinNode.cloneWithOn(this.#props.joinNode, parseFilter(args)),
|
|
26
16
|
});
|
|
27
17
|
}
|
|
28
18
|
/**
|
|
@@ -37,51 +27,6 @@ export class JoinBuilder {
|
|
|
37
27
|
joinNode: JoinNode.cloneWithOn(this.#props.joinNode, parseReferentialComparison(lhs, op, rhs)),
|
|
38
28
|
});
|
|
39
29
|
}
|
|
40
|
-
/**
|
|
41
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
42
|
-
*/
|
|
43
|
-
orOnRef(lhs, op, rhs) {
|
|
44
|
-
return new JoinBuilder({
|
|
45
|
-
...this.#props,
|
|
46
|
-
joinNode: JoinNode.cloneWithOrOn(this.#props.joinNode, parseReferentialComparison(lhs, op, rhs)),
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
51
|
-
*/
|
|
52
|
-
onExists(arg) {
|
|
53
|
-
return new JoinBuilder({
|
|
54
|
-
...this.#props,
|
|
55
|
-
joinNode: JoinNode.cloneWithOn(this.#props.joinNode, parseExists(arg)),
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
60
|
-
*/
|
|
61
|
-
onNotExists(arg) {
|
|
62
|
-
return new JoinBuilder({
|
|
63
|
-
...this.#props,
|
|
64
|
-
joinNode: JoinNode.cloneWithOn(this.#props.joinNode, parseNotExists(arg)),
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
69
|
-
*/
|
|
70
|
-
orOnExists(arg) {
|
|
71
|
-
return new JoinBuilder({
|
|
72
|
-
...this.#props,
|
|
73
|
-
joinNode: JoinNode.cloneWithOrOn(this.#props.joinNode, parseExists(arg)),
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
78
|
-
*/
|
|
79
|
-
orOnNotExists(arg) {
|
|
80
|
-
return new JoinBuilder({
|
|
81
|
-
...this.#props,
|
|
82
|
-
joinNode: JoinNode.cloneWithOrOn(this.#props.joinNode, parseNotExists(arg)),
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
30
|
/**
|
|
86
31
|
* Adds `on true`.
|
|
87
32
|
*/
|