@undefineds.co/drizzle-solid 0.2.10 → 0.2.13
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 +255 -439
- package/dist/core/expressions.d.ts +4 -0
- package/dist/core/expressions.d.ts.map +1 -1
- package/dist/core/expressions.js +8 -1
- package/dist/core/expressions.js.map +1 -1
- package/dist/core/order-by.d.ts +9 -0
- package/dist/core/order-by.d.ts.map +1 -0
- package/dist/core/order-by.js +20 -0
- package/dist/core/order-by.js.map +1 -0
- package/dist/core/pod-database.d.ts +6 -0
- package/dist/core/pod-database.d.ts.map +1 -1
- package/dist/core/pod-database.js +121 -31
- package/dist/core/pod-database.js.map +1 -1
- package/dist/core/pod-dialect.d.ts +10 -1
- package/dist/core/pod-dialect.d.ts.map +1 -1
- package/dist/core/pod-dialect.js +81 -2
- package/dist/core/pod-dialect.js.map +1 -1
- package/dist/core/query-builders/delete-query-builder.d.ts +7 -12
- package/dist/core/query-builders/delete-query-builder.d.ts.map +1 -1
- package/dist/core/query-builders/delete-query-builder.js +47 -20
- package/dist/core/query-builders/delete-query-builder.js.map +1 -1
- package/dist/core/query-builders/helpers.d.ts +7 -0
- package/dist/core/query-builders/helpers.d.ts.map +1 -1
- package/dist/core/query-builders/helpers.js +169 -0
- package/dist/core/query-builders/helpers.js.map +1 -1
- package/dist/core/query-builders/insert-query-builder.d.ts +10 -3
- package/dist/core/query-builders/insert-query-builder.d.ts.map +1 -1
- package/dist/core/query-builders/insert-query-builder.js +50 -6
- package/dist/core/query-builders/insert-query-builder.js.map +1 -1
- package/dist/core/query-builders/select-query-builder.d.ts +29 -1
- package/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
- package/dist/core/query-builders/select-query-builder.js +405 -85
- package/dist/core/query-builders/select-query-builder.js.map +1 -1
- package/dist/core/query-builders/types.d.ts +5 -3
- package/dist/core/query-builders/types.d.ts.map +1 -1
- package/dist/core/query-builders/update-query-builder.d.ts +8 -12
- package/dist/core/query-builders/update-query-builder.d.ts.map +1 -1
- package/dist/core/query-builders/update-query-builder.js +63 -21
- package/dist/core/query-builders/update-query-builder.js.map +1 -1
- package/dist/core/query-conditions.d.ts +17 -16
- package/dist/core/query-conditions.d.ts.map +1 -1
- package/dist/core/query-conditions.js.map +1 -1
- package/dist/core/resource-resolver/base-resolver.d.ts +8 -4
- package/dist/core/resource-resolver/base-resolver.d.ts.map +1 -1
- package/dist/core/resource-resolver/base-resolver.js +39 -36
- package/dist/core/resource-resolver/base-resolver.js.map +1 -1
- package/dist/core/resource-resolver/document-resolver.d.ts.map +1 -1
- package/dist/core/resource-resolver/document-resolver.js +75 -69
- package/dist/core/resource-resolver/document-resolver.js.map +1 -1
- package/dist/core/schema/pod-table.d.ts +1 -0
- package/dist/core/schema/pod-table.d.ts.map +1 -1
- package/dist/core/schema/pod-table.js +67 -0
- package/dist/core/schema/pod-table.js.map +1 -1
- package/dist/core/select-plan.d.ts +6 -3
- package/dist/core/select-plan.d.ts.map +1 -1
- package/dist/core/sparql/builder/expression-builder.d.ts +10 -0
- package/dist/core/sparql/builder/expression-builder.d.ts.map +1 -1
- package/dist/core/sparql/builder/expression-builder.js +27 -4
- package/dist/core/sparql/builder/expression-builder.js.map +1 -1
- package/dist/core/sparql/builder/select-builder.d.ts +9 -0
- package/dist/core/sparql/builder/select-builder.d.ts.map +1 -1
- package/dist/core/sparql/builder/select-builder.js +147 -2
- package/dist/core/sparql/builder/select-builder.js.map +1 -1
- package/dist/core/utils/debug-logger.d.ts +19 -0
- package/dist/core/utils/debug-logger.d.ts.map +1 -0
- package/dist/core/utils/debug-logger.js +59 -0
- package/dist/core/utils/debug-logger.js.map +1 -0
- package/dist/driver.d.ts +4 -0
- package/dist/driver.d.ts.map +1 -1
- package/dist/driver.js +1 -0
- package/dist/driver.js.map +1 -1
- package/dist/esm/core/expressions.d.ts +4 -0
- package/dist/esm/core/expressions.d.ts.map +1 -1
- package/dist/esm/core/expressions.js +6 -0
- package/dist/esm/core/expressions.js.map +1 -1
- package/dist/esm/core/order-by.d.ts +9 -0
- package/dist/esm/core/order-by.d.ts.map +1 -0
- package/dist/esm/core/order-by.js +15 -0
- package/dist/esm/core/order-by.js.map +1 -0
- package/dist/esm/core/pod-database.d.ts +6 -0
- package/dist/esm/core/pod-database.d.ts.map +1 -1
- package/dist/esm/core/pod-database.js +122 -32
- package/dist/esm/core/pod-database.js.map +1 -1
- package/dist/esm/core/pod-dialect.d.ts +10 -1
- package/dist/esm/core/pod-dialect.d.ts.map +1 -1
- package/dist/esm/core/pod-dialect.js +81 -2
- package/dist/esm/core/pod-dialect.js.map +1 -1
- package/dist/esm/core/query-builders/delete-query-builder.d.ts +7 -12
- package/dist/esm/core/query-builders/delete-query-builder.d.ts.map +1 -1
- package/dist/esm/core/query-builders/delete-query-builder.js +48 -21
- package/dist/esm/core/query-builders/delete-query-builder.js.map +1 -1
- package/dist/esm/core/query-builders/helpers.d.ts +7 -0
- package/dist/esm/core/query-builders/helpers.d.ts.map +1 -1
- package/dist/esm/core/query-builders/helpers.js +164 -0
- package/dist/esm/core/query-builders/helpers.js.map +1 -1
- package/dist/esm/core/query-builders/insert-query-builder.d.ts +10 -3
- package/dist/esm/core/query-builders/insert-query-builder.d.ts.map +1 -1
- package/dist/esm/core/query-builders/insert-query-builder.js +50 -6
- package/dist/esm/core/query-builders/insert-query-builder.js.map +1 -1
- package/dist/esm/core/query-builders/select-query-builder.d.ts +29 -1
- package/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
- package/dist/esm/core/query-builders/select-query-builder.js +407 -87
- package/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
- package/dist/esm/core/query-builders/types.d.ts +5 -3
- package/dist/esm/core/query-builders/types.d.ts.map +1 -1
- package/dist/esm/core/query-builders/update-query-builder.d.ts +8 -12
- package/dist/esm/core/query-builders/update-query-builder.d.ts.map +1 -1
- package/dist/esm/core/query-builders/update-query-builder.js +64 -22
- package/dist/esm/core/query-builders/update-query-builder.js.map +1 -1
- package/dist/esm/core/query-conditions.d.ts +17 -16
- package/dist/esm/core/query-conditions.d.ts.map +1 -1
- package/dist/esm/core/query-conditions.js.map +1 -1
- package/dist/esm/core/resource-resolver/base-resolver.d.ts +8 -4
- package/dist/esm/core/resource-resolver/base-resolver.d.ts.map +1 -1
- package/dist/esm/core/resource-resolver/base-resolver.js +39 -36
- package/dist/esm/core/resource-resolver/base-resolver.js.map +1 -1
- package/dist/esm/core/resource-resolver/document-resolver.d.ts.map +1 -1
- package/dist/esm/core/resource-resolver/document-resolver.js +75 -69
- package/dist/esm/core/resource-resolver/document-resolver.js.map +1 -1
- package/dist/esm/core/schema/pod-table.d.ts +1 -0
- package/dist/esm/core/schema/pod-table.d.ts.map +1 -1
- package/dist/esm/core/schema/pod-table.js +66 -0
- package/dist/esm/core/schema/pod-table.js.map +1 -1
- package/dist/esm/core/select-plan.d.ts +6 -3
- package/dist/esm/core/select-plan.d.ts.map +1 -1
- package/dist/esm/core/sparql/builder/expression-builder.d.ts +10 -0
- package/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -1
- package/dist/esm/core/sparql/builder/expression-builder.js +27 -4
- package/dist/esm/core/sparql/builder/expression-builder.js.map +1 -1
- package/dist/esm/core/sparql/builder/select-builder.d.ts +9 -0
- package/dist/esm/core/sparql/builder/select-builder.d.ts.map +1 -1
- package/dist/esm/core/sparql/builder/select-builder.js +148 -3
- package/dist/esm/core/sparql/builder/select-builder.js.map +1 -1
- package/dist/esm/core/utils/debug-logger.d.ts +19 -0
- package/dist/esm/core/utils/debug-logger.d.ts.map +1 -0
- package/dist/esm/core/utils/debug-logger.js +53 -0
- package/dist/esm/core/utils/debug-logger.js.map +1 -0
- package/dist/esm/driver.d.ts +4 -0
- package/dist/esm/driver.d.ts.map +1 -1
- package/dist/esm/driver.js +1 -0
- package/dist/esm/driver.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/package.json +17 -6
|
@@ -1,4 +1,35 @@
|
|
|
1
1
|
import { BinaryExpression, LogicalExpression, UnaryExpression } from '../expressions';
|
|
2
|
+
import { PodColumnBase, PodTable } from '../schema';
|
|
3
|
+
export function inferSPARQLQueryType(query) {
|
|
4
|
+
const withoutComments = query
|
|
5
|
+
.replace(/^\s*#.*$/gm, '')
|
|
6
|
+
.trim();
|
|
7
|
+
const withoutProlog = withoutComments
|
|
8
|
+
.replace(/^(?:\s*(?:PREFIX|BASE)\s+[^\n]+\n)*/i, '')
|
|
9
|
+
.trim();
|
|
10
|
+
const firstKeyword = withoutProlog
|
|
11
|
+
.match(/^(SELECT|ASK|INSERT|DELETE|UPDATE|WITH|LOAD|CLEAR|CREATE|DROP|COPY|MOVE|ADD|CONSTRUCT|DESCRIBE)\b/i)?.[1]
|
|
12
|
+
?.toUpperCase();
|
|
13
|
+
switch (firstKeyword) {
|
|
14
|
+
case 'SELECT':
|
|
15
|
+
case 'ASK':
|
|
16
|
+
case 'INSERT':
|
|
17
|
+
case 'DELETE':
|
|
18
|
+
case 'UPDATE':
|
|
19
|
+
return firstKeyword;
|
|
20
|
+
case 'WITH':
|
|
21
|
+
case 'LOAD':
|
|
22
|
+
case 'CLEAR':
|
|
23
|
+
case 'CREATE':
|
|
24
|
+
case 'DROP':
|
|
25
|
+
case 'COPY':
|
|
26
|
+
case 'MOVE':
|
|
27
|
+
case 'ADD':
|
|
28
|
+
return 'UPDATE';
|
|
29
|
+
default:
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
2
33
|
export function createLiteralCondition(alias, column, value) {
|
|
3
34
|
const colRef = alias ? `${alias}.${column}` : column;
|
|
4
35
|
if (value === undefined || value === null) {
|
|
@@ -23,4 +54,137 @@ export function buildConditionTreeFromObject(conditions, alias) {
|
|
|
23
54
|
}
|
|
24
55
|
return new LogicalExpression('AND', nodes);
|
|
25
56
|
}
|
|
57
|
+
export function resolveRowSubject(row) {
|
|
58
|
+
if (!row || typeof row !== 'object') {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
if (typeof row['@id'] === 'string' && row['@id'].length > 0) {
|
|
62
|
+
return row['@id'];
|
|
63
|
+
}
|
|
64
|
+
if (typeof row.subject === 'string' && row.subject.length > 0) {
|
|
65
|
+
return row.subject;
|
|
66
|
+
}
|
|
67
|
+
if (typeof row.uri === 'string' && row.uri.length > 0) {
|
|
68
|
+
return row.uri;
|
|
69
|
+
}
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
export function orderRowsBySubjects(rows, subjects) {
|
|
73
|
+
if (!rows.length || !subjects.length) {
|
|
74
|
+
return rows;
|
|
75
|
+
}
|
|
76
|
+
const grouped = new Map();
|
|
77
|
+
const unmatched = [];
|
|
78
|
+
for (const row of rows) {
|
|
79
|
+
const subject = resolveRowSubject(row);
|
|
80
|
+
if (!subject) {
|
|
81
|
+
unmatched.push(row);
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
const existing = grouped.get(subject) ?? [];
|
|
85
|
+
existing.push(row);
|
|
86
|
+
grouped.set(subject, existing);
|
|
87
|
+
}
|
|
88
|
+
const ordered = [];
|
|
89
|
+
for (const subject of subjects) {
|
|
90
|
+
const matches = grouped.get(subject);
|
|
91
|
+
if (matches?.length) {
|
|
92
|
+
ordered.push(...matches);
|
|
93
|
+
grouped.delete(subject);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
for (const matches of grouped.values()) {
|
|
97
|
+
ordered.push(...matches);
|
|
98
|
+
}
|
|
99
|
+
ordered.push(...unmatched);
|
|
100
|
+
return ordered;
|
|
101
|
+
}
|
|
102
|
+
function isSelectFieldMap(field) {
|
|
103
|
+
return !!field
|
|
104
|
+
&& typeof field === 'object'
|
|
105
|
+
&& !(field instanceof PodColumnBase)
|
|
106
|
+
&& !(field instanceof PodTable)
|
|
107
|
+
&& !('aggregateType' in field);
|
|
108
|
+
}
|
|
109
|
+
function resolveFieldBindingCandidates(alias, field) {
|
|
110
|
+
const candidates = new Set();
|
|
111
|
+
if (typeof field === 'string') {
|
|
112
|
+
candidates.add(field);
|
|
113
|
+
if (field.includes('.')) {
|
|
114
|
+
const [fieldAlias, column] = field.split('.', 2);
|
|
115
|
+
if (column) {
|
|
116
|
+
candidates.add(`${fieldAlias}.${column}`);
|
|
117
|
+
candidates.add(column);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else if (field instanceof PodColumnBase) {
|
|
122
|
+
if (field.table?.config?.name) {
|
|
123
|
+
candidates.add(`${field.table.config.name}.${field.name}`);
|
|
124
|
+
}
|
|
125
|
+
candidates.add(field.name);
|
|
126
|
+
}
|
|
127
|
+
return Array.from(candidates);
|
|
128
|
+
}
|
|
129
|
+
function isEmptyProjectedValue(value) {
|
|
130
|
+
if (value === undefined || value === null) {
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
if (Array.isArray(value)) {
|
|
134
|
+
return value.length === 0;
|
|
135
|
+
}
|
|
136
|
+
if (typeof value === 'object') {
|
|
137
|
+
const entries = Object.values(value);
|
|
138
|
+
return entries.length > 0 && entries.every((entry) => isEmptyProjectedValue(entry));
|
|
139
|
+
}
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
function projectTableRow(row, table) {
|
|
143
|
+
const alias = table.config.name;
|
|
144
|
+
const projected = {};
|
|
145
|
+
let hasValue = false;
|
|
146
|
+
for (const columnName of Object.keys(table.columns)) {
|
|
147
|
+
const candidates = alias ? [`${alias}.${columnName}`, columnName] : [columnName];
|
|
148
|
+
const match = candidates.find((candidate) => row[candidate] !== undefined);
|
|
149
|
+
projected[columnName] = match ? row[match] : undefined;
|
|
150
|
+
if (projected[columnName] !== undefined) {
|
|
151
|
+
hasValue = true;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return hasValue ? projected : null;
|
|
155
|
+
}
|
|
156
|
+
function projectFieldValue(row, alias, field) {
|
|
157
|
+
if (field instanceof PodTable) {
|
|
158
|
+
return projectTableRow(row, field);
|
|
159
|
+
}
|
|
160
|
+
if (isSelectFieldMap(field)) {
|
|
161
|
+
const projected = {};
|
|
162
|
+
for (const [nestedKey, nestedField] of Object.entries(field)) {
|
|
163
|
+
projected[nestedKey] = projectFieldValue(row, nestedKey, nestedField);
|
|
164
|
+
}
|
|
165
|
+
return isEmptyProjectedValue(projected) ? null : projected;
|
|
166
|
+
}
|
|
167
|
+
for (const candidate of resolveFieldBindingCandidates(alias, field)) {
|
|
168
|
+
if (row[candidate] !== undefined) {
|
|
169
|
+
return row[candidate];
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return row[alias];
|
|
173
|
+
}
|
|
174
|
+
export function projectReturningRow(row, fields) {
|
|
175
|
+
if (!fields || fields === true) {
|
|
176
|
+
return row;
|
|
177
|
+
}
|
|
178
|
+
const projected = {};
|
|
179
|
+
for (const [alias, field] of Object.entries(fields)) {
|
|
180
|
+
projected[alias] = projectFieldValue(row, alias, field);
|
|
181
|
+
}
|
|
182
|
+
return projected;
|
|
183
|
+
}
|
|
184
|
+
export function projectReturningRows(rows, fields) {
|
|
185
|
+
if (!fields || fields === true) {
|
|
186
|
+
return rows;
|
|
187
|
+
}
|
|
188
|
+
return rows.map((row) => projectReturningRow(row, fields));
|
|
189
|
+
}
|
|
26
190
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/core/query-builders/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/core/query-builders/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import { entityKind, SQL } from 'drizzle-orm';
|
|
2
|
-
import { PodTable, InferInsertData
|
|
2
|
+
import { PodTable, InferInsertData } from '../schema';
|
|
3
3
|
import { PodAsyncSession } from '../pod-session';
|
|
4
|
-
import { InsertQueryPlan } from './types';
|
|
4
|
+
import { InsertQueryPlan, type SelectFieldMap } from './types';
|
|
5
5
|
export declare class InsertQueryBuilder<TTable extends PodTable<any> = PodTable<any>> {
|
|
6
6
|
session: PodAsyncSession;
|
|
7
7
|
table: TTable;
|
|
8
8
|
static readonly [entityKind] = "InsertQueryBuilder";
|
|
9
9
|
insertValues?: InferInsertData<TTable> | InferInsertData<TTable>[];
|
|
10
10
|
sql?: SQL;
|
|
11
|
+
private returningFields?;
|
|
11
12
|
constructor(session: PodAsyncSession, table: TTable);
|
|
12
13
|
values(values: InferInsertData<TTable> | InferInsertData<TTable>[] | SQL): this;
|
|
14
|
+
returning(fields?: SelectFieldMap): this;
|
|
13
15
|
toIR: () => InsertQueryPlan<TTable>;
|
|
14
|
-
|
|
16
|
+
private buildSPARQLQuery;
|
|
17
|
+
toSPARQL(): import("../ast-to-sparql").SPARQLQuery;
|
|
18
|
+
toSparql(): import("../ast-to-sparql").SPARQLQuery;
|
|
19
|
+
execute(): Promise<any[]>;
|
|
15
20
|
then<TResult1 = Awaited<ReturnType<InsertQueryBuilder<TTable>['execute']>>, TResult2 = never>(onfulfilled?: ((value: Awaited<ReturnType<InsertQueryBuilder<TTable>['execute']>>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
|
|
21
|
+
private fetchReturningRowsBySubjects;
|
|
22
|
+
private getSubjectUris;
|
|
16
23
|
/**
|
|
17
24
|
* Run afterInsert hooks for all inserted records.
|
|
18
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-query-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/query-builders/insert-query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAiB,eAAe,
|
|
1
|
+
{"version":3,"file":"insert-query-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/query-builders/insert-query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAiB,eAAe,EAAe,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,eAAe,EAAgB,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAG/D,qBAAa,kBAAkB,CAAC,MAAM,SAAS,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;IAQjE,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,MAAM;IARtB,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,wBAAwB;IAE7C,YAAY,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IACnE,GAAG,CAAC,EAAE,GAAG,CAAC;IACjB,OAAO,CAAC,eAAe,CAAC,CAAwB;gBAGvC,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM;IAGtB,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG;IASxE,SAAS,CAAC,MAAM,CAAC,EAAE,cAAc;IAK1B,IAAI,QAAO,eAAe,CAAC,MAAM,CAAC,CAMvC;IAGF,OAAO,CAAC,gBAAgB;IAkBxB,QAAQ;IAIR,QAAQ;IAIF,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IA+B/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC1F,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EAC1I,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAClF,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAIjB,4BAA4B;IAS1C,OAAO,CAAC,cAAc;IAStB;;OAEG;YACW,mBAAmB;IAqBjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,kBAAkB;CAe3B"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
var _a;
|
|
2
2
|
import { entityKind, SQL } from 'drizzle-orm';
|
|
3
|
+
import { generateSubjectUri } from '../sparql/helpers';
|
|
4
|
+
import { inferSPARQLQueryType, orderRowsBySubjects, projectReturningRows } from './helpers';
|
|
3
5
|
export class InsertQueryBuilder {
|
|
4
6
|
constructor(session, table) {
|
|
5
7
|
this.session = session;
|
|
@@ -21,12 +23,41 @@ export class InsertQueryBuilder {
|
|
|
21
23
|
}
|
|
22
24
|
return this;
|
|
23
25
|
}
|
|
26
|
+
returning(fields) {
|
|
27
|
+
this.returningFields = fields ?? true;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
buildSPARQLQuery(methodName = 'toSPARQL()') {
|
|
31
|
+
if (this.sql) {
|
|
32
|
+
const query = this.sql.queryChunks.join('');
|
|
33
|
+
const type = inferSPARQLQueryType(query);
|
|
34
|
+
if (!type) {
|
|
35
|
+
throw new Error(`${methodName} could not infer SPARQL query type from raw AST input`);
|
|
36
|
+
}
|
|
37
|
+
return { type, query, prefixes: {} };
|
|
38
|
+
}
|
|
39
|
+
const converter = this.session.getDialect().getSPARQLConverter?.();
|
|
40
|
+
if (!converter) {
|
|
41
|
+
throw new Error(`${methodName} requires dialect SPARQL converter support`);
|
|
42
|
+
}
|
|
43
|
+
return converter.convertInsert(this.toIR());
|
|
44
|
+
}
|
|
45
|
+
toSPARQL() {
|
|
46
|
+
return this.buildSPARQLQuery('toSPARQL()');
|
|
47
|
+
}
|
|
48
|
+
toSparql() {
|
|
49
|
+
return this.toSPARQL();
|
|
50
|
+
}
|
|
24
51
|
async execute() {
|
|
25
52
|
if (this.sql) {
|
|
53
|
+
if (this.returningFields) {
|
|
54
|
+
throw new Error('returning() is not supported for raw SQL insert in Solid dialect');
|
|
55
|
+
}
|
|
26
56
|
return await this.session.executeSql(this.sql, this.table);
|
|
27
57
|
}
|
|
28
58
|
else if (this.insertValues) {
|
|
29
59
|
const rows = this.getRowsWithDefaults();
|
|
60
|
+
const subjects = this.returningFields ? this.getSubjectUris(rows) : [];
|
|
30
61
|
const operation = {
|
|
31
62
|
type: 'insert',
|
|
32
63
|
table: this.table,
|
|
@@ -37,9 +68,11 @@ export class InsertQueryBuilder {
|
|
|
37
68
|
}
|
|
38
69
|
};
|
|
39
70
|
const results = await this.session.execute(operation);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
71
|
+
const finalResults = this.returningFields
|
|
72
|
+
? await this.fetchReturningRowsBySubjects(subjects)
|
|
73
|
+
: results;
|
|
74
|
+
await this.runAfterInsertHooks(finalResults);
|
|
75
|
+
return finalResults;
|
|
43
76
|
}
|
|
44
77
|
else {
|
|
45
78
|
throw new Error('No values specified for INSERT query');
|
|
@@ -48,6 +81,20 @@ export class InsertQueryBuilder {
|
|
|
48
81
|
then(onfulfilled, onrejected) {
|
|
49
82
|
return this.execute().then(onfulfilled, onrejected);
|
|
50
83
|
}
|
|
84
|
+
async fetchReturningRowsBySubjects(subjects) {
|
|
85
|
+
if (subjects.length === 0) {
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
const rows = await this.session.select().from(this.table).whereByIri(subjects);
|
|
89
|
+
return projectReturningRows(orderRowsBySubjects(rows, subjects), this.returningFields);
|
|
90
|
+
}
|
|
91
|
+
getSubjectUris(rows) {
|
|
92
|
+
const resolver = this.session.getDialect().getUriResolver?.();
|
|
93
|
+
if (!resolver) {
|
|
94
|
+
throw new Error('returning() requires dialect URI resolver support');
|
|
95
|
+
}
|
|
96
|
+
return rows.map((row) => generateSubjectUri(row, this.table, resolver));
|
|
97
|
+
}
|
|
51
98
|
/**
|
|
52
99
|
* Run afterInsert hooks for all inserted records.
|
|
53
100
|
*/
|
|
@@ -56,20 +103,17 @@ export class InsertQueryBuilder {
|
|
|
56
103
|
if (!hooks?.afterInsert) {
|
|
57
104
|
return;
|
|
58
105
|
}
|
|
59
|
-
// Build hook context
|
|
60
106
|
const ctx = this.buildHookContext();
|
|
61
107
|
if (!ctx) {
|
|
62
108
|
console.warn('[InsertQueryBuilder] Cannot run hooks: missing session info');
|
|
63
109
|
return;
|
|
64
110
|
}
|
|
65
|
-
// Run hook for each inserted record
|
|
66
111
|
for (const record of results) {
|
|
67
112
|
try {
|
|
68
113
|
await hooks.afterInsert(ctx, record);
|
|
69
114
|
}
|
|
70
115
|
catch (error) {
|
|
71
116
|
console.error('[InsertQueryBuilder] afterInsert hook failed:', error);
|
|
72
|
-
// Don't throw - the insert succeeded, just the hook failed
|
|
73
117
|
}
|
|
74
118
|
}
|
|
75
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-query-builder.js","sourceRoot":"","sources":["../../../../src/core/query-builders/insert-query-builder.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"insert-query-builder.js","sourceRoot":"","sources":["../../../../src/core/query-builders/insert-query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import { PodTable, PodColumnBase, InferTableData } from '../schema';
|
|
|
3
3
|
import { QueryCondition } from '../query-conditions';
|
|
4
4
|
import { SelectQueryPlan } from '../select-plan';
|
|
5
5
|
import { SelectFieldMap, SessionInterface } from './types';
|
|
6
|
+
import { type OrderByExpression } from '../order-by';
|
|
7
|
+
import { SelectionAliasExpression } from '../expressions';
|
|
6
8
|
export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<any>> {
|
|
7
9
|
session: SessionInterface;
|
|
8
10
|
static readonly [entityKind] = "SelectQueryBuilder";
|
|
@@ -22,6 +24,7 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
|
|
|
22
24
|
private primaryAlias?;
|
|
23
25
|
private joinFilters;
|
|
24
26
|
private groupByColumns;
|
|
27
|
+
private havingCondition?;
|
|
25
28
|
constructor(session: SessionInterface, fields?: SelectFieldMap);
|
|
26
29
|
from<TJoinTable extends PodTable<any>>(table: TJoinTable): SelectQueryBuilder<TJoinTable>;
|
|
27
30
|
columns(fields: SelectFieldMap): this;
|
|
@@ -46,10 +49,15 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
|
|
|
46
49
|
rightJoin<TJoinTable extends PodTable<any>>(table: TJoinTable, condition: any): SelectQueryBuilder<TTable>;
|
|
47
50
|
innerJoin<TJoinTable extends PodTable<any>>(table: TJoinTable, condition: any): SelectQueryBuilder<TTable>;
|
|
48
51
|
fullJoin<TJoinTable extends PodTable<any>>(table: TJoinTable, condition: any): SelectQueryBuilder<TTable>;
|
|
52
|
+
crossJoin<TJoinTable extends PodTable<any>>(table: TJoinTable): SelectQueryBuilder<TTable>;
|
|
49
53
|
groupBy(...fields: Array<PodColumnBase | string>): SelectQueryBuilder<TTable>;
|
|
54
|
+
having(condition: QueryCondition | ((fields: Record<string, SelectionAliasExpression>) => QueryCondition)): SelectQueryBuilder<TTable>;
|
|
55
|
+
private createSelectedFieldAliases;
|
|
50
56
|
private addJoin;
|
|
51
57
|
private ensureAliasForTable;
|
|
52
58
|
private resolveJoinConditions;
|
|
59
|
+
private resolveJoinConditionExpression;
|
|
60
|
+
private getConditionColumnReference;
|
|
53
61
|
private resolveColumnReference;
|
|
54
62
|
private parseColumnReferenceString;
|
|
55
63
|
private processWhereObject;
|
|
@@ -59,11 +67,22 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
|
|
|
59
67
|
private buildQueryPlan;
|
|
60
68
|
limit(count: number): this;
|
|
61
69
|
offset(count: number): this;
|
|
62
|
-
|
|
70
|
+
private addOrderByClause;
|
|
71
|
+
orderBy(...args: Array<PodColumnBase | string | OrderByExpression | 'asc' | 'desc'>): this;
|
|
63
72
|
distinct(enable?: boolean): this;
|
|
73
|
+
private buildSPARQLQuery;
|
|
74
|
+
toSPARQL(): any;
|
|
75
|
+
toSparql(): any;
|
|
64
76
|
execute(): Promise<InferTableData<TTable>[]>;
|
|
65
77
|
private projectSelectedRow;
|
|
78
|
+
private projectFieldMap;
|
|
79
|
+
private projectFieldValue;
|
|
80
|
+
private projectTableValue;
|
|
81
|
+
private isSelectFieldMap;
|
|
82
|
+
private collectSelectionAliases;
|
|
83
|
+
private isProjectedValueEmpty;
|
|
66
84
|
private resolveFieldBindingCandidates;
|
|
85
|
+
private shouldUseProjectionFallback;
|
|
67
86
|
private shouldUseAggregateFallback;
|
|
68
87
|
private buildAggregateRow;
|
|
69
88
|
private computeAggregateValue;
|
|
@@ -75,6 +94,7 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
|
|
|
75
94
|
private buildGroupedAggregateRows;
|
|
76
95
|
private ensureGroupByValidity;
|
|
77
96
|
private resolveSelectFieldColumn;
|
|
97
|
+
private hasAggregateSelection;
|
|
78
98
|
private hasMixedAggregateSelection;
|
|
79
99
|
private applySubjectMetadata;
|
|
80
100
|
private attachSubjectMetadata;
|
|
@@ -87,8 +107,14 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
|
|
|
87
107
|
* 例如:http://pod/.data/chat/chat-123/index.ttl#this -> chat-123
|
|
88
108
|
*/
|
|
89
109
|
private resolveReferenceIds;
|
|
110
|
+
private normalizeInlinePredicateKey;
|
|
90
111
|
private normalizeInlineObjectValue;
|
|
91
112
|
private normalizeInlineIri;
|
|
113
|
+
private applyDeferredOrderBy;
|
|
114
|
+
private applyDistinctRows;
|
|
115
|
+
private applyDeferredOffsetAndLimit;
|
|
116
|
+
private getOrderByValue;
|
|
117
|
+
private compareOrderByValues;
|
|
92
118
|
private mergeRowsBySubject;
|
|
93
119
|
private inferSourceFromChild;
|
|
94
120
|
private isInlineObjectColumn;
|
|
@@ -98,10 +124,12 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
|
|
|
98
124
|
private mergeRowsWithJoin;
|
|
99
125
|
private createEmptyJoinRow;
|
|
100
126
|
private applyJoinFilters;
|
|
127
|
+
private applyHavingFilter;
|
|
101
128
|
private evaluateCondition;
|
|
102
129
|
private evaluateBinaryCondition;
|
|
103
130
|
private evaluateUnaryCondition;
|
|
104
131
|
private evaluateLogicalCondition;
|
|
132
|
+
private resolveConditionOperandValue;
|
|
105
133
|
private getColumnKeyCandidates;
|
|
106
134
|
private getRowValueForColumn;
|
|
107
135
|
private serializeValueForKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-query-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/query-builders/select-query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,cAAc,EAAW,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACQ,cAAc,EAAoD,gBAAgB,EAChG,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"select-query-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/query-builders/select-query-builder.ts"],"names":[],"mappings":"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"}
|