rawsql-ts 0.14.4 → 0.16.0
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 +7 -3
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/models/Clause.js +2 -1
- package/dist/models/Clause.js.map +1 -1
- package/dist/parsers/CreateTableParser.js +5 -1
- package/dist/parsers/CreateTableParser.js.map +1 -1
- package/dist/parsers/SourceParser.js +6 -1
- package/dist/parsers/SourceParser.js.map +1 -1
- package/dist/parsers/SqlPrintTokenParser.js +4 -0
- package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/models/Clause.d.ts +6 -1
- package/dist/src/parsers/CreateTableParser.d.ts +1 -0
- package/dist/src/transformers/DynamicQueryBuilder.d.ts +75 -11
- package/dist/src/transformers/ExistsPredicateInjector.d.ts +33 -0
- package/dist/src/transformers/InsertResultSelectConverter.d.ts +1 -0
- package/dist/src/transformers/OptimizeUnusedLeftJoins.d.ts +33 -0
- package/dist/src/transformers/SqlParamInjector.d.ts +1 -1
- package/dist/src/utils/serialTypeNormalization.d.ts +15 -0
- package/dist/tokenReaders/CommandTokenReader.js +1 -0
- package/dist/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/transformers/DynamicQueryBuilder.js +204 -9
- package/dist/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/transformers/ExistsPredicateInjector.js +297 -0
- package/dist/transformers/ExistsPredicateInjector.js.map +1 -0
- package/dist/transformers/FixtureCteBuilder.js +5 -2
- package/dist/transformers/FixtureCteBuilder.js.map +1 -1
- package/dist/transformers/InsertResultSelectConverter.js +28 -7
- package/dist/transformers/InsertResultSelectConverter.js.map +1 -1
- package/dist/transformers/OptimizeUnusedLeftJoins.js +340 -0
- package/dist/transformers/OptimizeUnusedLeftJoins.js.map +1 -0
- package/dist/transformers/SqlParamInjector.js +6 -9
- package/dist/transformers/SqlParamInjector.js.map +1 -1
- package/dist/utils/serialTypeNormalization.js +59 -0
- package/dist/utils/serialTypeNormalization.js.map +1 -0
- package/package.json +1 -1
package/dist/src/index.d.ts
CHANGED
|
@@ -69,6 +69,7 @@ export { DuplicateDetectionMode } from './transformers/SelectableColumnCollector
|
|
|
69
69
|
export * from './transformers/FilterableItemCollector';
|
|
70
70
|
export { FixtureCteBuilder, FixtureTableDefinition, FixtureColumnDefinition } from './transformers/FixtureCteBuilder';
|
|
71
71
|
export * from './transformers/DynamicQueryBuilder';
|
|
72
|
+
export { SchemaInfo, optimizeUnusedLeftJoins, optimizeUnusedLeftJoinsToFixedPoint, optimizeUnusedCtes, optimizeUnusedCtesToFixedPoint } from './transformers/OptimizeUnusedLeftJoins';
|
|
72
73
|
export * from './transformers/TableColumnResolver';
|
|
73
74
|
export * from './transformers/TableSourceCollector';
|
|
74
75
|
export * from './transformers/JsonMappingConverter';
|
|
@@ -107,10 +107,15 @@ export declare class FunctionSource extends SqlComponent {
|
|
|
107
107
|
static kind: symbol;
|
|
108
108
|
qualifiedName: QualifiedName;
|
|
109
109
|
argument: ValueComponent | null;
|
|
110
|
+
/**
|
|
111
|
+
* Indicates whether the function source was declared with WITH ORDINALITY,
|
|
112
|
+
* as found in table-function expressions such as `unnest(...) WITH ORDINALITY`.
|
|
113
|
+
*/
|
|
114
|
+
withOrdinality: boolean;
|
|
110
115
|
constructor(name: string | IdentifierString | {
|
|
111
116
|
namespaces: string[] | IdentifierString[] | null;
|
|
112
117
|
name: string | RawString | IdentifierString;
|
|
113
|
-
}, argument: ValueComponent | null);
|
|
118
|
+
}, argument: ValueComponent | null, withOrdinality?: boolean);
|
|
114
119
|
/**
|
|
115
120
|
* For backward compatibility: returns the namespaces as IdentifierString[] | null (readonly)
|
|
116
121
|
*/
|
|
@@ -6,6 +6,7 @@ import { Lexeme } from "../models/Lexeme";
|
|
|
6
6
|
export declare class CreateTableParser {
|
|
7
7
|
private static readonly TABLE_CONSTRAINT_STARTERS;
|
|
8
8
|
private static readonly COLUMN_CONSTRAINT_STARTERS;
|
|
9
|
+
private static readonly TEMPORARY_CREATE_TABLE_COMMANDS;
|
|
9
10
|
private static readonly MATCH_KEYWORDS;
|
|
10
11
|
private static readonly REFERENTIAL_ACTIONS;
|
|
11
12
|
private static readonly DEFERRABILITY_KEYWORDS;
|
|
@@ -3,18 +3,22 @@ import { SortConditions } from "./SqlSortInjector";
|
|
|
3
3
|
import { PaginationOptions } from "./SqlPaginationInjector";
|
|
4
4
|
import { JsonMapping } from "./PostgresJsonQueryBuilder";
|
|
5
5
|
import { SqlParameterValue } from "../models/ValueComponent";
|
|
6
|
+
import { type ExistsSubqueryDefinition } from "./ExistsPredicateInjector";
|
|
7
|
+
import { SchemaInfo } from "./OptimizeUnusedLeftJoins";
|
|
8
|
+
export type { ExistsSubqueryDefinition };
|
|
6
9
|
/**
|
|
7
|
-
*
|
|
10
|
+
* Object-form filter condition supporting scalar operators, logical grouping,
|
|
11
|
+
* and column-anchored EXISTS/NOT EXISTS predicates.
|
|
8
12
|
*
|
|
9
13
|
* @example
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
+
* const filter: FilterConditionObject = {
|
|
15
|
+
* min: 10,
|
|
16
|
+
* max: 100,
|
|
17
|
+
* exists: { sql: 'SELECT 1 FROM orders WHERE user_id = $c0' }
|
|
18
|
+
* };
|
|
14
19
|
* Related tests: packages/core/tests/transformers/DynamicQueryBuilder.test.ts
|
|
15
|
-
|
|
16
20
|
*/
|
|
17
|
-
export
|
|
21
|
+
export interface FilterConditionObject {
|
|
18
22
|
min?: SqlParameterValue;
|
|
19
23
|
max?: SqlParameterValue;
|
|
20
24
|
like?: string;
|
|
@@ -37,7 +41,13 @@ export type FilterConditionValue = SqlParameterValue | SqlParameterValue[] | {
|
|
|
37
41
|
[operator: string]: SqlParameterValue | string;
|
|
38
42
|
}[];
|
|
39
43
|
column?: string;
|
|
40
|
-
|
|
44
|
+
exists?: ExistsSubqueryDefinition;
|
|
45
|
+
notExists?: ExistsSubqueryDefinition;
|
|
46
|
+
}
|
|
47
|
+
export interface MultiColumnExistsDefinition extends ExistsSubqueryDefinition {
|
|
48
|
+
on: string[];
|
|
49
|
+
}
|
|
50
|
+
export type FilterConditionValue = SqlParameterValue | SqlParameterValue[] | FilterConditionObject | MultiColumnExistsDefinition[];
|
|
41
51
|
/**
|
|
42
52
|
* Filter conditions for dynamic query building.
|
|
43
53
|
*
|
|
@@ -80,6 +90,16 @@ export interface QueryBuildOptions {
|
|
|
80
90
|
sort?: SortConditions;
|
|
81
91
|
/** Pagination options to inject LIMIT/OFFSET clauses */
|
|
82
92
|
paging?: PaginationOptions;
|
|
93
|
+
/**
|
|
94
|
+
* Columns that should remain in the SELECT clause.
|
|
95
|
+
* When specified, every other column is removed so the output matches this whitelist.
|
|
96
|
+
*/
|
|
97
|
+
includeColumns?: string[];
|
|
98
|
+
/**
|
|
99
|
+
* Columns that should be removed from the SELECT clause.
|
|
100
|
+
* Filters apply subtractively and only drop columns that exist in the original output.
|
|
101
|
+
*/
|
|
102
|
+
excludeColumns?: string[];
|
|
83
103
|
/** JSON serialization mapping to transform results into hierarchical JSON
|
|
84
104
|
* - JsonMapping object: explicit mapping configuration
|
|
85
105
|
* - true: auto-load mapping from corresponding .json file
|
|
@@ -92,6 +112,36 @@ export interface QueryBuildOptions {
|
|
|
92
112
|
* @default true
|
|
93
113
|
*/
|
|
94
114
|
jsonb?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Throw when column-anchored EXISTS filters fail to resolve.
|
|
117
|
+
* Defaults to false so invalid definitions are skipped silently.
|
|
118
|
+
*/
|
|
119
|
+
existsStrict?: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Schema metadata used when removing unused LEFT JOINs; overrides builder defaults.
|
|
122
|
+
*/
|
|
123
|
+
schemaInfo?: SchemaInfo;
|
|
124
|
+
/**
|
|
125
|
+
* Remove unused LEFT JOINs before further processing when schema info is available.
|
|
126
|
+
*/
|
|
127
|
+
removeUnusedLeftJoins?: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Remove unused Common Table Expressions (CTEs) when they can be safely pruned.
|
|
130
|
+
* Defaults to false to preserve original WITH definitions.
|
|
131
|
+
*/
|
|
132
|
+
removeUnusedCtes?: boolean;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Builder-level configuration that can be reused across multiple build calls.
|
|
136
|
+
*/
|
|
137
|
+
export interface DynamicQueryBuilderOptions {
|
|
138
|
+
/** Optional resolver for table column names (retains backward compatibility). */
|
|
139
|
+
tableColumnResolver?: (tableName: string) => string[];
|
|
140
|
+
/**
|
|
141
|
+
* Schema metadata that may be applied by default when the optimizer is enabled.
|
|
142
|
+
* Schema info provided via QueryBuildOptions takes precedence.
|
|
143
|
+
*/
|
|
144
|
+
schemaInfo?: SchemaInfo;
|
|
95
145
|
}
|
|
96
146
|
/**
|
|
97
147
|
* DynamicQueryBuilder combines SQL parsing with dynamic condition injection (filters, sorts, paging, JSON serialization).
|
|
@@ -103,11 +153,14 @@ export interface QueryBuildOptions {
|
|
|
103
153
|
*/
|
|
104
154
|
export declare class DynamicQueryBuilder {
|
|
105
155
|
private tableColumnResolver?;
|
|
156
|
+
private defaultSchemaInfo?;
|
|
106
157
|
/**
|
|
107
|
-
* Creates a new DynamicQueryBuilder instance
|
|
108
|
-
*
|
|
158
|
+
* Creates a new DynamicQueryBuilder instance.
|
|
159
|
+
* Accepts either the legacy table resolver or an options object that can provide schema metadata.
|
|
160
|
+
*
|
|
161
|
+
* @param resolverOrOptions Optional resolver or configuration object
|
|
109
162
|
*/
|
|
110
|
-
constructor(
|
|
163
|
+
constructor(resolverOrOptions?: ((tableName: string) => string[]) | DynamicQueryBuilderOptions);
|
|
111
164
|
/**
|
|
112
165
|
* Builds a SelectQuery from SQL content with dynamic conditions.
|
|
113
166
|
* This is a pure function that does not perform any I/O operations.
|
|
@@ -129,6 +182,17 @@ export declare class DynamicQueryBuilder {
|
|
|
129
182
|
* ```
|
|
130
183
|
*/
|
|
131
184
|
buildQuery(sqlContent: string, options?: QueryBuildOptions): SelectQuery;
|
|
185
|
+
private extractExistsInstructions;
|
|
186
|
+
private handleMultiAnchorDefinitions;
|
|
187
|
+
private splitExistsProperties;
|
|
188
|
+
private isFilterConditionObject;
|
|
189
|
+
private isMultiColumnDefinitionArray;
|
|
190
|
+
private isMultiColumnDefinition;
|
|
191
|
+
private createExistsInstruction;
|
|
192
|
+
private applyColumnFilters;
|
|
193
|
+
private normalizeColumnList;
|
|
194
|
+
private normalizeColumnIdentifier;
|
|
195
|
+
private getSelectItemName;
|
|
132
196
|
/**
|
|
133
197
|
* Builds a SelectQuery with only filtering applied.
|
|
134
198
|
* Convenience method for when you only need dynamic WHERE conditions.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { SelectQuery } from "../models/SelectQuery";
|
|
2
|
+
import { SqlParameterValue } from "../models/ValueComponent";
|
|
3
|
+
/**
|
|
4
|
+
* Represents an EXISTS / NOT EXISTS instruction derived from filter metadata.
|
|
5
|
+
*/
|
|
6
|
+
export interface ExistsInstruction {
|
|
7
|
+
mode: "exists" | "notExists";
|
|
8
|
+
anchorColumns: string[];
|
|
9
|
+
sql: string;
|
|
10
|
+
params?: Record<string, SqlParameterValue>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Configuration that controls how EXISTS predicates are injected.
|
|
14
|
+
*/
|
|
15
|
+
export interface ExistsPredicateOptions {
|
|
16
|
+
tableColumnResolver?: (tableName: string) => string[];
|
|
17
|
+
strict?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Describes a correlated subquery that renders an EXISTS/NOT EXISTS predicate.
|
|
21
|
+
*/
|
|
22
|
+
export interface ExistsSubqueryDefinition {
|
|
23
|
+
/** SQL that references the `$c#` placeholders for the anchor columns. */
|
|
24
|
+
sql: string;
|
|
25
|
+
/** Optional named parameters that the subquery requires. */
|
|
26
|
+
params?: Record<string, SqlParameterValue>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Injects EXISTS/NOT EXISTS predicates into the provided SelectQuery.
|
|
30
|
+
* Each instruction is evaluated independently so failures can be skipped
|
|
31
|
+
* when `strict` is false.
|
|
32
|
+
*/
|
|
33
|
+
export declare function injectExistsPredicates(query: SelectQuery, instructions: ExistsInstruction[], options?: ExistsPredicateOptions): SelectQuery;
|
|
@@ -59,6 +59,7 @@ export declare class InsertResultSelectConverter {
|
|
|
59
59
|
private static normalizeIdentifier;
|
|
60
60
|
private static parseDefaultValue;
|
|
61
61
|
private static resolveDefaultValueExpression;
|
|
62
|
+
private static shouldUseSerialDefault;
|
|
62
63
|
private static referencesSequence;
|
|
63
64
|
private static referencesSelect;
|
|
64
65
|
private static isSequenceFunction;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { SelectQuery } from '../models/SelectQuery';
|
|
2
|
+
/**
|
|
3
|
+
* Captures the schema metadata required to safely evaluate LEFT JOIN removal.
|
|
4
|
+
*/
|
|
5
|
+
export interface SchemaTableInfo {
|
|
6
|
+
/** The fully qualified table name that appears in SQL references. */
|
|
7
|
+
name: string;
|
|
8
|
+
/** Column names that exist on the table for any schema validation steps. */
|
|
9
|
+
columns: string[];
|
|
10
|
+
/**
|
|
11
|
+
* Unique key declarations for the table.
|
|
12
|
+
* Each entry is an array of column names that together form a uniqueness constraint.
|
|
13
|
+
*/
|
|
14
|
+
uniqueKeys: string[][];
|
|
15
|
+
}
|
|
16
|
+
/** Ordered set of table metadata consumed by the optimizer. */
|
|
17
|
+
export type SchemaInfo = SchemaTableInfo[];
|
|
18
|
+
/**
|
|
19
|
+
* Removes LEFT JOIN clauses from the provided query when AST references prove the join target is unused and schema metadata certifies the join column is unique.
|
|
20
|
+
*/
|
|
21
|
+
export declare const optimizeUnusedLeftJoins: (query: SelectQuery, schemaInfo: SchemaInfo) => SelectQuery;
|
|
22
|
+
/**
|
|
23
|
+
* Applies the unused left join optimizer until no further joins can be trimmed, ensuring cascading removals stabilize.
|
|
24
|
+
*/
|
|
25
|
+
export declare const optimizeUnusedLeftJoinsToFixedPoint: (query: SelectQuery, schemaInfo: SchemaInfo) => SelectQuery;
|
|
26
|
+
/**
|
|
27
|
+
* Removes unused SELECT-only CTEs from the query when AST references confirm they are never consumed.
|
|
28
|
+
*/
|
|
29
|
+
export declare const optimizeUnusedCtes: (query: SelectQuery) => SelectQuery;
|
|
30
|
+
/**
|
|
31
|
+
* Repeatedly prunes unused CTEs until a fixed point is reached so chained removals complete deterministically.
|
|
32
|
+
*/
|
|
33
|
+
export declare const optimizeUnusedCtesToFixedPoint: (query: SelectQuery) => SelectQuery;
|
|
@@ -27,7 +27,7 @@ export declare class SqlParamInjector {
|
|
|
27
27
|
* @returns The modified SelectQuery
|
|
28
28
|
* @throws Error when all parameters are undefined and allowAllUndefined is not set to true
|
|
29
29
|
*/
|
|
30
|
-
inject(query: SimpleSelectQuery | string, state: Record<string,
|
|
30
|
+
inject(query: SimpleSelectQuery | string, state: Record<string, StateParameterValue | null | undefined>): SelectQuery;
|
|
31
31
|
/**
|
|
32
32
|
* Type guard for OR conditions
|
|
33
33
|
*/
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts Postgres serial pseudo-type names into their real storage types so ZTD
|
|
3
|
+
* cast expressions never emit non-existent types.
|
|
4
|
+
*
|
|
5
|
+
* @param typeName Optional type name (possibly qualified) that is trimmed before normalization.
|
|
6
|
+
* @returns The normalized type name when a pseudo-type matches, the trimmed input when no match is found, or `undefined` when the argument is `undefined`.
|
|
7
|
+
* @example
|
|
8
|
+
* normalizeSerialPseudoType('serial') // 'integer'
|
|
9
|
+
* normalizeSerialPseudoType('public.BIGSERIAL') // 'public.bigint'
|
|
10
|
+
*/
|
|
11
|
+
export declare function normalizeSerialPseudoType(typeName?: string): string | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Returns true when the provided type name resolves to a known serial pseudo-type.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isSerialPseudoType(typeName?: string): boolean;
|
|
@@ -116,6 +116,7 @@ const keywordTrie = new KeywordTrie_1.KeywordTrie([
|
|
|
116
116
|
["analyze"],
|
|
117
117
|
["create", "table"],
|
|
118
118
|
["create", "temporary", "table"],
|
|
119
|
+
["create", "temp", "table"],
|
|
119
120
|
["create", "schema"],
|
|
120
121
|
["create", "sequence"],
|
|
121
122
|
["create", "temporary", "sequence"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandTokenReader.js","sourceRoot":"","sources":["../../src/tokenReaders/CommandTokenReader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CommandTokenReader.js","sourceRoot":"","sources":["../../src/tokenReaders/CommandTokenReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,9 @@ const PostgresJsonQueryBuilder_1 = require("./PostgresJsonQueryBuilder");
|
|
|
9
9
|
const QueryBuilder_1 = require("./QueryBuilder");
|
|
10
10
|
const SqlParameterBinder_1 = require("./SqlParameterBinder");
|
|
11
11
|
const ParameterDetector_1 = require("../utils/ParameterDetector");
|
|
12
|
+
const ValueComponent_1 = require("../models/ValueComponent");
|
|
13
|
+
const ExistsPredicateInjector_1 = require("./ExistsPredicateInjector");
|
|
14
|
+
const OptimizeUnusedLeftJoins_1 = require("./OptimizeUnusedLeftJoins");
|
|
12
15
|
/**
|
|
13
16
|
* DynamicQueryBuilder combines SQL parsing with dynamic condition injection (filters, sorts, paging, JSON serialization).
|
|
14
17
|
*
|
|
@@ -19,11 +22,19 @@ const ParameterDetector_1 = require("../utils/ParameterDetector");
|
|
|
19
22
|
*/
|
|
20
23
|
class DynamicQueryBuilder {
|
|
21
24
|
/**
|
|
22
|
-
* Creates a new DynamicQueryBuilder instance
|
|
23
|
-
*
|
|
25
|
+
* Creates a new DynamicQueryBuilder instance.
|
|
26
|
+
* Accepts either the legacy table resolver or an options object that can provide schema metadata.
|
|
27
|
+
*
|
|
28
|
+
* @param resolverOrOptions Optional resolver or configuration object
|
|
24
29
|
*/
|
|
25
|
-
constructor(
|
|
26
|
-
|
|
30
|
+
constructor(resolverOrOptions) {
|
|
31
|
+
if (typeof resolverOrOptions === "function") {
|
|
32
|
+
this.tableColumnResolver = resolverOrOptions;
|
|
33
|
+
}
|
|
34
|
+
else if (resolverOrOptions) {
|
|
35
|
+
this.tableColumnResolver = resolverOrOptions.tableColumnResolver;
|
|
36
|
+
this.defaultSchemaInfo = resolverOrOptions.schemaInfo;
|
|
37
|
+
}
|
|
27
38
|
}
|
|
28
39
|
/**
|
|
29
40
|
* Builds a SelectQuery from SQL content with dynamic conditions.
|
|
@@ -46,6 +57,7 @@ class DynamicQueryBuilder {
|
|
|
46
57
|
* ```
|
|
47
58
|
*/
|
|
48
59
|
buildQuery(sqlContent, options = {}) {
|
|
60
|
+
var _a;
|
|
49
61
|
// Parse the base SQL
|
|
50
62
|
let parsedQuery;
|
|
51
63
|
try {
|
|
@@ -64,12 +76,19 @@ class DynamicQueryBuilder {
|
|
|
64
76
|
const parameterBinder = new SqlParameterBinder_1.SqlParameterBinder({ requireAllParameters: false });
|
|
65
77
|
modifiedQuery = parameterBinder.bind(modifiedQuery, hardcodedParams);
|
|
66
78
|
}
|
|
67
|
-
//
|
|
68
|
-
|
|
79
|
+
// Extract and remove any column-anchored EXISTS filters before injecting traditional ones.
|
|
80
|
+
const { filters: cleanedFilters, instructions: existsInstructions } = this.extractExistsInstructions(dynamicFilters);
|
|
81
|
+
if (Object.keys(cleanedFilters).length > 0) {
|
|
69
82
|
const paramInjector = new SqlParamInjector_1.SqlParamInjector(this.tableColumnResolver);
|
|
70
83
|
// Ensure we have a SimpleSelectQuery for the injector
|
|
71
84
|
const simpleQuery = QueryBuilder_1.QueryBuilder.buildSimpleQuery(modifiedQuery);
|
|
72
|
-
modifiedQuery = paramInjector.inject(simpleQuery,
|
|
85
|
+
modifiedQuery = paramInjector.inject(simpleQuery, cleanedFilters);
|
|
86
|
+
}
|
|
87
|
+
if (existsInstructions.length > 0) {
|
|
88
|
+
modifiedQuery = (0, ExistsPredicateInjector_1.injectExistsPredicates)(modifiedQuery, existsInstructions, {
|
|
89
|
+
tableColumnResolver: this.tableColumnResolver,
|
|
90
|
+
strict: !!options.existsStrict
|
|
91
|
+
});
|
|
73
92
|
}
|
|
74
93
|
}
|
|
75
94
|
// 2. Apply sorting second (after filtering to sort smaller dataset)
|
|
@@ -78,7 +97,8 @@ class DynamicQueryBuilder {
|
|
|
78
97
|
// Ensure we have a SimpleSelectQuery for the injector
|
|
79
98
|
const simpleQuery = QueryBuilder_1.QueryBuilder.buildSimpleQuery(modifiedQuery);
|
|
80
99
|
modifiedQuery = sortInjector.inject(simpleQuery, options.sort);
|
|
81
|
-
}
|
|
100
|
+
}
|
|
101
|
+
// 3. Apply pagination third (after filtering and sorting)
|
|
82
102
|
if (options.paging) {
|
|
83
103
|
const { page = 1, pageSize } = options.paging;
|
|
84
104
|
if (pageSize !== undefined) {
|
|
@@ -89,7 +109,18 @@ class DynamicQueryBuilder {
|
|
|
89
109
|
modifiedQuery = paginationInjector.inject(simpleQuery, paginationOptions);
|
|
90
110
|
}
|
|
91
111
|
}
|
|
92
|
-
// 4. Apply
|
|
112
|
+
// 4. Apply column projection filters before any optimizer passes.
|
|
113
|
+
modifiedQuery = this.applyColumnFilters(modifiedQuery, options);
|
|
114
|
+
// 5. Remove unused LEFT JOINs when asked before serialization.
|
|
115
|
+
const effectiveSchemaInfo = (_a = options.schemaInfo) !== null && _a !== void 0 ? _a : this.defaultSchemaInfo;
|
|
116
|
+
if (options.removeUnusedLeftJoins && (effectiveSchemaInfo === null || effectiveSchemaInfo === void 0 ? void 0 : effectiveSchemaInfo.length)) {
|
|
117
|
+
modifiedQuery = (0, OptimizeUnusedLeftJoins_1.optimizeUnusedLeftJoinsToFixedPoint)(modifiedQuery, effectiveSchemaInfo);
|
|
118
|
+
}
|
|
119
|
+
// 6. Remove unused CTEs before serialization when requested.
|
|
120
|
+
if (options.removeUnusedCtes) {
|
|
121
|
+
modifiedQuery = (0, OptimizeUnusedLeftJoins_1.optimizeUnusedCtesToFixedPoint)(modifiedQuery);
|
|
122
|
+
}
|
|
123
|
+
// Apply serialization last (transform the final query structure to JSON)
|
|
93
124
|
// Note: boolean values are handled at RawSqlClient level for auto-loading
|
|
94
125
|
if (options.serialize && typeof options.serialize === 'object') {
|
|
95
126
|
const jsonBuilder = new PostgresJsonQueryBuilder_1.PostgresJsonQueryBuilder();
|
|
@@ -99,6 +130,170 @@ class DynamicQueryBuilder {
|
|
|
99
130
|
}
|
|
100
131
|
return modifiedQuery;
|
|
101
132
|
}
|
|
133
|
+
extractExistsInstructions(filters) {
|
|
134
|
+
const cleanedFilters = {};
|
|
135
|
+
const instructions = [];
|
|
136
|
+
for (const [key, value] of Object.entries(filters)) {
|
|
137
|
+
if (key === "$exists" || key === "$notExists") {
|
|
138
|
+
// Multi-anchor metadata arrives as arrays keyed by the special markers.
|
|
139
|
+
if (!this.isMultiColumnDefinitionArray(value)) {
|
|
140
|
+
throw new Error(`'${key}' must be an array of EXISTS definitions.`);
|
|
141
|
+
}
|
|
142
|
+
this.handleMultiAnchorDefinitions(key, value, instructions);
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
if (this.isFilterConditionObject(value)) {
|
|
146
|
+
const { leftover, exists, notExists } = this.splitExistsProperties(value);
|
|
147
|
+
if (exists) {
|
|
148
|
+
instructions.push(this.createExistsInstruction([key], exists, "exists"));
|
|
149
|
+
}
|
|
150
|
+
if (notExists) {
|
|
151
|
+
instructions.push(this.createExistsInstruction([key], notExists, "notExists"));
|
|
152
|
+
}
|
|
153
|
+
if (leftover) {
|
|
154
|
+
cleanedFilters[key] = leftover;
|
|
155
|
+
}
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
if (this.isMultiColumnDefinitionArray(value)) {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
cleanedFilters[key] = value;
|
|
162
|
+
}
|
|
163
|
+
return { filters: cleanedFilters, instructions };
|
|
164
|
+
}
|
|
165
|
+
handleMultiAnchorDefinitions(key, definitions, instructions) {
|
|
166
|
+
// Build instructions for each multi-anchor definition in the batch.
|
|
167
|
+
for (const definition of definitions) {
|
|
168
|
+
if (!definition.on || definition.on.length === 0) {
|
|
169
|
+
throw new Error(`Every ${key} instruction must specify an "on" array.`);
|
|
170
|
+
}
|
|
171
|
+
instructions.push(this.createExistsInstruction(definition.on, definition, key === "$notExists" ? "notExists" : "exists"));
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
splitExistsProperties(value) {
|
|
175
|
+
const { exists, notExists, ...rest } = value;
|
|
176
|
+
const hasRemaining = Object.keys(rest).length > 0;
|
|
177
|
+
return {
|
|
178
|
+
leftover: hasRemaining ? rest : undefined,
|
|
179
|
+
exists: exists,
|
|
180
|
+
notExists: notExists
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
isFilterConditionObject(value) {
|
|
184
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
185
|
+
}
|
|
186
|
+
isMultiColumnDefinitionArray(value) {
|
|
187
|
+
return Array.isArray(value) && value.every(entry => this.isMultiColumnDefinition(entry));
|
|
188
|
+
}
|
|
189
|
+
isMultiColumnDefinition(value) {
|
|
190
|
+
if (!value || typeof value !== "object") {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
const candidate = value;
|
|
194
|
+
return (Array.isArray(candidate.on) &&
|
|
195
|
+
candidate.on.length > 0 &&
|
|
196
|
+
candidate.on.every(column => typeof column === "string") &&
|
|
197
|
+
typeof candidate.sql === "string");
|
|
198
|
+
}
|
|
199
|
+
createExistsInstruction(anchors, definition, mode) {
|
|
200
|
+
if (!definition.sql || typeof definition.sql !== "string") {
|
|
201
|
+
throw new Error("EXISTS definition must include a SQL string.");
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
mode,
|
|
205
|
+
anchorColumns: anchors,
|
|
206
|
+
sql: definition.sql,
|
|
207
|
+
params: definition.params
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
applyColumnFilters(query, options) {
|
|
211
|
+
const hasIncludeFilters = Array.isArray(options.includeColumns) && options.includeColumns.length > 0;
|
|
212
|
+
const hasExcludeFilters = Array.isArray(options.excludeColumns) && options.excludeColumns.length > 0;
|
|
213
|
+
if (!hasIncludeFilters && !hasExcludeFilters) {
|
|
214
|
+
return query;
|
|
215
|
+
}
|
|
216
|
+
if (hasIncludeFilters && hasExcludeFilters) {
|
|
217
|
+
throw new Error("includeColumns and excludeColumns cannot be used together.");
|
|
218
|
+
}
|
|
219
|
+
const simpleQuery = QueryBuilder_1.QueryBuilder.buildSimpleQuery(query);
|
|
220
|
+
const metadata = simpleQuery.selectClause.items.map(item => {
|
|
221
|
+
const name = this.getSelectItemName(item);
|
|
222
|
+
return {
|
|
223
|
+
item,
|
|
224
|
+
normalized: name ? this.normalizeColumnIdentifier(name) : null
|
|
225
|
+
};
|
|
226
|
+
});
|
|
227
|
+
const availableColumns = new Set(metadata
|
|
228
|
+
.map(entry => entry.normalized)
|
|
229
|
+
.filter((name) => name !== null));
|
|
230
|
+
const includeFilters = hasIncludeFilters ? this.normalizeColumnList(options.includeColumns) : null;
|
|
231
|
+
const excludeFilters = hasExcludeFilters ? this.normalizeColumnList(options.excludeColumns) : null;
|
|
232
|
+
const includeSet = includeFilters ? new Set(includeFilters.map(entry => entry.normalized)) : null;
|
|
233
|
+
const excludeSet = excludeFilters ? new Set(excludeFilters.map(entry => entry.normalized)) : null;
|
|
234
|
+
if (includeFilters) {
|
|
235
|
+
const missing = includeFilters.filter(entry => !availableColumns.has(entry.normalized));
|
|
236
|
+
if (missing.length > 0) {
|
|
237
|
+
throw new Error(`Column${missing.length === 1 ? "" : "s"} not found in SELECT clause: ${missing
|
|
238
|
+
.map(entry => `'${entry.original}'`)
|
|
239
|
+
.join(", ")}.`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (excludeFilters) {
|
|
243
|
+
const missing = excludeFilters.filter(entry => !availableColumns.has(entry.normalized));
|
|
244
|
+
if (missing.length > 0) {
|
|
245
|
+
throw new Error(`Column${missing.length === 1 ? "" : "s"} not found in SELECT clause: ${missing
|
|
246
|
+
.map(entry => `'${entry.original}'`)
|
|
247
|
+
.join(", ")}.`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
const filteredItems = metadata
|
|
251
|
+
.filter(entry => {
|
|
252
|
+
if (!entry.normalized) {
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
if (includeSet) {
|
|
256
|
+
return includeSet.has(entry.normalized);
|
|
257
|
+
}
|
|
258
|
+
if (excludeSet) {
|
|
259
|
+
return !excludeSet.has(entry.normalized);
|
|
260
|
+
}
|
|
261
|
+
return true;
|
|
262
|
+
})
|
|
263
|
+
.map(entry => entry.item);
|
|
264
|
+
if (filteredItems.length === 0) {
|
|
265
|
+
throw new Error("Column filtering removed every SELECT item.");
|
|
266
|
+
}
|
|
267
|
+
simpleQuery.selectClause.items = filteredItems;
|
|
268
|
+
return simpleQuery;
|
|
269
|
+
}
|
|
270
|
+
normalizeColumnList(columns) {
|
|
271
|
+
return columns.map(column => {
|
|
272
|
+
if (typeof column !== "string") {
|
|
273
|
+
throw new Error("Column filters must be strings.");
|
|
274
|
+
}
|
|
275
|
+
const trimmed = column.trim();
|
|
276
|
+
if (trimmed === "") {
|
|
277
|
+
throw new Error("Column filters must not be empty.");
|
|
278
|
+
}
|
|
279
|
+
return {
|
|
280
|
+
normalized: this.normalizeColumnIdentifier(trimmed),
|
|
281
|
+
original: trimmed
|
|
282
|
+
};
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
normalizeColumnIdentifier(value) {
|
|
286
|
+
return value.trim().toLowerCase();
|
|
287
|
+
}
|
|
288
|
+
getSelectItemName(item) {
|
|
289
|
+
if (item.identifier) {
|
|
290
|
+
return item.identifier.name;
|
|
291
|
+
}
|
|
292
|
+
if (item.value instanceof ValueComponent_1.ColumnReference) {
|
|
293
|
+
return item.value.column.name;
|
|
294
|
+
}
|
|
295
|
+
return null;
|
|
296
|
+
}
|
|
102
297
|
/**
|
|
103
298
|
* Builds a SelectQuery with only filtering applied.
|
|
104
299
|
* Convenience method for when you only need dynamic WHERE conditions.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicQueryBuilder.js","sourceRoot":"","sources":["../../src/transformers/DynamicQueryBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DynamicQueryBuilder.js","sourceRoot":"","sources":["../../src/transformers/DynamicQueryBuilder.ts"],"names":[],"mappings":"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"}
|