kysely 0.27.3 → 0.27.4
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/CONTRIBUTING.md +1 -1
- package/README.md +7 -7
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +2 -1
- package/dist/cjs/dialect/dialect-adapter-base.js +4 -1
- package/dist/cjs/dialect/dialect-adapter.d.ts +5 -0
- package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +1 -5
- package/dist/cjs/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +46 -26
- package/dist/cjs/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/cjs/dialect/mssql/mssql-driver.js +95 -36
- package/dist/cjs/dialect/postgres/postgres-introspector.js +1 -1
- package/dist/cjs/driver/database-connection.d.ts +3 -1
- package/dist/cjs/dynamic/dynamic-reference-builder.js +2 -2
- package/dist/cjs/dynamic/dynamic.d.ts +1 -1
- package/dist/cjs/dynamic/dynamic.js +1 -1
- package/dist/cjs/expression/expression-builder.d.ts +2 -2
- package/dist/cjs/expression/expression-builder.js +2 -3
- package/dist/cjs/expression/expression.js +2 -3
- package/dist/cjs/helpers/mssql.js +3 -4
- package/dist/cjs/helpers/mysql.d.ts +3 -3
- package/dist/cjs/helpers/mysql.js +6 -7
- package/dist/cjs/helpers/postgres.d.ts +4 -4
- package/dist/cjs/helpers/postgres.js +7 -8
- package/dist/cjs/helpers/sqlite.js +3 -4
- package/dist/cjs/index.d.ts +28 -21
- package/dist/cjs/index.js +28 -21
- package/dist/cjs/kysely.d.ts +1 -1
- package/dist/cjs/kysely.js +3 -3
- package/dist/cjs/operation-node/alter-column-node.d.ts +1 -1
- package/dist/cjs/operation-node/case-node.d.ts +1 -1
- package/dist/cjs/operation-node/column-definition-node.d.ts +1 -0
- package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
- package/dist/cjs/operation-node/data-type-node.js +5 -3
- package/dist/cjs/operation-node/delete-query-node.d.ts +2 -0
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -4
- package/dist/cjs/operation-node/having-node.d.ts +1 -1
- package/dist/cjs/operation-node/insert-query-node.d.ts +2 -0
- package/dist/cjs/operation-node/merge-query-node.d.ts +2 -0
- package/dist/cjs/operation-node/on-node.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-source.js +1 -2
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +12 -0
- 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 +3 -3
- package/dist/cjs/operation-node/operator-node.js +8 -6
- package/dist/cjs/operation-node/output-node.d.ts +13 -0
- package/dist/cjs/operation-node/output-node.js +26 -0
- package/dist/cjs/operation-node/query-node.d.ts +11 -6
- package/dist/cjs/operation-node/query-node.js +9 -0
- package/dist/cjs/operation-node/select-query-node.d.ts +1 -0
- package/dist/cjs/operation-node/select-query-node.js +6 -0
- package/dist/cjs/operation-node/update-query-node.d.ts +2 -0
- package/dist/cjs/operation-node/where-node.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.js +5 -6
- package/dist/cjs/parser/data-type-parser.js +1 -2
- package/dist/cjs/parser/default-value-parser.js +1 -2
- package/dist/cjs/parser/expression-parser.js +3 -4
- package/dist/cjs/parser/fetch-parser.js +1 -2
- package/dist/cjs/parser/group-by-parser.js +1 -2
- package/dist/cjs/parser/identifier-parser.js +1 -2
- package/dist/cjs/parser/insert-values-parser.js +1 -2
- package/dist/cjs/parser/join-parser.js +1 -2
- package/dist/cjs/parser/merge-parser.js +2 -3
- package/dist/cjs/parser/on-commit-action-parse.js +1 -2
- package/dist/cjs/parser/on-modify-action-parser.js +1 -2
- package/dist/cjs/parser/order-by-parser.js +3 -4
- package/dist/cjs/parser/parse-utils.js +4 -5
- package/dist/cjs/parser/partition-by-parser.js +1 -2
- package/dist/cjs/parser/reference-parser.js +8 -9
- package/dist/cjs/parser/returning-parser.d.ts +4 -3
- package/dist/cjs/parser/select-parser.js +2 -3
- package/dist/cjs/parser/set-operation-parser.js +1 -2
- package/dist/cjs/parser/table-parser.js +4 -5
- package/dist/cjs/parser/top-parser.js +1 -2
- package/dist/cjs/parser/unary-operation-parser.js +3 -4
- package/dist/cjs/parser/update-set-parser.js +2 -3
- package/dist/cjs/parser/value-parser.js +4 -5
- package/dist/cjs/parser/with-parser.js +1 -2
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +2 -2
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +2 -2
- package/dist/cjs/plugin/camel-case/camel-case.js +2 -3
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +18 -0
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +19 -11
- package/dist/cjs/query-builder/delete-query-builder.d.ts +89 -5
- package/dist/cjs/query-builder/delete-query-builder.js +19 -5
- package/dist/cjs/query-builder/function-module.d.ts +5 -5
- package/dist/cjs/query-builder/function-module.js +1 -2
- package/dist/cjs/query-builder/insert-query-builder.d.ts +95 -10
- package/dist/cjs/query-builder/insert-query-builder.js +25 -10
- package/dist/cjs/query-builder/merge-query-builder.d.ts +167 -3
- package/dist/cjs/query-builder/merge-query-builder.js +30 -1
- package/dist/cjs/query-builder/no-result-error.js +2 -2
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +2 -2
- package/dist/cjs/query-builder/output-interface.d.ts +95 -0
- package/dist/cjs/query-builder/output-interface.js +2 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +2 -0
- package/dist/cjs/query-builder/select-query-builder.d.ts +76 -11
- package/dist/cjs/query-builder/select-query-builder.js +7 -2
- package/dist/cjs/query-builder/update-query-builder.d.ts +95 -10
- package/dist/cjs/query-builder/update-query-builder.js +21 -7
- package/dist/cjs/query-builder/update-result.d.ts +9 -0
- package/dist/cjs/query-builder/update-result.js +9 -0
- package/dist/cjs/query-builder/where-interface.d.ts +1 -1
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +25 -1
- package/dist/cjs/query-creator.d.ts +56 -3
- package/dist/cjs/query-creator.js +54 -1
- package/dist/cjs/raw-builder/raw-builder.js +1 -2
- package/dist/cjs/raw-builder/sql.d.ts +5 -5
- package/dist/cjs/schema/alter-column-builder.js +3 -0
- package/dist/cjs/schema/alter-table-add-index-builder.d.ts +1 -1
- package/dist/cjs/schema/alter-table-add-index-builder.js +1 -1
- package/dist/cjs/schema/alter-table-builder.js +1 -2
- package/dist/cjs/schema/column-definition-builder.d.ts +5 -0
- package/dist/cjs/schema/column-definition-builder.js +7 -0
- package/dist/cjs/util/assert.js +2 -3
- package/dist/cjs/util/compilable.js +1 -2
- package/dist/cjs/util/json-object-args.js +1 -2
- package/dist/cjs/util/log-once.js +1 -2
- package/dist/cjs/util/object-utils.js +38 -26
- package/dist/cjs/util/performance-now.js +1 -2
- package/dist/cjs/util/prevent-await.js +1 -2
- package/dist/cjs/util/query-id.js +1 -2
- package/dist/cjs/util/random-string.js +1 -2
- package/dist/cjs/util/require-all-props.js +1 -2
- package/dist/cjs/util/stack-trace-utils.js +1 -2
- package/dist/esm/dialect/dialect-adapter-base.d.ts +2 -1
- package/dist/esm/dialect/dialect-adapter-base.js +4 -1
- package/dist/esm/dialect/dialect-adapter.d.ts +5 -0
- package/dist/esm/dialect/mssql/mssql-adapter.d.ts +1 -5
- package/dist/esm/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +46 -26
- package/dist/esm/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/esm/dialect/mssql/mssql-driver.js +95 -36
- package/dist/esm/dialect/postgres/postgres-introspector.js +1 -1
- package/dist/esm/driver/database-connection.d.ts +3 -1
- package/dist/esm/dynamic/dynamic.d.ts +1 -1
- package/dist/esm/dynamic/dynamic.js +1 -1
- package/dist/esm/expression/expression-builder.d.ts +2 -2
- package/dist/esm/helpers/mysql.d.ts +3 -3
- package/dist/esm/helpers/mysql.js +3 -3
- package/dist/esm/helpers/postgres.d.ts +4 -4
- package/dist/esm/helpers/postgres.js +4 -4
- package/dist/esm/index.d.ts +28 -21
- package/dist/esm/index.js +28 -21
- package/dist/esm/kysely.d.ts +1 -1
- package/dist/esm/kysely.js +1 -1
- package/dist/esm/operation-node/alter-column-node.d.ts +1 -1
- package/dist/esm/operation-node/case-node.d.ts +1 -1
- package/dist/esm/operation-node/column-definition-node.d.ts +1 -0
- package/dist/esm/operation-node/data-type-node.d.ts +2 -2
- package/dist/esm/operation-node/data-type-node.js +3 -1
- package/dist/esm/operation-node/delete-query-node.d.ts +2 -0
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -4
- package/dist/esm/operation-node/having-node.d.ts +1 -1
- package/dist/esm/operation-node/insert-query-node.d.ts +2 -0
- package/dist/esm/operation-node/merge-query-node.d.ts +2 -0
- package/dist/esm/operation-node/on-node.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.js +12 -0
- 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 +3 -3
- package/dist/esm/operation-node/operator-node.js +2 -0
- package/dist/esm/operation-node/output-node.d.ts +13 -0
- package/dist/esm/operation-node/output-node.js +24 -0
- package/dist/esm/operation-node/query-node.d.ts +11 -6
- package/dist/esm/operation-node/query-node.js +9 -0
- package/dist/esm/operation-node/select-query-node.d.ts +1 -0
- package/dist/esm/operation-node/select-query-node.js +6 -0
- package/dist/esm/operation-node/update-query-node.d.ts +2 -0
- package/dist/esm/operation-node/where-node.d.ts +1 -1
- package/dist/esm/parser/returning-parser.d.ts +4 -3
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +2 -2
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +2 -2
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +18 -0
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +19 -11
- package/dist/esm/query-builder/delete-query-builder.d.ts +89 -5
- package/dist/esm/query-builder/delete-query-builder.js +19 -5
- package/dist/esm/query-builder/function-module.d.ts +5 -5
- package/dist/esm/query-builder/insert-query-builder.d.ts +95 -10
- package/dist/esm/query-builder/insert-query-builder.js +25 -10
- package/dist/esm/query-builder/merge-query-builder.d.ts +167 -3
- package/dist/esm/query-builder/merge-query-builder.js +30 -1
- package/dist/esm/query-builder/on-conflict-builder.d.ts +2 -2
- package/dist/esm/query-builder/output-interface.d.ts +95 -0
- package/dist/esm/query-builder/output-interface.js +2 -0
- package/dist/esm/query-builder/returning-interface.d.ts +2 -0
- package/dist/esm/query-builder/select-query-builder.d.ts +76 -11
- package/dist/esm/query-builder/select-query-builder.js +6 -0
- package/dist/esm/query-builder/update-query-builder.d.ts +95 -10
- package/dist/esm/query-builder/update-query-builder.js +21 -7
- package/dist/esm/query-builder/update-result.d.ts +9 -0
- package/dist/esm/query-builder/update-result.js +9 -0
- package/dist/esm/query-builder/where-interface.d.ts +1 -1
- package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/esm/query-compiler/default-query-compiler.js +25 -1
- package/dist/esm/query-creator.d.ts +56 -3
- package/dist/esm/query-creator.js +54 -1
- package/dist/esm/raw-builder/sql.d.ts +5 -5
- package/dist/esm/schema/alter-column-builder.js +3 -0
- package/dist/esm/schema/alter-table-add-index-builder.d.ts +1 -1
- package/dist/esm/schema/alter-table-add-index-builder.js +1 -1
- package/dist/esm/schema/alter-table-builder.js +1 -2
- package/dist/esm/schema/column-definition-builder.d.ts +5 -0
- package/dist/esm/schema/column-definition-builder.js +7 -0
- package/dist/esm/util/object-utils.js +18 -5
- package/package.json +7 -6
package/dist/esm/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export { expressionBuilder, } from './expression/expression-builder.js';
|
|
|
6
6
|
export * from './expression/expression-wrapper.js';
|
|
7
7
|
export * from './query-builder/where-interface.js';
|
|
8
8
|
export * from './query-builder/returning-interface.js';
|
|
9
|
+
export * from './query-builder/output-interface.js';
|
|
9
10
|
export * from './query-builder/having-interface.js';
|
|
10
11
|
export * from './query-builder/select-query-builder.js';
|
|
11
12
|
export * from './query-builder/insert-query-builder.js';
|
|
@@ -92,17 +93,21 @@ export * from './plugin/with-schema/with-schema-plugin.js';
|
|
|
92
93
|
export * from './plugin/parse-json-results/parse-json-results-plugin.js';
|
|
93
94
|
export * from './operation-node/add-column-node.js';
|
|
94
95
|
export * from './operation-node/add-constraint-node.js';
|
|
96
|
+
export * from './operation-node/add-index-node.js';
|
|
97
|
+
export * from './operation-node/aggregate-function-node.js';
|
|
95
98
|
export * from './operation-node/alias-node.js';
|
|
96
99
|
export * from './operation-node/alter-column-node.js';
|
|
97
100
|
export * from './operation-node/alter-table-node.js';
|
|
98
101
|
export * from './operation-node/and-node.js';
|
|
102
|
+
export * from './operation-node/binary-operation-node.js';
|
|
99
103
|
export * from './operation-node/case-node.js';
|
|
104
|
+
export * from './operation-node/cast-node.js';
|
|
100
105
|
export * from './operation-node/check-constraint-node.js';
|
|
101
106
|
export * from './operation-node/column-definition-node.js';
|
|
102
107
|
export * from './operation-node/column-node.js';
|
|
103
108
|
export * from './operation-node/column-update-node.js';
|
|
104
|
-
export * from './operation-node/common-table-expression-node.js';
|
|
105
109
|
export * from './operation-node/common-table-expression-name-node.js';
|
|
110
|
+
export * from './operation-node/common-table-expression-node.js';
|
|
106
111
|
export * from './operation-node/constraint-node.js';
|
|
107
112
|
export * from './operation-node/create-index-node.js';
|
|
108
113
|
export * from './operation-node/create-schema-node.js';
|
|
@@ -110,6 +115,7 @@ export * from './operation-node/create-table-node.js';
|
|
|
110
115
|
export * from './operation-node/create-type-node.js';
|
|
111
116
|
export * from './operation-node/create-view-node.js';
|
|
112
117
|
export * from './operation-node/data-type-node.js';
|
|
118
|
+
export * from './operation-node/default-insert-value-node.js';
|
|
113
119
|
export * from './operation-node/default-value-node.js';
|
|
114
120
|
export * from './operation-node/delete-query-node.js';
|
|
115
121
|
export * from './operation-node/drop-column-node.js';
|
|
@@ -119,8 +125,11 @@ export * from './operation-node/drop-schema-node.js';
|
|
|
119
125
|
export * from './operation-node/drop-table-node.js';
|
|
120
126
|
export * from './operation-node/drop-type-node.js';
|
|
121
127
|
export * from './operation-node/drop-view-node.js';
|
|
128
|
+
export * from './operation-node/explain-node.js';
|
|
129
|
+
export * from './operation-node/fetch-node.js';
|
|
122
130
|
export * from './operation-node/foreign-key-constraint-node.js';
|
|
123
131
|
export * from './operation-node/from-node.js';
|
|
132
|
+
export * from './operation-node/function-node.js';
|
|
124
133
|
export * from './operation-node/generated-node.js';
|
|
125
134
|
export * from './operation-node/group-by-item-node.js';
|
|
126
135
|
export * from './operation-node/group-by-node.js';
|
|
@@ -128,8 +137,14 @@ export * from './operation-node/having-node.js';
|
|
|
128
137
|
export * from './operation-node/identifier-node.js';
|
|
129
138
|
export * from './operation-node/insert-query-node.js';
|
|
130
139
|
export * from './operation-node/join-node.js';
|
|
140
|
+
export * from './operation-node/json-operator-chain-node.js';
|
|
141
|
+
export * from './operation-node/json-path-leg-node.js';
|
|
142
|
+
export * from './operation-node/json-path-node.js';
|
|
143
|
+
export * from './operation-node/json-reference-node.js';
|
|
131
144
|
export * from './operation-node/limit-node.js';
|
|
132
145
|
export * from './operation-node/list-node.js';
|
|
146
|
+
export * from './operation-node/matched-node.js';
|
|
147
|
+
export * from './operation-node/merge-query-node.js';
|
|
133
148
|
export * from './operation-node/modify-column-node.js';
|
|
134
149
|
export * from './operation-node/offset-node.js';
|
|
135
150
|
export * from './operation-node/on-conflict-node.js';
|
|
@@ -143,7 +158,11 @@ export * from './operation-node/operator-node.js';
|
|
|
143
158
|
export * from './operation-node/or-node.js';
|
|
144
159
|
export * from './operation-node/order-by-item-node.js';
|
|
145
160
|
export * from './operation-node/order-by-node.js';
|
|
161
|
+
export * from './operation-node/output-node.js';
|
|
162
|
+
export * from './operation-node/over-node.js';
|
|
146
163
|
export * from './operation-node/parens-node.js';
|
|
164
|
+
export * from './operation-node/partition-by-item-node.js';
|
|
165
|
+
export * from './operation-node/partition-by-node.js';
|
|
147
166
|
export * from './operation-node/primary-constraint-node.js';
|
|
148
167
|
export * from './operation-node/primitive-value-list-node.js';
|
|
149
168
|
export * from './operation-node/query-node.js';
|
|
@@ -152,38 +171,26 @@ export * from './operation-node/reference-node.js';
|
|
|
152
171
|
export * from './operation-node/references-node.js';
|
|
153
172
|
export * from './operation-node/rename-column-node.js';
|
|
154
173
|
export * from './operation-node/returning-node.js';
|
|
174
|
+
export * from './operation-node/schemable-identifier-node.js';
|
|
155
175
|
export * from './operation-node/select-all-node.js';
|
|
156
|
-
export * from './operation-node/select-
|
|
176
|
+
export * from './operation-node/select-modifier-node.js';
|
|
157
177
|
export * from './operation-node/select-query-node.js';
|
|
158
178
|
export * from './operation-node/selection-node.js';
|
|
179
|
+
export * from './operation-node/set-operation-node.js';
|
|
180
|
+
export * from './operation-node/simple-reference-expression-node.js';
|
|
159
181
|
export * from './operation-node/table-node.js';
|
|
182
|
+
export * from './operation-node/top-node.js';
|
|
183
|
+
export * from './operation-node/tuple-node.js';
|
|
184
|
+
export * from './operation-node/unary-operation-node.js';
|
|
160
185
|
export * from './operation-node/unique-constraint-node.js';
|
|
161
186
|
export * from './operation-node/update-query-node.js';
|
|
187
|
+
export * from './operation-node/using-node.js';
|
|
162
188
|
export * from './operation-node/value-list-node.js';
|
|
163
189
|
export * from './operation-node/value-node.js';
|
|
164
190
|
export * from './operation-node/values-node.js';
|
|
165
191
|
export * from './operation-node/when-node.js';
|
|
166
192
|
export * from './operation-node/where-node.js';
|
|
167
193
|
export * from './operation-node/with-node.js';
|
|
168
|
-
export * from './operation-node/explain-node.js';
|
|
169
|
-
export * from './operation-node/default-insert-value-node.js';
|
|
170
|
-
export * from './operation-node/aggregate-function-node.js';
|
|
171
|
-
export * from './operation-node/over-node.js';
|
|
172
|
-
export * from './operation-node/partition-by-node.js';
|
|
173
|
-
export * from './operation-node/partition-by-item-node.js';
|
|
174
|
-
export * from './operation-node/set-operation-node.js';
|
|
175
|
-
export * from './operation-node/binary-operation-node.js';
|
|
176
|
-
export * from './operation-node/unary-operation-node.js';
|
|
177
|
-
export * from './operation-node/using-node.js';
|
|
178
|
-
export * from './operation-node/json-reference-node.js';
|
|
179
|
-
export * from './operation-node/json-path-leg-node.js';
|
|
180
|
-
export * from './operation-node/json-path-node.js';
|
|
181
|
-
export * from './operation-node/json-operator-chain-node.js';
|
|
182
|
-
export * from './operation-node/tuple-node.js';
|
|
183
|
-
export * from './operation-node/merge-query-node.js';
|
|
184
|
-
export * from './operation-node/matched-node.js';
|
|
185
|
-
export * from './operation-node/fetch-node.js';
|
|
186
|
-
export * from './operation-node/top-node.js';
|
|
187
194
|
export * from './util/column-type.js';
|
|
188
195
|
export * from './util/compilable.js';
|
|
189
196
|
export * from './util/explainable.js';
|
package/dist/esm/kysely.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ import { DrainOuterGeneric } from './util/type-utils.js';
|
|
|
20
20
|
* The main Kysely class.
|
|
21
21
|
*
|
|
22
22
|
* You should create one instance of `Kysely` per database using the {@link Kysely}
|
|
23
|
-
* constructor. Each `Kysely` instance maintains
|
|
23
|
+
* constructor. Each `Kysely` instance maintains its own connection pool.
|
|
24
24
|
*
|
|
25
25
|
* ### Examples
|
|
26
26
|
*
|
package/dist/esm/kysely.js
CHANGED
|
@@ -21,7 +21,7 @@ import { WithSchemaPlugin } from './plugin/with-schema/with-schema-plugin.js';
|
|
|
21
21
|
* The main Kysely class.
|
|
22
22
|
*
|
|
23
23
|
* You should create one instance of `Kysely` per database using the {@link Kysely}
|
|
24
|
-
* constructor. Each `Kysely` instance maintains
|
|
24
|
+
* constructor. Each `Kysely` instance maintains its own connection pool.
|
|
25
25
|
*
|
|
26
26
|
* ### Examples
|
|
27
27
|
*
|
|
@@ -17,5 +17,5 @@ export interface AlterColumnNode extends OperationNode {
|
|
|
17
17
|
*/
|
|
18
18
|
export declare const AlterColumnNode: Readonly<{
|
|
19
19
|
is(node: OperationNode): node is AlterColumnNode;
|
|
20
|
-
create<T extends
|
|
20
|
+
create<T extends keyof AlterColumnNodeProps>(column: string, prop: T, value: Required<AlterColumnNodeProps>[T]): AlterColumnNode;
|
|
21
21
|
}>;
|
|
@@ -15,5 +15,5 @@ export declare const CaseNode: Readonly<{
|
|
|
15
15
|
create(value?: OperationNode): CaseNode;
|
|
16
16
|
cloneWithWhen(caseNode: CaseNode, when: WhenNode): CaseNode;
|
|
17
17
|
cloneWithThen(caseNode: CaseNode, then: OperationNode): CaseNode;
|
|
18
|
-
cloneWith(caseNode: CaseNode, props: Partial<Pick<CaseNode,
|
|
18
|
+
cloneWith(caseNode: CaseNode, props: Partial<Pick<CaseNode, "else" | "isStatement">>): CaseNode;
|
|
19
19
|
}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
declare const SIMPLE_COLUMN_DATA_TYPES: readonly ["varchar", "char", "text", "integer", "int2", "int4", "int8", "smallint", "bigint", "boolean", "real", "double precision", "float4", "float8", "decimal", "numeric", "binary", "bytea", "date", "datetime", "time", "timetz", "timestamp", "timestamptz", "serial", "bigserial", "uuid", "json", "jsonb", "blob"];
|
|
2
|
+
declare const SIMPLE_COLUMN_DATA_TYPES: readonly ["varchar", "char", "text", "integer", "int2", "int4", "int8", "smallint", "bigint", "boolean", "real", "double precision", "float4", "float8", "decimal", "numeric", "binary", "bytea", "date", "datetime", "time", "timetz", "timestamp", "timestamptz", "serial", "bigserial", "uuid", "json", "jsonb", "blob", "varbinary"];
|
|
3
3
|
type SimpleColumnDataType = (typeof SIMPLE_COLUMN_DATA_TYPES)[number];
|
|
4
|
-
export type ColumnDataType = SimpleColumnDataType | `varchar(${number})` | `char(${number})` | `decimal(${number}, ${number})` | `numeric(${number}, ${number})` | `binary(${number})` | `datetime(${number})` | `time(${number})` | `timetz(${number})` | `timestamp(${number})` | `timestamptz(${number})`;
|
|
4
|
+
export type ColumnDataType = SimpleColumnDataType | `varchar(${number})` | `char(${number})` | `decimal(${number}, ${number})` | `numeric(${number}, ${number})` | `binary(${number})` | `datetime(${number})` | `time(${number})` | `timetz(${number})` | `timestamp(${number})` | `timestamptz(${number})` | `varbinary(${number})`;
|
|
5
5
|
export type DataTypeParams = Omit<DataTypeNode, 'kind' | 'dataType'>;
|
|
6
6
|
export interface DataTypeNode extends OperationNode {
|
|
7
7
|
readonly kind: 'DataTypeNode';
|
|
@@ -31,6 +31,7 @@ const SIMPLE_COLUMN_DATA_TYPES = [
|
|
|
31
31
|
'json',
|
|
32
32
|
'jsonb',
|
|
33
33
|
'blob',
|
|
34
|
+
'varbinary',
|
|
34
35
|
];
|
|
35
36
|
const COLUMN_DATA_TYPE_REGEX = [
|
|
36
37
|
/^varchar\(\d+\)$/,
|
|
@@ -40,9 +41,10 @@ const COLUMN_DATA_TYPE_REGEX = [
|
|
|
40
41
|
/^binary\(\d+\)$/,
|
|
41
42
|
/^datetime\(\d+\)$/,
|
|
42
43
|
/^time\(\d+\)$/,
|
|
43
|
-
/^
|
|
44
|
+
/^timetz\(\d+\)$/,
|
|
44
45
|
/^timestamp\(\d+\)$/,
|
|
45
46
|
/^timestamptz\(\d+\)$/,
|
|
47
|
+
/^varbinary\(\d+\)$/,
|
|
46
48
|
];
|
|
47
49
|
/**
|
|
48
50
|
* @internal
|
|
@@ -10,6 +10,7 @@ import { OrderByItemNode } from './order-by-item-node.js';
|
|
|
10
10
|
import { ExplainNode } from './explain-node.js';
|
|
11
11
|
import { UsingNode } from './using-node.js';
|
|
12
12
|
import { TopNode } from './top-node.js';
|
|
13
|
+
import { OutputNode } from './output-node.js';
|
|
13
14
|
export interface DeleteQueryNode extends OperationNode {
|
|
14
15
|
readonly kind: 'DeleteQueryNode';
|
|
15
16
|
readonly from: FromNode;
|
|
@@ -22,6 +23,7 @@ export interface DeleteQueryNode extends OperationNode {
|
|
|
22
23
|
readonly limit?: LimitNode;
|
|
23
24
|
readonly explain?: ExplainNode;
|
|
24
25
|
readonly top?: TopNode;
|
|
26
|
+
readonly output?: OutputNode;
|
|
25
27
|
}
|
|
26
28
|
/**
|
|
27
29
|
* @internal
|
|
@@ -19,10 +19,10 @@ export declare const ForeignKeyConstraintNode: Readonly<{
|
|
|
19
19
|
is(node: OperationNode): node is ForeignKeyConstraintNode;
|
|
20
20
|
create(sourceColumns: ReadonlyArray<ColumnNode>, targetTable: TableNode, targetColumns: ReadonlyArray<ColumnNode>, constraintName?: string): ForeignKeyConstraintNode;
|
|
21
21
|
cloneWith(node: ForeignKeyConstraintNode, props: ForeignKeyConstraintNodeProps): Readonly<{
|
|
22
|
-
name?: IdentifierNode
|
|
23
|
-
onDelete?:
|
|
24
|
-
onUpdate?:
|
|
25
|
-
kind:
|
|
22
|
+
name?: IdentifierNode;
|
|
23
|
+
onDelete?: OnModifyForeignAction;
|
|
24
|
+
onUpdate?: OnModifyForeignAction;
|
|
25
|
+
kind: "ForeignKeyConstraintNode";
|
|
26
26
|
columns: ReadonlyArray<ColumnNode>;
|
|
27
27
|
references: ReferencesNode;
|
|
28
28
|
}>;
|
|
@@ -9,5 +9,5 @@ export interface HavingNode extends OperationNode {
|
|
|
9
9
|
export declare const HavingNode: Readonly<{
|
|
10
10
|
is(node: OperationNode): node is HavingNode;
|
|
11
11
|
create(filter: OperationNode): HavingNode;
|
|
12
|
-
cloneWithOperation(havingNode: HavingNode, operator:
|
|
12
|
+
cloneWithOperation(havingNode: HavingNode, operator: "And" | "Or", operation: OperationNode): HavingNode;
|
|
13
13
|
}>;
|
|
@@ -3,6 +3,7 @@ import { ExplainNode } from './explain-node.js';
|
|
|
3
3
|
import { OnConflictNode } from './on-conflict-node.js';
|
|
4
4
|
import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
|
|
5
5
|
import { OperationNode } from './operation-node.js';
|
|
6
|
+
import { OutputNode } from './output-node.js';
|
|
6
7
|
import { ReturningNode } from './returning-node.js';
|
|
7
8
|
import { TableNode } from './table-node.js';
|
|
8
9
|
import { TopNode } from './top-node.js';
|
|
@@ -22,6 +23,7 @@ export interface InsertQueryNode extends OperationNode {
|
|
|
22
23
|
readonly explain?: ExplainNode;
|
|
23
24
|
readonly defaultValues?: boolean;
|
|
24
25
|
readonly top?: TopNode;
|
|
26
|
+
readonly output?: OutputNode;
|
|
25
27
|
}
|
|
26
28
|
/**
|
|
27
29
|
* @internal
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AliasNode } from './alias-node.js';
|
|
2
2
|
import { JoinNode } from './join-node.js';
|
|
3
3
|
import { OperationNode } from './operation-node.js';
|
|
4
|
+
import { OutputNode } from './output-node.js';
|
|
4
5
|
import { TableNode } from './table-node.js';
|
|
5
6
|
import { TopNode } from './top-node.js';
|
|
6
7
|
import { WhenNode } from './when-node.js';
|
|
@@ -12,6 +13,7 @@ export interface MergeQueryNode extends OperationNode {
|
|
|
12
13
|
readonly whens?: ReadonlyArray<WhenNode>;
|
|
13
14
|
readonly with?: WithNode;
|
|
14
15
|
readonly top?: TopNode;
|
|
16
|
+
readonly output?: OutputNode;
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* @internal
|
|
@@ -9,5 +9,5 @@ export interface OnNode extends OperationNode {
|
|
|
9
9
|
export declare const OnNode: Readonly<{
|
|
10
10
|
is(node: OperationNode): node is OnNode;
|
|
11
11
|
create(filter: OperationNode): OnNode;
|
|
12
|
-
cloneWithOperation(onNode: OnNode, operator:
|
|
12
|
+
cloneWithOperation(onNode: OnNode, operator: "And" | "Or", operation: OperationNode): OnNode;
|
|
13
13
|
}>;
|
|
@@ -91,6 +91,7 @@ import { AddIndexNode } from './add-index-node.js';
|
|
|
91
91
|
import { CastNode } from './cast-node.js';
|
|
92
92
|
import { FetchNode } from './fetch-node.js';
|
|
93
93
|
import { TopNode } from './top-node.js';
|
|
94
|
+
import { OutputNode } from './output-node.js';
|
|
94
95
|
/**
|
|
95
96
|
* Transforms an operation node tree into another one.
|
|
96
97
|
*
|
|
@@ -211,6 +212,7 @@ export declare class OperationNodeTransformer {
|
|
|
211
212
|
protected transformCast(node: CastNode): CastNode;
|
|
212
213
|
protected transformFetch(node: FetchNode): FetchNode;
|
|
213
214
|
protected transformTop(node: TopNode): TopNode;
|
|
215
|
+
protected transformOutput(node: OutputNode): OutputNode;
|
|
214
216
|
protected transformDataType(node: DataTypeNode): DataTypeNode;
|
|
215
217
|
protected transformSelectAll(node: SelectAllNode): SelectAllNode;
|
|
216
218
|
protected transformIdentifier(node: IdentifierNode): IdentifierNode;
|
|
@@ -125,6 +125,7 @@ export class OperationNodeTransformer {
|
|
|
125
125
|
CastNode: this.transformCast.bind(this),
|
|
126
126
|
FetchNode: this.transformFetch.bind(this),
|
|
127
127
|
TopNode: this.transformTop.bind(this),
|
|
128
|
+
OutputNode: this.transformOutput.bind(this),
|
|
128
129
|
});
|
|
129
130
|
transformNode(node) {
|
|
130
131
|
if (!node) {
|
|
@@ -266,6 +267,7 @@ export class OperationNodeTransformer {
|
|
|
266
267
|
explain: this.transformNode(node.explain),
|
|
267
268
|
defaultValues: node.defaultValues,
|
|
268
269
|
top: this.transformNode(node.top),
|
|
270
|
+
output: this.transformNode(node.output),
|
|
269
271
|
});
|
|
270
272
|
}
|
|
271
273
|
transformValues(node) {
|
|
@@ -287,6 +289,7 @@ export class OperationNodeTransformer {
|
|
|
287
289
|
limit: this.transformNode(node.limit),
|
|
288
290
|
explain: this.transformNode(node.explain),
|
|
289
291
|
top: this.transformNode(node.top),
|
|
292
|
+
output: this.transformNode(node.output),
|
|
290
293
|
});
|
|
291
294
|
}
|
|
292
295
|
transformReturning(node) {
|
|
@@ -327,6 +330,7 @@ export class OperationNodeTransformer {
|
|
|
327
330
|
endModifiers: this.transformNodeList(node.endModifiers),
|
|
328
331
|
nullsNotDistinct: node.nullsNotDistinct,
|
|
329
332
|
identity: node.identity,
|
|
333
|
+
ifNotExists: node.ifNotExists,
|
|
330
334
|
});
|
|
331
335
|
}
|
|
332
336
|
transformAddColumn(node) {
|
|
@@ -381,6 +385,7 @@ export class OperationNodeTransformer {
|
|
|
381
385
|
explain: this.transformNode(node.explain),
|
|
382
386
|
limit: this.transformNode(node.limit),
|
|
383
387
|
top: this.transformNode(node.top),
|
|
388
|
+
output: this.transformNode(node.output),
|
|
384
389
|
});
|
|
385
390
|
}
|
|
386
391
|
transformColumnUpdate(node) {
|
|
@@ -792,6 +797,7 @@ export class OperationNodeTransformer {
|
|
|
792
797
|
whens: this.transformNodeList(node.whens),
|
|
793
798
|
with: this.transformNode(node.with),
|
|
794
799
|
top: this.transformNode(node.top),
|
|
800
|
+
output: this.transformNode(node.output),
|
|
795
801
|
});
|
|
796
802
|
}
|
|
797
803
|
transformMatched(node) {
|
|
@@ -832,6 +838,12 @@ export class OperationNodeTransformer {
|
|
|
832
838
|
modifiers: node.modifiers,
|
|
833
839
|
});
|
|
834
840
|
}
|
|
841
|
+
transformOutput(node) {
|
|
842
|
+
return requireAllProps({
|
|
843
|
+
kind: 'OutputNode',
|
|
844
|
+
selections: this.transformNodeList(node.selections),
|
|
845
|
+
});
|
|
846
|
+
}
|
|
835
847
|
transformDataType(node) {
|
|
836
848
|
// An Object.freezed leaf node. No need to clone.
|
|
837
849
|
return node;
|
|
@@ -91,6 +91,7 @@ import { AddIndexNode } from './add-index-node.js';
|
|
|
91
91
|
import { CastNode } from './cast-node.js';
|
|
92
92
|
import { FetchNode } from './fetch-node.js';
|
|
93
93
|
import { TopNode } from './top-node.js';
|
|
94
|
+
import { OutputNode } from './output-node.js';
|
|
94
95
|
export declare abstract class OperationNodeVisitor {
|
|
95
96
|
#private;
|
|
96
97
|
protected readonly nodeStack: OperationNode[];
|
|
@@ -188,4 +189,5 @@ export declare abstract class OperationNodeVisitor {
|
|
|
188
189
|
protected abstract visitCast(node: CastNode): void;
|
|
189
190
|
protected abstract visitFetch(node: FetchNode): void;
|
|
190
191
|
protected abstract visitTop(node: TopNode): void;
|
|
192
|
+
protected abstract visitOutput(node: OutputNode): void;
|
|
191
193
|
}
|
|
@@ -98,6 +98,7 @@ export class OperationNodeVisitor {
|
|
|
98
98
|
CastNode: this.visitCast.bind(this),
|
|
99
99
|
FetchNode: this.visitFetch.bind(this),
|
|
100
100
|
TopNode: this.visitTop.bind(this),
|
|
101
|
+
OutputNode: this.visitOutput.bind(this),
|
|
101
102
|
});
|
|
102
103
|
visitNode = (node) => {
|
|
103
104
|
this.nodeStack.push(node);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode' | 'UsingNode' | 'FunctionNode' | 'CaseNode' | 'WhenNode' | 'JSONReferenceNode' | 'JSONPathNode' | 'JSONPathLegNode' | 'JSONOperatorChainNode' | 'TupleNode' | 'MergeQueryNode' | 'MatchedNode' | 'AddIndexNode' | 'CastNode' | 'FetchNode' | 'TopNode';
|
|
1
|
+
export type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode' | 'UsingNode' | 'FunctionNode' | 'CaseNode' | 'WhenNode' | 'JSONReferenceNode' | 'JSONPathNode' | 'JSONPathLegNode' | 'JSONOperatorChainNode' | 'TupleNode' | 'MergeQueryNode' | 'MatchedNode' | 'AddIndexNode' | 'CastNode' | 'FetchNode' | 'TopNode' | 'OutputNode';
|
|
2
2
|
export interface OperationNode {
|
|
3
3
|
readonly kind: OperationNodeKind;
|
|
4
4
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
export declare const COMPARISON_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from"];
|
|
2
|
+
export declare const COMPARISON_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "^@", "&&", "?", "?&", "?|", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from"];
|
|
3
3
|
export declare const ARITHMETIC_OPERATORS: readonly ["+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>"];
|
|
4
4
|
export declare const JSON_OPERATORS: readonly ["->", "->>"];
|
|
5
|
-
export declare const BINARY_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||"];
|
|
5
|
+
export declare const BINARY_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "^@", "&&", "?", "?&", "?|", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||"];
|
|
6
6
|
export declare const UNARY_FILTER_OPERATORS: readonly ["exists", "not exists"];
|
|
7
7
|
export declare const UNARY_OPERATORS: readonly ["not", "-", "exists", "not exists"];
|
|
8
|
-
export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "&&", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||", "->", "->>", "not", "-", "exists", "not exists", "between", "between symmetric"];
|
|
8
|
+
export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "match", "ilike", "not ilike", "@>", "<@", "^@", "&&", "?", "?&", "?|", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "@@", "@@@", "!!", "<->", "regexp", "is distinct from", "is not distinct from", "+", "-", "*", "/", "%", "^", "&", "|", "#", "<<", ">>", "&&", "||", "->", "->>", "not", "-", "exists", "not exists", "between", "between symmetric"];
|
|
9
9
|
export type ComparisonOperator = (typeof COMPARISON_OPERATORS)[number];
|
|
10
10
|
export type ArithmeticOperator = (typeof ARITHMETIC_OPERATORS)[number];
|
|
11
11
|
export type JSONOperator = (typeof JSON_OPERATORS)[number];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
export interface OutputNode extends OperationNode {
|
|
3
|
+
readonly kind: 'OutputNode';
|
|
4
|
+
readonly selections: ReadonlyArray<OperationNode>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare const OutputNode: Readonly<{
|
|
10
|
+
is(node: OperationNode): node is OutputNode;
|
|
11
|
+
create(selections: ReadonlyArray<OperationNode>): OutputNode;
|
|
12
|
+
cloneWithSelections(output: OutputNode, selections: ReadonlyArray<OperationNode>): OutputNode;
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="./output-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const OutputNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'OutputNode';
|
|
9
|
+
},
|
|
10
|
+
create(selections) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'OutputNode',
|
|
13
|
+
selections: freeze(selections),
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
cloneWithSelections(output, selections) {
|
|
17
|
+
return freeze({
|
|
18
|
+
...output,
|
|
19
|
+
selections: output.selections
|
|
20
|
+
? freeze([...output.selections, ...selections])
|
|
21
|
+
: freeze(selections),
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
});
|
|
@@ -12,6 +12,7 @@ import { ExplainFormat } from '../util/explainable.js';
|
|
|
12
12
|
import { Expression } from '../expression/expression.js';
|
|
13
13
|
import { MergeQueryNode } from './merge-query-node.js';
|
|
14
14
|
import { TopNode } from './top-node.js';
|
|
15
|
+
import { OutputNode } from './output-node.js';
|
|
15
16
|
export type QueryNode = SelectQueryNode | InsertQueryNode | UpdateQueryNode | DeleteQueryNode | MergeQueryNode;
|
|
16
17
|
type HasJoins = {
|
|
17
18
|
joins?: ReadonlyArray<JoinNode>;
|
|
@@ -28,17 +29,21 @@ type HasExplain = {
|
|
|
28
29
|
type HasTop = {
|
|
29
30
|
top?: TopNode;
|
|
30
31
|
};
|
|
32
|
+
type HasOutput = {
|
|
33
|
+
output?: OutputNode;
|
|
34
|
+
};
|
|
31
35
|
/**
|
|
32
36
|
* @internal
|
|
33
37
|
*/
|
|
34
38
|
export declare const QueryNode: Readonly<{
|
|
35
39
|
is(node: OperationNode): node is QueryNode;
|
|
36
40
|
cloneWithWhere<T extends HasWhere>(node: T, operation: OperationNode): T;
|
|
37
|
-
cloneWithJoin<
|
|
38
|
-
cloneWithReturning<
|
|
39
|
-
cloneWithoutReturning<
|
|
40
|
-
cloneWithoutWhere<
|
|
41
|
-
cloneWithExplain<
|
|
42
|
-
cloneWithTop<
|
|
41
|
+
cloneWithJoin<T extends HasJoins>(node: T, join: JoinNode): T;
|
|
42
|
+
cloneWithReturning<T extends HasReturning>(node: T, selections: ReadonlyArray<SelectionNode>): T;
|
|
43
|
+
cloneWithoutReturning<T extends HasReturning>(node: T): T;
|
|
44
|
+
cloneWithoutWhere<T extends HasWhere>(node: T): T;
|
|
45
|
+
cloneWithExplain<T extends HasExplain>(node: T, format: ExplainFormat | undefined, options: Expression<any> | undefined): T;
|
|
46
|
+
cloneWithTop<T extends HasTop>(node: T, top: TopNode): T;
|
|
47
|
+
cloneWithOutput<T extends HasOutput>(node: T, selections: ReadonlyArray<SelectionNode>): T;
|
|
43
48
|
}>;
|
|
44
49
|
export {};
|
|
@@ -8,6 +8,7 @@ import { freeze } from '../util/object-utils.js';
|
|
|
8
8
|
import { ReturningNode } from './returning-node.js';
|
|
9
9
|
import { ExplainNode } from './explain-node.js';
|
|
10
10
|
import { MergeQueryNode } from './merge-query-node.js';
|
|
11
|
+
import { OutputNode } from './output-node.js';
|
|
11
12
|
/**
|
|
12
13
|
* @internal
|
|
13
14
|
*/
|
|
@@ -65,4 +66,12 @@ export const QueryNode = freeze({
|
|
|
65
66
|
top,
|
|
66
67
|
});
|
|
67
68
|
},
|
|
69
|
+
cloneWithOutput(node, selections) {
|
|
70
|
+
return freeze({
|
|
71
|
+
...node,
|
|
72
|
+
output: node.output
|
|
73
|
+
? OutputNode.cloneWithSelections(node.output, selections)
|
|
74
|
+
: OutputNode.create(selections),
|
|
75
|
+
});
|
|
76
|
+
},
|
|
68
77
|
});
|
|
@@ -58,4 +58,5 @@ export declare const SelectQueryNode: Readonly<{
|
|
|
58
58
|
cloneWithoutLimit(select: SelectQueryNode): SelectQueryNode;
|
|
59
59
|
cloneWithoutOffset(select: SelectQueryNode): SelectQueryNode;
|
|
60
60
|
cloneWithoutOrderBy(select: SelectQueryNode): SelectQueryNode;
|
|
61
|
+
cloneWithoutGroupBy(select: SelectQueryNode): SelectQueryNode;
|
|
61
62
|
}>;
|
|
@@ -10,6 +10,7 @@ import { FromNode } from './from-node.js';
|
|
|
10
10
|
import { ExplainNode } from './explain-node.js';
|
|
11
11
|
import { LimitNode } from './limit-node.js';
|
|
12
12
|
import { TopNode } from './top-node.js';
|
|
13
|
+
import { OutputNode } from './output-node.js';
|
|
13
14
|
export type UpdateValuesNode = ValueListNode | PrimitiveValueListNode;
|
|
14
15
|
export interface UpdateQueryNode extends OperationNode {
|
|
15
16
|
readonly kind: 'UpdateQueryNode';
|
|
@@ -23,6 +24,7 @@ export interface UpdateQueryNode extends OperationNode {
|
|
|
23
24
|
readonly explain?: ExplainNode;
|
|
24
25
|
readonly limit?: LimitNode;
|
|
25
26
|
readonly top?: TopNode;
|
|
27
|
+
readonly output?: OutputNode;
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
28
30
|
* @internal
|
|
@@ -9,5 +9,5 @@ export interface WhereNode extends OperationNode {
|
|
|
9
9
|
export declare const WhereNode: Readonly<{
|
|
10
10
|
is(node: OperationNode): node is WhereNode;
|
|
11
11
|
create(filter: OperationNode): WhereNode;
|
|
12
|
-
cloneWithOperation(whereNode: WhereNode, operator:
|
|
12
|
+
cloneWithOperation(whereNode: WhereNode, operator: "And" | "Or", operation: OperationNode): WhereNode;
|
|
13
13
|
}>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { DeleteResult } from '../query-builder/delete-result.js';
|
|
2
2
|
import { InsertResult } from '../query-builder/insert-result.js';
|
|
3
|
+
import { MergeResult } from '../query-builder/merge-result.js';
|
|
3
4
|
import { UpdateResult } from '../query-builder/update-result.js';
|
|
4
5
|
import { Selection, AllSelection, CallbackSelection } from './select-parser.js';
|
|
5
|
-
export type ReturningRow<DB, TB extends keyof DB, O, SE> = O extends InsertResult
|
|
6
|
-
export type ReturningCallbackRow<DB, TB extends keyof DB, O, CB> = O extends InsertResult
|
|
7
|
-
export type ReturningAllRow<DB, TB extends keyof DB, O> = O extends InsertResult
|
|
6
|
+
export type ReturningRow<DB, TB extends keyof DB, O, SE> = O extends InsertResult | DeleteResult | UpdateResult | MergeResult ? Selection<DB, TB, SE> : O & Selection<DB, TB, SE>;
|
|
7
|
+
export type ReturningCallbackRow<DB, TB extends keyof DB, O, CB> = O extends InsertResult | DeleteResult | UpdateResult | MergeResult ? CallbackSelection<DB, TB, CB> : O & CallbackSelection<DB, TB, CB>;
|
|
8
|
+
export type ReturningAllRow<DB, TB extends keyof DB, O> = O extends InsertResult | DeleteResult | UpdateResult | MergeResult ? AllSelection<DB, TB> : O & AllSelection<DB, TB>;
|
|
@@ -35,7 +35,7 @@ export interface CamelCasePluginOptions {
|
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* A plugin that converts snake_case identifiers in the database into
|
|
38
|
-
* camelCase in the
|
|
38
|
+
* camelCase in the JavaScript side.
|
|
39
39
|
*
|
|
40
40
|
* For example let's assume we have a table called `person_table`
|
|
41
41
|
* with columns `first_name` and `last_name` in the database. When
|
|
@@ -75,7 +75,7 @@ export interface CamelCasePluginOptions {
|
|
|
75
75
|
* ```
|
|
76
76
|
*
|
|
77
77
|
* As you can see from the example, __everything__ needs to be defined
|
|
78
|
-
* in camelCase in the
|
|
78
|
+
* in camelCase in the TypeScript code: table names, columns, schemas,
|
|
79
79
|
* __everything__. When using the `CamelCasePlugin` Kysely works as if
|
|
80
80
|
* the database was defined in camelCase.
|
|
81
81
|
*
|