kysely 0.16.2 → 0.16.3
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/dist/cjs/query-builder/expression-builder.d.ts +42 -0
- package/dist/cjs/query-builder/expression-builder.js +48 -0
- package/dist/cjs/query-builder/insert-query-builder.d.ts +16 -0
- package/dist/cjs/query-builder/insert-query-builder.js +16 -0
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +5 -3
- package/dist/cjs/query-creator.d.ts +1 -1
- package/dist/esm/dialect/database-introspector.js +1 -0
- package/dist/esm/dialect/dialect-adapter-base.js +1 -0
- package/dist/esm/dialect/dialect-adapter.js +1 -0
- package/dist/esm/dialect/dialect.js +1 -0
- package/dist/esm/dialect/mysql/mysql-adapter.js +1 -0
- package/dist/esm/dialect/mysql/mysql-dialect.js +1 -0
- package/dist/esm/dialect/mysql/mysql-driver.js +1 -0
- package/dist/esm/dialect/mysql/mysql-introspector.js +1 -0
- package/dist/esm/dialect/mysql/mysql-query-compiler.js +1 -0
- package/dist/esm/dialect/postgres/postgres-adapter.js +1 -0
- package/dist/esm/dialect/postgres/postgres-dialect.js +1 -0
- package/dist/esm/dialect/postgres/postgres-driver.js +1 -0
- package/dist/esm/dialect/postgres/postgres-introspector.js +1 -0
- package/dist/esm/dialect/postgres/postgres-query-compiler.js +1 -0
- package/dist/esm/dialect/sqlite/sqlite-adapter.js +1 -0
- package/dist/esm/dialect/sqlite/sqlite-dialect.js +1 -0
- package/dist/esm/dialect/sqlite/sqlite-driver.js +1 -0
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -0
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +1 -0
- package/dist/esm/driver/connection-provider.js +1 -0
- package/dist/esm/driver/database-connection.js +1 -0
- package/dist/esm/driver/default-connection-provider.js +1 -0
- package/dist/esm/driver/driver.js +1 -0
- package/dist/esm/driver/runtime-driver.js +1 -0
- package/dist/esm/driver/single-connection-provider.js +1 -0
- package/dist/esm/dynamic/dynamic-reference-builder.js +1 -0
- package/dist/esm/dynamic/dynamic.js +1 -0
- package/dist/esm/index-nodeless.js +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/kysely.js +1 -0
- package/dist/esm/migration/file-migration-provider.js +1 -0
- package/dist/esm/migration/migrator.js +1 -0
- package/dist/esm/operation-node/add-column-node.js +1 -0
- package/dist/esm/operation-node/add-constraint-node.js +1 -0
- package/dist/esm/operation-node/alias-node.js +1 -0
- package/dist/esm/operation-node/alter-column-node.js +1 -0
- package/dist/esm/operation-node/alter-table-node.js +1 -0
- package/dist/esm/operation-node/and-node.js +1 -0
- package/dist/esm/operation-node/check-constraint-node.js +1 -0
- package/dist/esm/operation-node/column-definition-node.js +1 -0
- package/dist/esm/operation-node/column-node.js +1 -0
- package/dist/esm/operation-node/column-update-node.js +1 -0
- package/dist/esm/operation-node/common-table-expression-name-node.js +1 -0
- package/dist/esm/operation-node/common-table-expression-node.js +1 -0
- package/dist/esm/operation-node/constraint-node.js +1 -0
- package/dist/esm/operation-node/create-index-node.js +1 -0
- package/dist/esm/operation-node/create-schema-node.js +1 -0
- package/dist/esm/operation-node/create-table-node.js +1 -0
- package/dist/esm/operation-node/create-view-node.js +1 -0
- package/dist/esm/operation-node/data-type-node.js +1 -0
- package/dist/esm/operation-node/default-value-node.js +1 -0
- package/dist/esm/operation-node/delete-query-node.js +1 -0
- package/dist/esm/operation-node/drop-column-node.js +1 -0
- package/dist/esm/operation-node/drop-constraint-node.js +1 -0
- package/dist/esm/operation-node/drop-index-node.js +1 -0
- package/dist/esm/operation-node/drop-schema-node.js +1 -0
- package/dist/esm/operation-node/drop-table-node.js +1 -0
- package/dist/esm/operation-node/drop-view-node.js +1 -0
- package/dist/esm/operation-node/filter-node.js +1 -0
- package/dist/esm/operation-node/foreign-key-constraint-node.js +1 -0
- package/dist/esm/operation-node/from-node.js +1 -0
- package/dist/esm/operation-node/generated-node.js +1 -0
- package/dist/esm/operation-node/group-by-item-node.js +1 -0
- package/dist/esm/operation-node/group-by-node.js +1 -0
- package/dist/esm/operation-node/having-node.js +1 -0
- package/dist/esm/operation-node/identifier-node.js +1 -0
- package/dist/esm/operation-node/insert-query-node.js +1 -0
- package/dist/esm/operation-node/join-node.js +1 -0
- package/dist/esm/operation-node/limit-node.js +1 -0
- package/dist/esm/operation-node/list-node.js +1 -0
- package/dist/esm/operation-node/modify-column-node.js +1 -0
- package/dist/esm/operation-node/offset-node.js +1 -0
- package/dist/esm/operation-node/on-conflict-node.js +1 -0
- package/dist/esm/operation-node/on-duplicate-key-node.js +1 -0
- package/dist/esm/operation-node/on-node.js +1 -0
- package/dist/esm/operation-node/operation-node-source.js +1 -0
- package/dist/esm/operation-node/operation-node-transformer.js +1 -0
- package/dist/esm/operation-node/operation-node-utils.js +1 -0
- package/dist/esm/operation-node/operation-node-visitor.js +1 -0
- package/dist/esm/operation-node/operation-node.js +1 -0
- package/dist/esm/operation-node/operator-node.js +1 -0
- package/dist/esm/operation-node/or-node.js +1 -0
- package/dist/esm/operation-node/order-by-item-node.js +1 -0
- package/dist/esm/operation-node/order-by-node.js +1 -0
- package/dist/esm/operation-node/parens-node.js +1 -0
- package/dist/esm/operation-node/primary-constraint-node.js +1 -0
- package/dist/esm/operation-node/primitive-value-list-node.js +1 -0
- package/dist/esm/operation-node/query-node.js +1 -0
- package/dist/esm/operation-node/raw-node.js +1 -0
- package/dist/esm/operation-node/reference-node.js +1 -0
- package/dist/esm/operation-node/references-node.js +1 -0
- package/dist/esm/operation-node/rename-column-node.js +1 -0
- package/dist/esm/operation-node/returning-node.js +1 -0
- package/dist/esm/operation-node/select-all-node.js +1 -0
- package/dist/esm/operation-node/select-query-node.js +1 -0
- package/dist/esm/operation-node/selection-node.js +1 -0
- package/dist/esm/operation-node/table-node.js +1 -0
- package/dist/esm/operation-node/union-node.js +1 -0
- package/dist/esm/operation-node/unique-constraint-node.js +1 -0
- package/dist/esm/operation-node/update-query-node.js +1 -0
- package/dist/esm/operation-node/value-list-node.js +1 -0
- package/dist/esm/operation-node/value-node.js +1 -0
- package/dist/esm/operation-node/values-node.js +1 -0
- package/dist/esm/operation-node/where-node.js +1 -0
- package/dist/esm/operation-node/with-node.js +1 -0
- package/dist/esm/parser/complex-expression-parser.js +1 -0
- package/dist/esm/parser/data-type-parser.js +1 -0
- package/dist/esm/parser/default-value-parser.js +1 -0
- package/dist/esm/parser/filter-parser.js +1 -0
- package/dist/esm/parser/group-by-parser.js +1 -0
- package/dist/esm/parser/insert-values-parser.js +1 -0
- package/dist/esm/parser/join-parser.js +1 -0
- package/dist/esm/parser/order-by-parser.js +1 -0
- package/dist/esm/parser/parse-context.js +1 -0
- package/dist/esm/parser/reference-parser.js +1 -0
- package/dist/esm/parser/returning-parser.js +1 -0
- package/dist/esm/parser/select-parser.js +1 -0
- package/dist/esm/parser/table-parser.js +1 -0
- package/dist/esm/parser/union-parser.js +1 -0
- package/dist/esm/parser/update-set-parser.js +1 -0
- package/dist/esm/parser/value-parser.js +1 -0
- package/dist/esm/parser/with-parser.js +1 -0
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +1 -0
- package/dist/esm/plugin/camel-case/camel-case-transformer.js +1 -0
- package/dist/esm/plugin/camel-case/camel-case.js +1 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.js +1 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.js +1 -0
- package/dist/esm/plugin/kysely-plugin.js +1 -0
- package/dist/esm/plugin/with-schema/with-schema-plugin.js +1 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +1 -0
- package/dist/esm/query-builder/delete-query-builder.js +1 -0
- package/dist/esm/query-builder/delete-result.js +1 -0
- package/dist/esm/query-builder/expression-builder.d.ts +42 -0
- package/dist/esm/query-builder/expression-builder.js +49 -0
- package/dist/esm/query-builder/function-builder.js +1 -0
- package/dist/esm/query-builder/having-interface.js +1 -0
- package/dist/esm/query-builder/insert-query-builder.d.ts +16 -0
- package/dist/esm/query-builder/insert-query-builder.js +17 -0
- package/dist/esm/query-builder/insert-result.js +1 -0
- package/dist/esm/query-builder/join-builder.js +1 -0
- package/dist/esm/query-builder/join-interface.js +1 -0
- package/dist/esm/query-builder/no-result-error.js +1 -0
- package/dist/esm/query-builder/on-conflict-builder.d.ts +5 -3
- package/dist/esm/query-builder/on-conflict-builder.js +1 -0
- package/dist/esm/query-builder/returning-interface.js +1 -0
- package/dist/esm/query-builder/select-query-builder.js +1 -0
- package/dist/esm/query-builder/update-query-builder.js +1 -0
- package/dist/esm/query-builder/update-result.js +1 -0
- package/dist/esm/query-builder/where-interface.js +1 -0
- package/dist/esm/query-compiler/compiled-query.js +1 -0
- package/dist/esm/query-compiler/default-query-compiler.js +1 -0
- package/dist/esm/query-compiler/query-compiler.js +1 -0
- package/dist/esm/query-creator.d.ts +1 -1
- package/dist/esm/query-creator.js +1 -0
- package/dist/esm/query-executor/default-query-executor.js +1 -0
- package/dist/esm/query-executor/noop-query-executor.js +1 -0
- package/dist/esm/query-executor/query-executor.js +1 -0
- package/dist/esm/raw-builder/raw-builder.js +1 -0
- package/dist/esm/schema/alter-table-builder.js +1 -0
- package/dist/esm/schema/column-definition-builder.js +1 -0
- package/dist/esm/schema/create-index-builder.js +1 -0
- package/dist/esm/schema/create-schema-builder.js +1 -0
- package/dist/esm/schema/create-table-builder.js +1 -0
- package/dist/esm/schema/create-view-builder.js +1 -0
- package/dist/esm/schema/drop-index-builder.js +1 -0
- package/dist/esm/schema/drop-schema-builder.js +1 -0
- package/dist/esm/schema/drop-table-builder.js +1 -0
- package/dist/esm/schema/drop-view-builder.js +1 -0
- package/dist/esm/schema/foreign-key-constraint-builder.js +1 -0
- package/dist/esm/schema/schema.js +1 -0
- package/dist/esm/util/assert.js +1 -0
- package/dist/esm/util/column-type.js +1 -0
- package/dist/esm/util/compilable.js +1 -0
- package/dist/esm/util/dynamic-import.js +1 -0
- package/dist/esm/util/log.js +1 -0
- package/dist/esm/util/object-utils.js +1 -0
- package/dist/esm/util/performance-now.js +1 -0
- package/dist/esm/util/prevent-await.js +1 -0
- package/dist/esm/util/private-symbols.js +1 -0
- package/dist/esm/util/query-id.js +1 -0
- package/dist/esm/util/random-string.js +1 -0
- package/dist/esm/util/type-utils.js +1 -0
- package/package.json +3 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="./filter-parser.d.ts" />
|
|
1
2
|
import { FilterNode } from '../operation-node/filter-node.js';
|
|
2
3
|
import { freeze, isBoolean, isFunction, isNull, isString, } from '../util/object-utils.js';
|
|
3
4
|
import { isOperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="./insert-values-parser.d.ts" />
|
|
1
2
|
import { ColumnNode } from '../operation-node/column-node.js';
|
|
2
3
|
import { PrimitiveValueListNode } from '../operation-node/primitive-value-list-node.js';
|
|
3
4
|
import { ValueListNode } from '../operation-node/value-list-node.js';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="./with-parser.d.ts" />
|
|
1
2
|
import { CommonTableExpressionNode } from '../operation-node/common-table-expression-node.js';
|
|
2
3
|
import { CommonTableExpressionNameNode } from '../operation-node/common-table-expression-name-node.js';
|
|
3
4
|
export function parseCommonTableExpression(ctx, name, expression) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="./camel-case-plugin.d.ts" />
|
|
1
2
|
import { isBuffer, isDate, isObject } from '../../util/object-utils.js';
|
|
2
3
|
import { SnakeCaseTransformer } from './camel-case-transformer.js';
|
|
3
4
|
import { createCamelCaseMapper, createSnakeCaseMapper, } from './camel-case.js';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="./with-schema-transformer.d.ts" />
|
|
1
2
|
import { AliasNode } from '../../operation-node/alias-node.js';
|
|
2
3
|
import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
|
|
3
4
|
import { TableNode } from '../../operation-node/table-node.js';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="./delete-query-builder.d.ts" />
|
|
1
2
|
import { parseJoin, } from '../parser/join-parser.js';
|
|
2
3
|
import { parseSelectExpressionOrList, parseSelectAll, } from '../parser/select-parser.js';
|
|
3
4
|
import { parseExistFilter, parseReferenceFilter, parseWhereFilter, parseNotExistFilter, } from '../parser/filter-parser.js';
|
|
@@ -3,6 +3,8 @@ import { TableExpression, TableExpressionDatabase, TableExpressionTables } from
|
|
|
3
3
|
import { NoopQueryExecutor } from '../query-executor/noop-query-executor.js';
|
|
4
4
|
import { ParseContext } from '../parser/parse-context.js';
|
|
5
5
|
import { FunctionBuilder } from './function-builder.js';
|
|
6
|
+
import { RawBuilder } from '../index-nodeless.js';
|
|
7
|
+
import { ExtractTypeFromReferenceExpression, StringReference } from '../parser/reference-parser.js';
|
|
6
8
|
export declare class ExpressionBuilder<DB, TB extends keyof DB> {
|
|
7
9
|
#private;
|
|
8
10
|
constructor(props: ExpressionBuilderProps);
|
|
@@ -44,6 +46,8 @@ export declare class ExpressionBuilder<DB, TB extends keyof DB> {
|
|
|
44
46
|
* The query builder returned by this method is typed in a way that you can refer to
|
|
45
47
|
* all tables of the parent query in addition to the subquery's tables.
|
|
46
48
|
*
|
|
49
|
+
* This method accepts all the same inputs as {@link QueryCreator.selectFrom}.
|
|
50
|
+
*
|
|
47
51
|
* ### Examples
|
|
48
52
|
*
|
|
49
53
|
* This example shows that you can refer to both `pet.owner_id` and `person.id`
|
|
@@ -86,6 +90,44 @@ export declare class ExpressionBuilder<DB, TB extends keyof DB> {
|
|
|
86
90
|
* See {@link QueryCreator.withSchema}
|
|
87
91
|
*/
|
|
88
92
|
withSchema(schema: string): ExpressionBuilder<DB, TB>;
|
|
93
|
+
/**
|
|
94
|
+
* See {@link QueryCreator.raw}.
|
|
95
|
+
*/
|
|
96
|
+
raw<T = unknown>(sql: string, parameters?: unknown[]): RawBuilder<T>;
|
|
97
|
+
/**
|
|
98
|
+
* This can be used to reference columns.
|
|
99
|
+
*
|
|
100
|
+
* ### Examples
|
|
101
|
+
*
|
|
102
|
+
* In the next example we use the `ref` method to reference
|
|
103
|
+
* columns of the virtual table `excluded` in a type-safe way
|
|
104
|
+
* to create an upsert operation:
|
|
105
|
+
*
|
|
106
|
+
* ```ts
|
|
107
|
+
* db.insertInto('person')
|
|
108
|
+
* .values(person)
|
|
109
|
+
* .onConflict(oc => oc
|
|
110
|
+
* .column('id')
|
|
111
|
+
* .doUpdateSet({
|
|
112
|
+
* first_name: (eb) => eb.ref('excluded.first_name'),
|
|
113
|
+
* last_name: (eb) => eb.ref('excluded.last_name')
|
|
114
|
+
* })
|
|
115
|
+
* )
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* In the next example we use `ref` in a raw expression. Unless you
|
|
119
|
+
* want to be as type-safe as possible, this is probably overkill:
|
|
120
|
+
*
|
|
121
|
+
* ```ts
|
|
122
|
+
* db.update('pet').set({
|
|
123
|
+
* name: (eb) => eb.raw('concat(?, ?)', [
|
|
124
|
+
* eb.ref('pet.name'),
|
|
125
|
+
* suffix,
|
|
126
|
+
* ])
|
|
127
|
+
* })
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
ref<RE extends StringReference<DB, TB>>(reference: RE): RawBuilder<ExtractTypeFromReferenceExpression<DB, TB, RE>>;
|
|
89
131
|
}
|
|
90
132
|
export interface ExpressionBuilderProps {
|
|
91
133
|
readonly executor: NoopQueryExecutor;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="./expression-builder.d.ts" />
|
|
1
2
|
import { SelectQueryBuilder } from './select-query-builder.js';
|
|
2
3
|
import { SelectQueryNode } from '../operation-node/select-query-node.js';
|
|
3
4
|
import { parseTableExpressionOrList, } from '../parser/table-parser.js';
|
|
@@ -5,6 +6,7 @@ import { WithSchemaPlugin } from '../plugin/with-schema/with-schema-plugin.js';
|
|
|
5
6
|
import { createQueryId } from '../util/query-id.js';
|
|
6
7
|
import { freeze } from '../util/object-utils.js';
|
|
7
8
|
import { FunctionBuilder } from './function-builder.js';
|
|
9
|
+
import { RawBuilder } from '../index-nodeless.js';
|
|
8
10
|
export class ExpressionBuilder {
|
|
9
11
|
#props;
|
|
10
12
|
constructor(props) {
|
|
@@ -61,4 +63,51 @@ export class ExpressionBuilder {
|
|
|
61
63
|
executor: this.#props.executor.withPluginAtFront(new WithSchemaPlugin(schema)),
|
|
62
64
|
});
|
|
63
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* See {@link QueryCreator.raw}.
|
|
68
|
+
*/
|
|
69
|
+
raw(sql, parameters) {
|
|
70
|
+
return new RawBuilder({
|
|
71
|
+
queryId: createQueryId(),
|
|
72
|
+
executor: this.#props.executor,
|
|
73
|
+
sql,
|
|
74
|
+
parameters,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* This can be used to reference columns.
|
|
79
|
+
*
|
|
80
|
+
* ### Examples
|
|
81
|
+
*
|
|
82
|
+
* In the next example we use the `ref` method to reference
|
|
83
|
+
* columns of the virtual table `excluded` in a type-safe way
|
|
84
|
+
* to create an upsert operation:
|
|
85
|
+
*
|
|
86
|
+
* ```ts
|
|
87
|
+
* db.insertInto('person')
|
|
88
|
+
* .values(person)
|
|
89
|
+
* .onConflict(oc => oc
|
|
90
|
+
* .column('id')
|
|
91
|
+
* .doUpdateSet({
|
|
92
|
+
* first_name: (eb) => eb.ref('excluded.first_name'),
|
|
93
|
+
* last_name: (eb) => eb.ref('excluded.last_name')
|
|
94
|
+
* })
|
|
95
|
+
* )
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* In the next example we use `ref` in a raw expression. Unless you
|
|
99
|
+
* want to be as type-safe as possible, this is probably overkill:
|
|
100
|
+
*
|
|
101
|
+
* ```ts
|
|
102
|
+
* db.update('pet').set({
|
|
103
|
+
* name: (eb) => eb.raw('concat(?, ?)', [
|
|
104
|
+
* eb.ref('pet.name'),
|
|
105
|
+
* suffix,
|
|
106
|
+
* ])
|
|
107
|
+
* })
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
ref(reference) {
|
|
111
|
+
return this.raw('??', [reference]);
|
|
112
|
+
}
|
|
64
113
|
}
|
|
@@ -342,6 +342,22 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
|
|
|
342
342
|
* values ($1, $2)
|
|
343
343
|
* on conflict ("name") do nothing
|
|
344
344
|
* ```
|
|
345
|
+
*
|
|
346
|
+
* You can refer to the columns of the virtual `excluded` table
|
|
347
|
+
* in a type-safe way using a callback and the `ref` method of
|
|
348
|
+
* `ExpressionBuilder`:
|
|
349
|
+
*
|
|
350
|
+
* ```ts
|
|
351
|
+
* db.insertInto('person')
|
|
352
|
+
* .values(person)
|
|
353
|
+
* .onConflict(oc => oc
|
|
354
|
+
* .column('id')
|
|
355
|
+
* .doUpdateSet({
|
|
356
|
+
* first_name: (eb) => eb.ref('excluded.first_name'),
|
|
357
|
+
* last_name: (eb) => eb.ref('excluded.last_name')
|
|
358
|
+
* })
|
|
359
|
+
* )
|
|
360
|
+
* ```
|
|
345
361
|
*/
|
|
346
362
|
onConflict(callback: (builder: OnConflictBuilder<DB, TB>) => OnConflictDoNothingBuilder<DB, TB> | OnConflictUpdateBuilder<DB, TB>): InsertQueryBuilder<DB, TB, O>;
|
|
347
363
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="./insert-query-builder.d.ts" />
|
|
1
2
|
import { parseSelectExpressionOrList, parseSelectAll, } from '../parser/select-parser.js';
|
|
2
3
|
import { parseInsertObjectOrList, } from '../parser/insert-values-parser.js';
|
|
3
4
|
import { InsertQueryNode } from '../operation-node/insert-query-node.js';
|
|
@@ -245,6 +246,22 @@ export class InsertQueryBuilder {
|
|
|
245
246
|
* values ($1, $2)
|
|
246
247
|
* on conflict ("name") do nothing
|
|
247
248
|
* ```
|
|
249
|
+
*
|
|
250
|
+
* You can refer to the columns of the virtual `excluded` table
|
|
251
|
+
* in a type-safe way using a callback and the `ref` method of
|
|
252
|
+
* `ExpressionBuilder`:
|
|
253
|
+
*
|
|
254
|
+
* ```ts
|
|
255
|
+
* db.insertInto('person')
|
|
256
|
+
* .values(person)
|
|
257
|
+
* .onConflict(oc => oc
|
|
258
|
+
* .column('id')
|
|
259
|
+
* .doUpdateSet({
|
|
260
|
+
* first_name: (eb) => eb.ref('excluded.first_name'),
|
|
261
|
+
* last_name: (eb) => eb.ref('excluded.last_name')
|
|
262
|
+
* })
|
|
263
|
+
* )
|
|
264
|
+
* ```
|
|
248
265
|
*/
|
|
249
266
|
onConflict(callback) {
|
|
250
267
|
return new InsertQueryBuilder({
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="./join-builder.d.ts" />
|
|
1
2
|
import { JoinNode } from '../operation-node/join-node.js';
|
|
2
3
|
import { parseExistFilter, parseNotExistFilter, parseOnFilter, parseReferenceFilter, } from '../parser/filter-parser.js';
|
|
3
4
|
import { freeze } from '../util/object-utils.js';
|