rawsql-ts 0.4.0-beta → 0.6.0-beta
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 +74 -9
- package/dist/esm/models/BinarySelectQuery.js +10 -0
- package/dist/esm/models/BinarySelectQuery.js.map +1 -1
- package/dist/esm/models/Clause.js +104 -6
- package/dist/esm/models/Clause.js.map +1 -1
- package/dist/esm/models/CreateTableQuery.js +1 -1
- package/dist/esm/models/CreateTableQuery.js.map +1 -1
- package/dist/esm/models/InsertQuery.js +2 -9
- package/dist/esm/models/InsertQuery.js.map +1 -1
- package/dist/esm/models/SelectQuery.js.map +1 -1
- package/dist/esm/models/SimpleSelectQuery.js +10 -0
- package/dist/esm/models/SimpleSelectQuery.js.map +1 -1
- package/dist/esm/models/UpdateQuery.js +25 -0
- package/dist/esm/models/UpdateQuery.js.map +1 -0
- package/dist/esm/models/ValueComponent.js +34 -15
- package/dist/esm/models/ValueComponent.js.map +1 -1
- package/dist/esm/models/ValuesQuery.js +10 -0
- package/dist/esm/models/ValuesQuery.js.map +1 -1
- package/dist/esm/parsers/FullNameParser.js +89 -0
- package/dist/esm/parsers/FullNameParser.js.map +1 -0
- package/dist/esm/parsers/FunctionExpressionParser.js +33 -32
- package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/parsers/IdentifierParser.js +5 -30
- package/dist/esm/parsers/IdentifierParser.js.map +1 -1
- package/dist/esm/parsers/InsertQueryParser.js +6 -27
- package/dist/esm/parsers/InsertQueryParser.js.map +1 -1
- package/dist/esm/parsers/ReturningClauseParser.js +31 -0
- package/dist/esm/parsers/ReturningClauseParser.js.map +1 -0
- package/dist/esm/parsers/SetClauseParser.js +39 -0
- package/dist/esm/parsers/SetClauseParser.js.map +1 -0
- package/dist/esm/parsers/SourceExpressionParser.js +19 -0
- package/dist/esm/parsers/SourceExpressionParser.js.map +1 -1
- package/dist/esm/parsers/SourceParser.js +16 -8
- package/dist/esm/parsers/SourceParser.js.map +1 -1
- package/dist/esm/parsers/UpdateClauseParser.js +17 -0
- package/dist/esm/parsers/UpdateClauseParser.js.map +1 -0
- package/dist/esm/parsers/UpdateQueryParser.js +84 -0
- package/dist/esm/parsers/UpdateQueryParser.js.map +1 -0
- package/dist/esm/parsers/ValueParser.js +13 -11
- package/dist/esm/parsers/ValueParser.js.map +1 -1
- package/dist/esm/transformers/CTEDisabler.js +2 -2
- package/dist/esm/transformers/CTEDisabler.js.map +1 -1
- package/dist/esm/transformers/Formatter.js +152 -25
- package/dist/esm/transformers/Formatter.js.map +1 -1
- package/dist/esm/transformers/ParameterCollector.js +33 -0
- package/dist/esm/transformers/ParameterCollector.js.map +1 -0
- package/dist/esm/transformers/QueryBuilder.js +54 -6
- package/dist/esm/transformers/QueryBuilder.js.map +1 -1
- package/dist/esm/transformers/SelectValueCollector.js +4 -4
- package/dist/esm/transformers/UpstreamSelectQueryFinder.js +1 -1
- package/dist/esm/types/models/BinarySelectQuery.d.ts +7 -1
- package/dist/esm/types/models/Clause.d.ts +58 -4
- package/dist/esm/types/models/InsertQuery.d.ts +4 -9
- package/dist/esm/types/models/SelectQuery.d.ts +4 -1
- package/dist/esm/types/models/SimpleSelectQuery.d.ts +7 -1
- package/dist/esm/types/models/UpdateQuery.d.ts +31 -0
- package/dist/esm/types/models/ValueComponent.d.ts +14 -5
- package/dist/esm/types/models/ValuesQuery.d.ts +8 -1
- package/dist/esm/types/parsers/FullNameParser.d.ts +26 -0
- package/dist/esm/types/parsers/InsertQueryParser.d.ts +0 -1
- package/dist/esm/types/parsers/ReturningClauseParser.d.ts +12 -0
- package/dist/esm/types/parsers/SetClauseParser.d.ts +11 -0
- package/dist/esm/types/parsers/SourceExpressionParser.d.ts +8 -0
- package/dist/esm/types/parsers/SourceParser.d.ts +14 -0
- package/dist/esm/types/parsers/UpdateClauseParser.d.ts +15 -0
- package/dist/esm/types/parsers/UpdateQueryParser.d.ts +16 -0
- package/dist/esm/types/transformers/Formatter.d.ts +18 -3
- package/dist/esm/types/transformers/ParameterCollector.d.ts +12 -0
- package/dist/esm/types/transformers/QueryBuilder.d.ts +9 -0
- package/dist/esm/types/utils/ParameterHelper.d.ts +14 -0
- package/dist/esm/utils/ParameterHelper.js +27 -0
- package/dist/esm/utils/ParameterHelper.js.map +1 -0
- package/dist/models/BinarySelectQuery.d.ts +7 -1
- package/dist/models/BinarySelectQuery.js +10 -0
- package/dist/models/BinarySelectQuery.js.map +1 -1
- package/dist/models/Clause.d.ts +58 -4
- package/dist/models/Clause.js +110 -7
- package/dist/models/Clause.js.map +1 -1
- package/dist/models/CreateTableQuery.js +1 -1
- package/dist/models/CreateTableQuery.js.map +1 -1
- package/dist/models/InsertQuery.d.ts +4 -9
- package/dist/models/InsertQuery.js +2 -9
- package/dist/models/InsertQuery.js.map +1 -1
- package/dist/models/SelectQuery.d.ts +4 -1
- package/dist/models/SelectQuery.js.map +1 -1
- package/dist/models/SimpleSelectQuery.d.ts +7 -1
- package/dist/models/SimpleSelectQuery.js +10 -0
- package/dist/models/SimpleSelectQuery.js.map +1 -1
- package/dist/models/UpdateQuery.d.ts +31 -0
- package/dist/models/UpdateQuery.js +29 -0
- package/dist/models/UpdateQuery.js.map +1 -0
- package/dist/models/ValueComponent.d.ts +14 -5
- package/dist/models/ValueComponent.js +34 -15
- package/dist/models/ValueComponent.js.map +1 -1
- package/dist/models/ValuesQuery.d.ts +8 -1
- package/dist/models/ValuesQuery.js +10 -0
- package/dist/models/ValuesQuery.js.map +1 -1
- package/dist/parsers/FullNameParser.d.ts +26 -0
- package/dist/parsers/FullNameParser.js +93 -0
- package/dist/parsers/FullNameParser.js.map +1 -0
- package/dist/parsers/FunctionExpressionParser.js +32 -31
- package/dist/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/parsers/IdentifierParser.js +5 -30
- package/dist/parsers/IdentifierParser.js.map +1 -1
- package/dist/parsers/InsertQueryParser.d.ts +0 -1
- package/dist/parsers/InsertQueryParser.js +6 -27
- package/dist/parsers/InsertQueryParser.js.map +1 -1
- package/dist/parsers/ReturningClauseParser.d.ts +12 -0
- package/dist/parsers/ReturningClauseParser.js +35 -0
- package/dist/parsers/ReturningClauseParser.js.map +1 -0
- package/dist/parsers/SetClauseParser.d.ts +11 -0
- package/dist/parsers/SetClauseParser.js +43 -0
- package/dist/parsers/SetClauseParser.js.map +1 -0
- package/dist/parsers/SourceExpressionParser.d.ts +8 -0
- package/dist/parsers/SourceExpressionParser.js +19 -0
- package/dist/parsers/SourceExpressionParser.js.map +1 -1
- package/dist/parsers/SourceParser.d.ts +14 -0
- package/dist/parsers/SourceParser.js +16 -8
- package/dist/parsers/SourceParser.js.map +1 -1
- package/dist/parsers/UpdateClauseParser.d.ts +15 -0
- package/dist/parsers/UpdateClauseParser.js +21 -0
- package/dist/parsers/UpdateClauseParser.js.map +1 -0
- package/dist/parsers/UpdateQueryParser.d.ts +16 -0
- package/dist/parsers/UpdateQueryParser.js +88 -0
- package/dist/parsers/UpdateQueryParser.js.map +1 -0
- package/dist/parsers/ValueParser.js +13 -11
- package/dist/parsers/ValueParser.js.map +1 -1
- package/dist/transformers/CTEDisabler.js +2 -2
- package/dist/transformers/CTEDisabler.js.map +1 -1
- package/dist/transformers/Formatter.d.ts +18 -3
- package/dist/transformers/Formatter.js +152 -25
- package/dist/transformers/Formatter.js.map +1 -1
- package/dist/transformers/ParameterCollector.d.ts +12 -0
- package/dist/transformers/ParameterCollector.js +37 -0
- package/dist/transformers/ParameterCollector.js.map +1 -0
- package/dist/transformers/QueryBuilder.d.ts +9 -0
- package/dist/transformers/QueryBuilder.js +53 -5
- package/dist/transformers/QueryBuilder.js.map +1 -1
- package/dist/transformers/SelectValueCollector.js +4 -4
- package/dist/transformers/UpstreamSelectQueryFinder.js +1 -1
- package/dist/utils/ParameterHelper.d.ts +14 -0
- package/dist/utils/ParameterHelper.js +31 -0
- package/dist/utils/ParameterHelper.js.map +1 -0
- package/package.json +2 -2
- package/dist/esm/types/utils/extractNamespacesAndName.d.ts +0 -5
- package/dist/esm/types/utils/parseEscapedOrDotSeparatedIdentifiers.d.ts +0 -9
- package/dist/esm/utils/extractNamespacesAndName.js +0 -16
- package/dist/esm/utils/extractNamespacesAndName.js.map +0 -1
- package/dist/esm/utils/parseEscapedOrDotSeparatedIdentifiers.js +0 -39
- package/dist/esm/utils/parseEscapedOrDotSeparatedIdentifiers.js.map +0 -1
- package/dist/utils/extractNamespacesAndName.d.ts +0 -5
- package/dist/utils/extractNamespacesAndName.js +0 -18
- package/dist/utils/extractNamespacesAndName.js.map +0 -1
- package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.d.ts +0 -9
- package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.js +0 -42
- package/dist/utils/parseEscapedOrDotSeparatedIdentifiers.js.map +0 -1
@@ -76,7 +76,7 @@ export declare class TableSource extends SqlComponent {
|
|
76
76
|
namespaces: IdentifierString[] | null;
|
77
77
|
table: IdentifierString;
|
78
78
|
identifier: IdentifierString;
|
79
|
-
constructor(namespaces: string[] | null, table: string);
|
79
|
+
constructor(namespaces: string[] | IdentifierString[] | null, table: string | IdentifierString);
|
80
80
|
getSourceName(): string;
|
81
81
|
}
|
82
82
|
export declare class FunctionSource extends SqlComponent {
|
@@ -120,14 +120,14 @@ export declare class JoinClause extends SqlComponent {
|
|
120
120
|
condition: JoinConditionComponent | null;
|
121
121
|
lateral: boolean;
|
122
122
|
constructor(joinType: string, source: SourceExpression, condition: JoinConditionComponent | null, lateral: boolean);
|
123
|
-
|
123
|
+
getSourceAliasName(): string | null;
|
124
124
|
}
|
125
125
|
export declare class FromClause extends SqlComponent {
|
126
126
|
static kind: symbol;
|
127
127
|
source: SourceExpression;
|
128
128
|
joins: JoinClause[] | null;
|
129
129
|
constructor(source: SourceExpression, join: JoinClause[] | null);
|
130
|
-
|
130
|
+
getSourceAliasName(): string | null;
|
131
131
|
/**
|
132
132
|
* Returns all SourceExpression objects in this FROM clause, including main source and all JOIN sources.
|
133
133
|
*/
|
@@ -139,7 +139,7 @@ export declare class CommonTable extends SqlComponent {
|
|
139
139
|
materialized: boolean | null;
|
140
140
|
aliasExpression: SourceAliasExpression;
|
141
141
|
constructor(query: SelectQuery, aliasExpression: SourceAliasExpression | string, materialized: boolean | null);
|
142
|
-
|
142
|
+
getSourceAliasName(): string;
|
143
143
|
}
|
144
144
|
export declare class WithClause extends SqlComponent {
|
145
145
|
static kind: symbol;
|
@@ -186,3 +186,57 @@ export declare class SourceAliasExpression extends SqlComponent {
|
|
186
186
|
columns: IdentifierString[] | null;
|
187
187
|
constructor(alias: string, columnAlias: string[] | null);
|
188
188
|
}
|
189
|
+
export declare class ReturningClause extends SqlComponent {
|
190
|
+
static kind: symbol;
|
191
|
+
columns: IdentifierString[];
|
192
|
+
/**
|
193
|
+
* Constructs a ReturningClause.
|
194
|
+
* @param columns Array of IdentifierString or string representing column names.
|
195
|
+
*/
|
196
|
+
constructor(columns: (IdentifierString | string)[]);
|
197
|
+
}
|
198
|
+
export declare class SetClause extends SqlComponent {
|
199
|
+
static kind: symbol;
|
200
|
+
items: SetClauseItem[];
|
201
|
+
constructor(items: (SetClauseItem | {
|
202
|
+
column: string | IdentifierString;
|
203
|
+
value: ValueComponent;
|
204
|
+
})[]);
|
205
|
+
}
|
206
|
+
/**
|
207
|
+
* Represents a single SET clause item in an UPDATE statement.
|
208
|
+
*/
|
209
|
+
/**
|
210
|
+
* Represents a single SET clause item in an UPDATE statement.
|
211
|
+
* Now supports namespaces for fully qualified column names (e.g. schema.table.column).
|
212
|
+
*/
|
213
|
+
export declare class SetClauseItem extends SqlComponent {
|
214
|
+
static kind: symbol;
|
215
|
+
namespaces: IdentifierString[] | null;
|
216
|
+
column: IdentifierString;
|
217
|
+
value: ValueComponent;
|
218
|
+
constructor(column: string | IdentifierString | {
|
219
|
+
namespaces: string[] | IdentifierString[] | null;
|
220
|
+
column: string | IdentifierString;
|
221
|
+
}, value: ValueComponent);
|
222
|
+
/**
|
223
|
+
* Returns the fully qualified column name as a string.
|
224
|
+
*/
|
225
|
+
getFullName(): string;
|
226
|
+
}
|
227
|
+
export declare class UpdateClause extends SqlComponent {
|
228
|
+
static kind: symbol;
|
229
|
+
source: SourceExpression;
|
230
|
+
constructor(source: SourceExpression);
|
231
|
+
getSourceAliasName(): string | null;
|
232
|
+
}
|
233
|
+
/**
|
234
|
+
* Represents the target table (with optional alias/schema) and columns for an INSERT statement.
|
235
|
+
* @param source The target table as a SourceExpression (can include schema, alias, etc.)
|
236
|
+
* @param columns Array of column names (as strings)
|
237
|
+
*/
|
238
|
+
export declare class InsertClause extends SqlComponent {
|
239
|
+
source: SourceExpression;
|
240
|
+
columns: string[];
|
241
|
+
constructor(source: SourceExpression, columns: string[]);
|
242
|
+
}
|
@@ -1,21 +1,16 @@
|
|
1
1
|
import { SqlComponent } from "./SqlComponent";
|
2
|
-
import { IdentifierString } from "./ValueComponent";
|
3
2
|
import { SelectQuery } from "./SelectQuery";
|
3
|
+
import { InsertClause } from "./Clause";
|
4
4
|
export declare class InsertQuery extends SqlComponent {
|
5
5
|
static kind: symbol;
|
6
|
-
|
7
|
-
table: IdentifierString;
|
8
|
-
columns: IdentifierString[];
|
6
|
+
insertClause: InsertClause;
|
9
7
|
selectQuery: SelectQuery | null;
|
10
8
|
/**
|
11
|
-
* @param params.
|
12
|
-
* @param params.columns Array of column names (string[] or IdentifierString[])
|
9
|
+
* @param params.insertClause InsertClause instance (target table and columns)
|
13
10
|
* @param params.selectQuery SELECT/VALUES query (required)
|
14
11
|
*/
|
15
12
|
constructor(params: {
|
16
|
-
|
17
|
-
table: string | IdentifierString;
|
18
|
-
columns: (string | IdentifierString)[];
|
13
|
+
insertClause: InsertClause;
|
19
14
|
selectQuery?: SelectQuery | null;
|
20
15
|
});
|
21
16
|
}
|
@@ -1,6 +1,9 @@
|
|
1
|
+
import { SqlComponent } from "./SqlComponent";
|
1
2
|
import { InsertQuery } from "./InsertQuery";
|
2
3
|
import { SimpleSelectQuery } from "./SimpleSelectQuery";
|
3
4
|
import { BinarySelectQuery } from "./BinarySelectQuery";
|
4
5
|
import { ValuesQuery } from "./ValuesQuery";
|
5
|
-
export
|
6
|
+
export interface SelectQuery extends SqlComponent {
|
7
|
+
setParameter(name: string, value: any): this;
|
8
|
+
}
|
6
9
|
export { SimpleSelectQuery, BinarySelectQuery, ValuesQuery, InsertQuery };
|
@@ -7,7 +7,7 @@ import { TableColumnResolver } from "../transformers/TableColumnResolver";
|
|
7
7
|
/**
|
8
8
|
* Represents a simple SELECT query in SQL.
|
9
9
|
*/
|
10
|
-
export declare class SimpleSelectQuery extends SqlComponent {
|
10
|
+
export declare class SimpleSelectQuery extends SqlComponent implements SelectQuery {
|
11
11
|
static kind: symbol;
|
12
12
|
WithClause: WithClause | null;
|
13
13
|
selectClause: SelectClause;
|
@@ -195,4 +195,10 @@ export declare class SimpleSelectQuery extends SqlComponent {
|
|
195
195
|
appendWhereExpr(columnName: string, exprBuilder: (expr: string) => string, options?: {
|
196
196
|
upstream?: boolean;
|
197
197
|
}): void;
|
198
|
+
/**
|
199
|
+
* Sets the value of a parameter by name in this query.
|
200
|
+
* @param name Parameter name
|
201
|
+
* @param value Value to set
|
202
|
+
*/
|
203
|
+
setParameter(name: string, value: any): this;
|
198
204
|
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { SqlComponent } from "./SqlComponent";
|
2
|
+
import { IdentifierString, ValueComponent } from "./ValueComponent";
|
3
|
+
import { FromClause, ReturningClause, SetClause, WhereClause, UpdateClause } from "./Clause";
|
4
|
+
import { WithClause } from "./Clause";
|
5
|
+
export declare class UpdateQuery extends SqlComponent {
|
6
|
+
static kind: symbol;
|
7
|
+
withClause: WithClause | null;
|
8
|
+
updateClause: UpdateClause;
|
9
|
+
setClause: SetClause;
|
10
|
+
whereClause: WhereClause | null;
|
11
|
+
fromClause: FromClause | null;
|
12
|
+
returningClause: ReturningClause | null;
|
13
|
+
/**
|
14
|
+
* @param params.source SourceExpression (table or subquery with optional alias)
|
15
|
+
* @param params.setClause SetClause instance or array of {column, value} pairs
|
16
|
+
* @param params.where WHERE clause (optional)
|
17
|
+
* @param params.from FROM clause (optional)
|
18
|
+
* @param params.returning RETURNING clause (optional)
|
19
|
+
*/
|
20
|
+
constructor(params: {
|
21
|
+
withClause?: WithClause | null;
|
22
|
+
updateClause: UpdateClause;
|
23
|
+
setClause: SetClause | {
|
24
|
+
column: string | IdentifierString;
|
25
|
+
value: ValueComponent;
|
26
|
+
}[];
|
27
|
+
whereClause?: WhereClause | null;
|
28
|
+
fromClause?: FromClause | null;
|
29
|
+
returning?: ReturningClause | null;
|
30
|
+
});
|
31
|
+
}
|
@@ -16,16 +16,17 @@ export declare class ColumnReference extends SqlComponent {
|
|
16
16
|
static kind: symbol;
|
17
17
|
namespaces: IdentifierString[] | null;
|
18
18
|
column: IdentifierString;
|
19
|
-
constructor(namespaces: string | string[] | null, column: string);
|
19
|
+
constructor(namespaces: string | string[] | IdentifierString[] | null, column: string | IdentifierString);
|
20
20
|
toString(): string;
|
21
21
|
getNamespace(): string;
|
22
22
|
}
|
23
23
|
export declare class FunctionCall extends SqlComponent {
|
24
24
|
static kind: symbol;
|
25
|
+
namespaces: IdentifierString[] | null;
|
25
26
|
name: RawString;
|
26
27
|
argument: ValueComponent | null;
|
27
28
|
over: OverExpression | null;
|
28
|
-
constructor(name: string, argument: ValueComponent | null, over: OverExpression | null);
|
29
|
+
constructor(namespaces: string[] | IdentifierString[] | null, name: string | RawString, argument: ValueComponent | null, over: OverExpression | null);
|
29
30
|
}
|
30
31
|
export type OverExpression = WindowFrameExpression | IdentifierString;
|
31
32
|
export declare enum WindowFrameType {
|
@@ -85,7 +86,13 @@ export declare class LiteralValue extends SqlComponent {
|
|
85
86
|
export declare class ParameterExpression extends SqlComponent {
|
86
87
|
static kind: symbol;
|
87
88
|
name: RawString;
|
88
|
-
|
89
|
+
value: any | null;
|
90
|
+
/**
|
91
|
+
* The index assigned by the formatter when generating parameterized queries.
|
92
|
+
* This is used for naming parameters like $1, $2, ...
|
93
|
+
*/
|
94
|
+
index: number | null;
|
95
|
+
constructor(name: string, value?: any | null);
|
89
96
|
}
|
90
97
|
export declare class SwitchCaseArgument extends SqlComponent {
|
91
98
|
static kind: symbol;
|
@@ -147,9 +154,11 @@ export declare class StringSpecifierExpression extends SqlComponent {
|
|
147
154
|
}
|
148
155
|
export declare class TypeValue extends SqlComponent {
|
149
156
|
static kind: symbol;
|
150
|
-
|
157
|
+
namespaces: IdentifierString[] | null;
|
158
|
+
name: RawString;
|
151
159
|
argument: ValueComponent | null;
|
152
|
-
constructor(
|
160
|
+
constructor(namespaces: string[] | IdentifierString[] | null, name: string | RawString, argument?: ValueComponent | null);
|
161
|
+
getTypeName(): string;
|
153
162
|
}
|
154
163
|
export declare class TupleExpression extends SqlComponent {
|
155
164
|
static kind: symbol;
|
@@ -1,10 +1,11 @@
|
|
1
|
+
import { SelectQuery } from "./SelectQuery";
|
1
2
|
import { SimpleSelectQuery } from "./SimpleSelectQuery";
|
2
3
|
import { SqlComponent } from "./SqlComponent";
|
3
4
|
import { TupleExpression } from "./ValueComponent";
|
4
5
|
/**
|
5
6
|
* Represents a VALUES query in SQL.
|
6
7
|
*/
|
7
|
-
export declare class ValuesQuery extends SqlComponent {
|
8
|
+
export declare class ValuesQuery extends SqlComponent implements SelectQuery {
|
8
9
|
static kind: symbol;
|
9
10
|
tuples: TupleExpression[];
|
10
11
|
/**
|
@@ -15,4 +16,10 @@ export declare class ValuesQuery extends SqlComponent {
|
|
15
16
|
columnAliases: string[] | null;
|
16
17
|
constructor(tuples: TupleExpression[], columnAliases?: string[] | null);
|
17
18
|
toSimpleSelectQuery(): SimpleSelectQuery;
|
19
|
+
/**
|
20
|
+
* Sets the value of a parameter by name in this query.
|
21
|
+
* @param name Parameter name
|
22
|
+
* @param value Value to set
|
23
|
+
*/
|
24
|
+
setParameter(name: string, value: any): this;
|
18
25
|
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { Lexeme } from "../models/Lexeme";
|
2
|
+
import { IdentifierString } from "../models/ValueComponent";
|
3
|
+
/**
|
4
|
+
* Utility class for parsing fully qualified names (e.g. db.schema.table or db.schema.table.column_name)
|
5
|
+
* This can be used for both table and column references.
|
6
|
+
*/
|
7
|
+
export declare class FullNameParser {
|
8
|
+
/**
|
9
|
+
* Parses a fully qualified name from lexemes, returning namespaces, table, and new index.
|
10
|
+
*/
|
11
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
12
|
+
namespaces: string[] | null;
|
13
|
+
name: IdentifierString;
|
14
|
+
newIndex: number;
|
15
|
+
};
|
16
|
+
/**
|
17
|
+
* Parses a fully qualified name from a string (e.g. 'db.schema.table')
|
18
|
+
* Returns { namespaces, name }
|
19
|
+
*/
|
20
|
+
static parse(str: string): {
|
21
|
+
namespaces: string[] | null;
|
22
|
+
name: IdentifierString;
|
23
|
+
};
|
24
|
+
private static parseEscapedOrDotSeparatedIdentifiers;
|
25
|
+
private static extractNamespacesAndName;
|
26
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { Lexeme } from "../models/Lexeme";
|
2
|
+
import { ReturningClause } from "../models/Clause";
|
3
|
+
export declare class ReturningClauseParser {
|
4
|
+
/**
|
5
|
+
* Parse RETURNING clause from lexemes, starting at the given index.
|
6
|
+
* Returns a ReturningClause instance and the new index after parsing.
|
7
|
+
*/
|
8
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
9
|
+
value: ReturningClause;
|
10
|
+
newIndex: number;
|
11
|
+
};
|
12
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { Lexeme } from "../models/Lexeme";
|
2
|
+
import { SetClause } from "../models/Clause";
|
3
|
+
/**
|
4
|
+
* Parse SET clause from lexemes (including 'SET' keyword check).
|
5
|
+
*/
|
6
|
+
export declare class SetClauseParser {
|
7
|
+
static parseFromLexeme(lexemes: Lexeme[], idx: number): {
|
8
|
+
setClause: SetClause;
|
9
|
+
newIndex: number;
|
10
|
+
};
|
11
|
+
}
|
@@ -1,6 +1,14 @@
|
|
1
1
|
import { SourceExpression } from "../models/Clause";
|
2
2
|
import { Lexeme } from "../models/Lexeme";
|
3
3
|
export declare class SourceExpressionParser {
|
4
|
+
/**
|
5
|
+
* Parse SQL string to SourceExpression (e.g. "table", "table as t", "schema.table t")
|
6
|
+
*/
|
7
|
+
static parse(query: string): SourceExpression;
|
8
|
+
static parseTableSourceFromLexemes(lexemes: Lexeme[], index: number): {
|
9
|
+
value: SourceExpression;
|
10
|
+
newIndex: number;
|
11
|
+
};
|
4
12
|
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
5
13
|
value: SourceExpression;
|
6
14
|
newIndex: number;
|
@@ -2,6 +2,20 @@ import { SourceComponent } from "../models/Clause";
|
|
2
2
|
import { Lexeme } from "../models/Lexeme";
|
3
3
|
export declare class SourceParser {
|
4
4
|
static parse(query: string): SourceComponent;
|
5
|
+
/**
|
6
|
+
* Parses only a TableSource from the given lexemes, regardless of the presence of parentheses after the identifier.
|
7
|
+
* This method is specifically used for cases like INSERT queries (e.g., "insert into table_name (col1, col2)")
|
8
|
+
* where a parenthesis immediately following the table name could otherwise be misinterpreted as a function call.
|
9
|
+
* By using this method, the parser forcibly treats the source as a TableSource.
|
10
|
+
*
|
11
|
+
* @param lexemes The array of lexemes to parse.
|
12
|
+
* @param index The starting index in the lexeme array.
|
13
|
+
* @returns An object containing the parsed TableSource and the new index.
|
14
|
+
*/
|
15
|
+
static parseTableSourceFromLexemes(lexemes: Lexeme[], index: number): {
|
16
|
+
value: SourceComponent;
|
17
|
+
newIndex: number;
|
18
|
+
};
|
5
19
|
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
6
20
|
value: SourceComponent;
|
7
21
|
newIndex: number;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { UpdateClause } from "../models/Clause";
|
2
|
+
import { Lexeme } from "../models/Lexeme";
|
3
|
+
/**
|
4
|
+
* Parses the target of an UPDATE statement (table or source expression with optional alias).
|
5
|
+
*/
|
6
|
+
export declare class UpdateClauseParser {
|
7
|
+
/**
|
8
|
+
* Parse from lexeme array (returns UpdateClause and new index)
|
9
|
+
* This method parses a table or a table with alias using SourceExpressionParser.
|
10
|
+
*/
|
11
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
12
|
+
value: UpdateClause;
|
13
|
+
newIndex: number;
|
14
|
+
};
|
15
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { UpdateQuery } from "../models/UpdateQuery";
|
2
|
+
import { Lexeme } from "../models/Lexeme";
|
3
|
+
export declare class UpdateQueryParser {
|
4
|
+
/**
|
5
|
+
* Parse SQL string to UpdateQuery AST.
|
6
|
+
* @param query SQL string
|
7
|
+
*/
|
8
|
+
static parse(query: string): UpdateQuery;
|
9
|
+
/**
|
10
|
+
* Parse from lexeme array (for internal use and tests)
|
11
|
+
*/
|
12
|
+
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
13
|
+
value: UpdateQuery;
|
14
|
+
newIndex: number;
|
15
|
+
};
|
16
|
+
}
|
@@ -1,4 +1,9 @@
|
|
1
1
|
import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
|
2
|
+
export declare enum ParameterStyle {
|
3
|
+
Anonymous = "anonymous",// ?
|
4
|
+
Indexed = "indexed",// $1, $2, ...
|
5
|
+
Named = "named"
|
6
|
+
}
|
2
7
|
interface FormatterConfig {
|
3
8
|
identifierEscape?: {
|
4
9
|
start: string;
|
@@ -9,10 +14,9 @@ interface FormatterConfig {
|
|
9
14
|
end: string;
|
10
15
|
};
|
11
16
|
/**
|
12
|
-
*
|
13
|
-
* If true (default), named parameters are output (e.g. :userId, @userId).
|
17
|
+
* Parameter style: anonymous (?), indexed ($1), or named (:name)
|
14
18
|
*/
|
15
|
-
|
19
|
+
parameterStyle?: ParameterStyle;
|
16
20
|
}
|
17
21
|
export declare class Formatter implements SqlComponentVisitor<string> {
|
18
22
|
/**
|
@@ -21,6 +25,7 @@ export declare class Formatter implements SqlComponentVisitor<string> {
|
|
21
25
|
static readonly PRESETS: Record<string, FormatterConfig>;
|
22
26
|
private handlers;
|
23
27
|
private config;
|
28
|
+
private parameterIndex;
|
24
29
|
constructor();
|
25
30
|
/**
|
26
31
|
* Formats the given SQL AST node into a SQL string.
|
@@ -30,6 +35,10 @@ export declare class Formatter implements SqlComponentVisitor<string> {
|
|
30
35
|
* @returns The formatted SQL string.
|
31
36
|
*/
|
32
37
|
format(arg: SqlComponent, config?: FormatterConfig | null): string;
|
38
|
+
formatWithParameters(arg: SqlComponent, config?: FormatterConfig | null): {
|
39
|
+
sql: string;
|
40
|
+
params: any[] | Record<string, any>[] | Record<string, any>;
|
41
|
+
};
|
33
42
|
/**
|
34
43
|
* Visitor entry point for SQL AST nodes.
|
35
44
|
* Note: This method is public only for interface compatibility.
|
@@ -95,5 +104,11 @@ export declare class Formatter implements SqlComponentVisitor<string> {
|
|
95
104
|
*/
|
96
105
|
private visitCreateTableQuery;
|
97
106
|
private visitInsertQuery;
|
107
|
+
private visitUpdateQuery;
|
108
|
+
private visitUpdateClause;
|
109
|
+
private visitSetClause;
|
110
|
+
private visitSetClauseItem;
|
111
|
+
private visitReturningClause;
|
112
|
+
private visitInsertClause;
|
98
113
|
}
|
99
114
|
export {};
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { ParameterExpression } from "../models/ValueComponent";
|
2
|
+
/**
|
3
|
+
* Utility class to collect all ParameterExpression nodes from an AST.
|
4
|
+
*/
|
5
|
+
export declare class ParameterCollector {
|
6
|
+
/**
|
7
|
+
* Recursively collect all ParameterExpression nodes from AST.
|
8
|
+
* @param node AST root
|
9
|
+
* @returns ParameterExpression[]
|
10
|
+
*/
|
11
|
+
static collect(node: any): ParameterExpression[];
|
12
|
+
}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { UpdateQuery } from '../models/UpdateQuery';
|
1
2
|
import { BinarySelectQuery, SelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
|
2
3
|
import { CreateTableQuery } from "../models/CreateTableQuery";
|
3
4
|
import { InsertQuery } from "../models/InsertQuery";
|
@@ -51,4 +52,12 @@ export declare class QueryBuilder {
|
|
51
52
|
* @returns An InsertQuery instance
|
52
53
|
*/
|
53
54
|
static buildInsertQuery(selectQuery: SimpleSelectQuery, tableName: string): InsertQuery;
|
55
|
+
/**
|
56
|
+
* Builds an UPDATE query from a SELECT query, table name, and primary key(s).
|
57
|
+
* @param selectQuery The SELECT query providing new values (must select all columns to update and PKs)
|
58
|
+
* @param updateTableExprRaw The table name to update
|
59
|
+
* @param primaryKeys The primary key column name(s)
|
60
|
+
* @returns UpdateQuery instance
|
61
|
+
*/
|
62
|
+
static buildUpdateQuery(selectQuery: SimpleSelectQuery, selectSourceName: string, updateTableExprRaw: string, primaryKeys: string | string[]): UpdateQuery;
|
54
63
|
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { SqlComponent } from "../models/SqlComponent";
|
2
|
+
/**
|
3
|
+
* Utility class for parameter operations on SQL queries.
|
4
|
+
*/
|
5
|
+
export declare class ParameterHelper {
|
6
|
+
/**
|
7
|
+
* Sets the value of a parameter by name in the given query.
|
8
|
+
* Throws an error if the parameter is not found.
|
9
|
+
* @param query The query object (must be a SqlComponent)
|
10
|
+
* @param name Parameter name
|
11
|
+
* @param value Value to set
|
12
|
+
*/
|
13
|
+
static set(query: SqlComponent, name: string, value: any): void;
|
14
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { ParameterCollector } from "../transformers/ParameterCollector";
|
2
|
+
/**
|
3
|
+
* Utility class for parameter operations on SQL queries.
|
4
|
+
*/
|
5
|
+
export class ParameterHelper {
|
6
|
+
/**
|
7
|
+
* Sets the value of a parameter by name in the given query.
|
8
|
+
* Throws an error if the parameter is not found.
|
9
|
+
* @param query The query object (must be a SqlComponent)
|
10
|
+
* @param name Parameter name
|
11
|
+
* @param value Value to set
|
12
|
+
*/
|
13
|
+
static set(query, name, value) {
|
14
|
+
const params = ParameterCollector.collect(query);
|
15
|
+
let found = false;
|
16
|
+
for (const p of params) {
|
17
|
+
if (p.name.value === name) {
|
18
|
+
p.value = value;
|
19
|
+
found = true;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
if (!found) {
|
23
|
+
throw new Error(`Parameter '${name}' not found in query.`);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
//# sourceMappingURL=ParameterHelper.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ParameterHelper.js","sourceRoot":"","sources":["../../../src/utils/ParameterHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAGxE;;GAEG;AACH,MAAM,OAAO,eAAe;IACxB;;;;;;OAMG;IACI,MAAM,CAAC,GAAG,CAAC,KAAmB,EAAE,IAAY,EAAE,KAAU;QAC3D,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACxB,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;gBAChB,KAAK,GAAG,IAAI,CAAC;YACjB,CAAC;QACL,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,uBAAuB,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;CACJ"}
|
@@ -5,7 +5,7 @@ import { RawString } from "./ValueComponent";
|
|
5
5
|
/**
|
6
6
|
* Represents a binary SELECT query (e.g., UNION, INTERSECT, EXCEPT).
|
7
7
|
*/
|
8
|
-
export declare class BinarySelectQuery extends SqlComponent {
|
8
|
+
export declare class BinarySelectQuery extends SqlComponent implements SelectQuery {
|
9
9
|
static kind: symbol;
|
10
10
|
left: SelectQuery;
|
11
11
|
operator: RawString;
|
@@ -88,4 +88,10 @@ export declare class BinarySelectQuery extends SqlComponent {
|
|
88
88
|
exceptRaw(sql: string): BinarySelectQuery;
|
89
89
|
exceptAllRaw(sql: string): BinarySelectQuery;
|
90
90
|
toSource(alias?: string): SourceExpression;
|
91
|
+
/**
|
92
|
+
* Sets the value of a parameter by name in this query.
|
93
|
+
* @param name Parameter name
|
94
|
+
* @param value Value to set
|
95
|
+
*/
|
96
|
+
setParameter(name: string, value: any): this;
|
91
97
|
}
|
@@ -6,6 +6,7 @@ const SqlComponent_1 = require("./SqlComponent");
|
|
6
6
|
const ValueComponent_1 = require("./ValueComponent");
|
7
7
|
const CTENormalizer_1 = require("../transformers/CTENormalizer");
|
8
8
|
const SelectQueryParser_1 = require("../parsers/SelectQueryParser");
|
9
|
+
const ParameterHelper_1 = require("../utils/ParameterHelper");
|
9
10
|
/**
|
10
11
|
* Represents a binary SELECT query (e.g., UNION, INTERSECT, EXCEPT).
|
11
12
|
*/
|
@@ -133,6 +134,15 @@ class BinarySelectQuery extends SqlComponent_1.SqlComponent {
|
|
133
134
|
toSource(alias = "subq") {
|
134
135
|
return new Clause_1.SourceExpression(new Clause_1.SubQuerySource(this), new Clause_1.SourceAliasExpression(alias, null));
|
135
136
|
}
|
137
|
+
/**
|
138
|
+
* Sets the value of a parameter by name in this query.
|
139
|
+
* @param name Parameter name
|
140
|
+
* @param value Value to set
|
141
|
+
*/
|
142
|
+
setParameter(name, value) {
|
143
|
+
ParameterHelper_1.ParameterHelper.set(this, name, value);
|
144
|
+
return this;
|
145
|
+
}
|
136
146
|
}
|
137
147
|
exports.BinarySelectQuery = BinarySelectQuery;
|
138
148
|
BinarySelectQuery.kind = Symbol("BinarySelectQuery");
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BinarySelectQuery.js","sourceRoot":"","sources":["../../src/models/BinarySelectQuery.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"BinarySelectQuery.js","sourceRoot":"","sources":["../../src/models/BinarySelectQuery.ts"],"names":[],"mappings":"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"}
|