rawsql-ts 0.26.1 → 0.27.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/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +1 -1
- package/dist/esm/index.min.js.map +3 -3
- package/dist/esm/transformers/ConditionOptimization.d.ts +1 -0
- package/dist/esm/transformers/ConditionOptimization.js +97 -57
- package/dist/esm/transformers/ConditionOptimization.js.map +1 -1
- package/dist/esm/transformers/ParameterConditionPlacementOptimizer.d.ts +26 -7
- package/dist/esm/transformers/ParameterConditionPlacementOptimizer.js +408 -138
- package/dist/esm/transformers/ParameterConditionPlacementOptimizer.js.map +1 -1
- package/dist/esm/transformers/SqlComponentFormatter.d.ts +9 -1
- package/dist/esm/transformers/SqlComponentFormatter.js +10 -1
- package/dist/esm/transformers/SqlComponentFormatter.js.map +1 -1
- package/dist/esm/transformers/StaticPredicatePlacementOptimizer.d.ts +22 -4
- package/dist/esm/transformers/StaticPredicatePlacementOptimizer.js +332 -95
- package/dist/esm/transformers/StaticPredicatePlacementOptimizer.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +3 -3
- package/dist/src/index.d.ts +1 -0
- package/dist/src/transformers/ConditionOptimization.d.ts +1 -0
- package/dist/src/transformers/ParameterConditionPlacementOptimizer.d.ts +26 -7
- package/dist/src/transformers/SqlComponentFormatter.d.ts +9 -1
- package/dist/src/transformers/StaticPredicatePlacementOptimizer.d.ts +22 -4
- package/dist/transformers/ConditionOptimization.js +107 -54
- package/dist/transformers/ConditionOptimization.js.map +1 -1
- package/dist/transformers/ParameterConditionPlacementOptimizer.js +406 -136
- package/dist/transformers/ParameterConditionPlacementOptimizer.js.map +1 -1
- package/dist/transformers/SqlComponentFormatter.js +12 -2
- package/dist/transformers/SqlComponentFormatter.js.map +1 -1
- package/dist/transformers/StaticPredicatePlacementOptimizer.js +330 -93
- package/dist/transformers/StaticPredicatePlacementOptimizer.js.map +1 -1
- package/dist/tsconfig.browser.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/src/index.d.ts
CHANGED
|
@@ -77,6 +77,7 @@ export * from './transformers/FilterableItemCollector';
|
|
|
77
77
|
export { FixtureCteBuilder, FixtureTableDefinition, FixtureColumnDefinition } from './transformers/FixtureCteBuilder';
|
|
78
78
|
export * from './transformers/DynamicQueryBuilder';
|
|
79
79
|
export * from './transformers/SSSQLFilterBuilder';
|
|
80
|
+
export type { FormattableSqlComponent, SqlComponentFormatter, SqlComponentFormatOptions } from './transformers/SqlComponentFormatter';
|
|
80
81
|
export * from './transformers/ConditionOptimization';
|
|
81
82
|
export * from './transformers/ParameterConditionPlacementOptimizer';
|
|
82
83
|
export * from './transformers/StaticPredicatePlacementOptimizer';
|
|
@@ -64,6 +64,7 @@ export interface ConditionOptimizationSafety {
|
|
|
64
64
|
export interface ConditionOptimizationResult {
|
|
65
65
|
ok: boolean;
|
|
66
66
|
sql: string;
|
|
67
|
+
query: SelectQuery | null;
|
|
67
68
|
phases: readonly ConditionOptimizationPhaseSummary[];
|
|
68
69
|
applied: readonly ConditionOptimizationApplied[];
|
|
69
70
|
skipped: readonly ConditionOptimizationSkipped[];
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import { SelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
|
|
2
|
+
import { SqlComponentFormatOptions } from "./SqlComponentFormatter";
|
|
2
3
|
export type ParameterConditionOptimizationInput = string | SelectQuery | SimpleSelectQuery;
|
|
3
4
|
/**
|
|
4
5
|
* First-phase safe-only placement for ordinary parameter predicates.
|
|
5
6
|
*
|
|
6
7
|
* The optimizer intentionally handles only root top-level AND predicates and one
|
|
7
8
|
* CTE/derived-table hop where the destination output is a direct column reference.
|
|
8
|
-
* Unsupported boundaries such as OR,
|
|
9
|
-
*
|
|
9
|
+
* Unsupported boundaries such as OR, DISTINCT ON, WINDOW, OUTER JOIN,
|
|
10
|
+
* expression outputs, and function predicates are reported as skipped.
|
|
10
11
|
*/
|
|
11
|
-
export interface ParameterConditionOptimizationOptions {
|
|
12
|
+
export interface ParameterConditionOptimizationOptions extends SqlComponentFormatOptions {
|
|
12
13
|
dryRun?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Whether AST/model inputs should be cloned before optimization.
|
|
16
|
+
* Defaults to true for public-call safety. Internal pipelines can pass false
|
|
17
|
+
* when they own the model and want to avoid AST -> SQL -> AST round trips.
|
|
18
|
+
*/
|
|
19
|
+
cloneInput?: boolean;
|
|
13
20
|
}
|
|
14
21
|
export interface ParameterConditionOptimizationWarning {
|
|
15
22
|
code: string;
|
|
@@ -45,6 +52,7 @@ export interface ParameterConditionOptimizationSafety {
|
|
|
45
52
|
export interface ParameterConditionOptimizationResult {
|
|
46
53
|
ok: boolean;
|
|
47
54
|
sql: string;
|
|
55
|
+
query: SelectQuery | null;
|
|
48
56
|
applied: readonly ParameterConditionMove[];
|
|
49
57
|
skipped: readonly ParameterConditionSkipped[];
|
|
50
58
|
warnings: readonly ParameterConditionOptimizationWarning[];
|
|
@@ -58,21 +66,32 @@ export declare class ParameterConditionPlacementOptimizer {
|
|
|
58
66
|
private parseInput;
|
|
59
67
|
private analyzeCandidate;
|
|
60
68
|
private findUnsupportedExpression;
|
|
69
|
+
private findUnsupportedParameterPredicateShape;
|
|
61
70
|
private isSupportedInPredicate;
|
|
62
71
|
private resolveTarget;
|
|
63
|
-
private
|
|
64
|
-
private
|
|
72
|
+
private findRootQueryBoundary;
|
|
73
|
+
private resolveTargetPlacement;
|
|
65
74
|
private resolveSourceBinding;
|
|
66
75
|
private resolveUpstreamQuery;
|
|
67
|
-
private
|
|
76
|
+
private resolveUnionTarget;
|
|
77
|
+
private resolveTargetColumns;
|
|
78
|
+
private resolveTargetColumnByOutputIndex;
|
|
79
|
+
private resolveDeepestBranchTarget;
|
|
68
80
|
private verifyColumnResolvableInQuery;
|
|
81
|
+
private isGroupKeyColumn;
|
|
82
|
+
private sameResolvableColumnInQuery;
|
|
83
|
+
private resolveColumnSourceAlias;
|
|
69
84
|
private rebaseCondition;
|
|
70
85
|
private getSourceBindings;
|
|
71
86
|
private findNullableSideBoundary;
|
|
72
87
|
private hasOuterJoin;
|
|
88
|
+
private hasDistinctOnBoundary;
|
|
89
|
+
private hasOrdinaryDistinct;
|
|
73
90
|
private getOutputColumnMatchCount;
|
|
91
|
+
private collectUnionBranches;
|
|
92
|
+
private resolveUnionOutputIndex;
|
|
93
|
+
private collectSelectOutputs;
|
|
74
94
|
private resolveSourceQueryForColumns;
|
|
75
|
-
private getSelectItemOutputName;
|
|
76
95
|
private findCte;
|
|
77
96
|
private countTableSourceReferences;
|
|
78
97
|
private hasWindowUsage;
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
import { SelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
|
|
2
2
|
import { ValueComponent } from "../models/ValueComponent";
|
|
3
|
-
|
|
3
|
+
import { SqlFormatterOptions } from "./SqlFormatter";
|
|
4
|
+
export type FormattableSqlComponent = SelectQuery | SimpleSelectQuery | ValueComponent;
|
|
5
|
+
export type SqlComponentFormatter = (component: FormattableSqlComponent) => string;
|
|
6
|
+
export interface SqlComponentFormatOptions {
|
|
7
|
+
formatter?: SqlComponentFormatter;
|
|
8
|
+
formatOptions?: SqlFormatterOptions;
|
|
9
|
+
}
|
|
10
|
+
export declare const formatSqlComponent: (component: FormattableSqlComponent, options?: SqlComponentFormatOptions) => string;
|
|
11
|
+
export declare const hasSqlComponentFormatOverride: (options?: SqlComponentFormatOptions) => boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
|
|
2
|
+
import { SqlComponentFormatOptions } from "./SqlComponentFormatter";
|
|
2
3
|
export type StaticPredicatePlacementInput = string | SelectQuery | SimpleSelectQuery;
|
|
3
4
|
/**
|
|
4
5
|
* Safe-only placement for parameter-free static predicates.
|
|
@@ -7,8 +8,14 @@ export type StaticPredicatePlacementInput = string | SelectQuery | SimpleSelectQ
|
|
|
7
8
|
* be mechanically rebased to direct outputs of a single-use simple CTE or
|
|
8
9
|
* derived table. Unsupported or ambiguous predicates stay in place.
|
|
9
10
|
*/
|
|
10
|
-
export interface StaticPredicatePlacementOptions {
|
|
11
|
+
export interface StaticPredicatePlacementOptions extends SqlComponentFormatOptions {
|
|
11
12
|
dryRun?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Whether AST/model inputs should be cloned before optimization.
|
|
15
|
+
* Defaults to true for public-call safety. Internal pipelines can pass false
|
|
16
|
+
* when they own the model and want to avoid AST -> SQL -> AST round trips.
|
|
17
|
+
*/
|
|
18
|
+
cloneInput?: boolean;
|
|
12
19
|
}
|
|
13
20
|
export interface StaticPredicatePlacementWarning {
|
|
14
21
|
code: string;
|
|
@@ -43,6 +50,7 @@ export interface StaticPredicatePlacementSafety {
|
|
|
43
50
|
export interface StaticPredicatePlacementResult {
|
|
44
51
|
ok: boolean;
|
|
45
52
|
sql: string;
|
|
53
|
+
query: SelectQuery | null;
|
|
46
54
|
applied: readonly StaticPredicateMove[];
|
|
47
55
|
skipped: readonly StaticPredicateSkipped[];
|
|
48
56
|
warnings: readonly StaticPredicatePlacementWarning[];
|
|
@@ -58,20 +66,30 @@ export declare class StaticPredicatePlacementOptimizer {
|
|
|
58
66
|
private isExistsPredicate;
|
|
59
67
|
private findUnsupportedExpression;
|
|
60
68
|
private resolveTarget;
|
|
61
|
-
private
|
|
62
|
-
private
|
|
69
|
+
private findRootQueryBoundary;
|
|
70
|
+
private resolveTargetPlacement;
|
|
63
71
|
private resolveSourceBinding;
|
|
64
72
|
private resolveUpstreamQuery;
|
|
73
|
+
private resolveUnionTarget;
|
|
65
74
|
private resolveTargetColumns;
|
|
75
|
+
private resolveDeepestBranchTarget;
|
|
66
76
|
private verifyColumnResolvableInQuery;
|
|
77
|
+
private isGroupKeyColumn;
|
|
78
|
+
private sameResolvableColumnInQuery;
|
|
79
|
+
private resolveColumnSourceAlias;
|
|
67
80
|
private rebasePredicate;
|
|
68
81
|
private getSourceBindings;
|
|
69
82
|
private findNullableSideBoundary;
|
|
70
83
|
private hasLaterJoinThatNullsPriorSources;
|
|
71
84
|
private hasOuterJoin;
|
|
85
|
+
private hasDistinctOnBoundary;
|
|
86
|
+
private hasOrdinaryDistinct;
|
|
72
87
|
private getOutputColumnMatchCount;
|
|
88
|
+
private collectUnionBranches;
|
|
89
|
+
private resolveUnionOutputIndex;
|
|
90
|
+
private resolveTargetColumnByOutputIndex;
|
|
91
|
+
private collectSelectOutputs;
|
|
73
92
|
private resolveSourceQueryForColumns;
|
|
74
|
-
private getSelectItemOutputName;
|
|
75
93
|
private findCte;
|
|
76
94
|
private countTableSourceReferences;
|
|
77
95
|
private collectSourceAliases;
|
|
@@ -9,11 +9,20 @@ const SSSQLFilterBuilder_1 = require("./SSSQLFilterBuilder");
|
|
|
9
9
|
const SqlComponentFormatter_1 = require("./SqlComponentFormatter");
|
|
10
10
|
const hasOwnParameter = (parameters, parameterName) => Object.prototype.hasOwnProperty.call(parameters, parameterName);
|
|
11
11
|
const isAbsentOptionalValue = (parameters, parameterName) => parameters[parameterName] === null || parameters[parameterName] === undefined;
|
|
12
|
-
const parseConditionOptimizationInput = (input) => {
|
|
12
|
+
const parseConditionOptimizationInput = (input, options) => {
|
|
13
13
|
const warnings = [];
|
|
14
14
|
const errors = [];
|
|
15
|
-
const sourceSql = typeof input === "string" ? input : (0, SqlComponentFormatter_1.formatSqlComponent)(input);
|
|
15
|
+
const sourceSql = typeof input === "string" ? input : (0, SqlComponentFormatter_1.formatSqlComponent)(input, options);
|
|
16
16
|
const formatterGeneratedSource = typeof input !== "string";
|
|
17
|
+
if (typeof input !== "string" && options.cloneInput === false) {
|
|
18
|
+
return {
|
|
19
|
+
query: input,
|
|
20
|
+
sql: sourceSql,
|
|
21
|
+
formatterGeneratedSource: false,
|
|
22
|
+
warnings,
|
|
23
|
+
errors
|
|
24
|
+
};
|
|
25
|
+
}
|
|
17
26
|
if (formatterGeneratedSource) {
|
|
18
27
|
warnings.push({
|
|
19
28
|
phaseKind: "sssql_optional_condition",
|
|
@@ -46,31 +55,31 @@ const parseConditionOptimizationInput = (input) => {
|
|
|
46
55
|
};
|
|
47
56
|
}
|
|
48
57
|
};
|
|
49
|
-
const buildSssqlApplied = (branch) => {
|
|
58
|
+
const buildSssqlApplied = (branch, options) => {
|
|
50
59
|
return {
|
|
51
60
|
phaseKind: "sssql_optional_condition",
|
|
52
61
|
kind: "prune_optional_branch",
|
|
53
|
-
conditionSql: (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression),
|
|
62
|
+
conditionSql: (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options),
|
|
54
63
|
parameterName: branch.parameterName,
|
|
55
64
|
reason: "The optional branch parameter is explicitly absent, so the safe-only SSSQL phase pruned the branch."
|
|
56
65
|
};
|
|
57
66
|
};
|
|
58
|
-
const buildSssqlRefreshApplied = (branch, previousConditionSql) => {
|
|
67
|
+
const buildSssqlRefreshApplied = (branch, previousConditionSql, options) => {
|
|
59
68
|
return {
|
|
60
69
|
phaseKind: "sssql_optional_condition",
|
|
61
70
|
kind: "refresh_optional_branch",
|
|
62
|
-
conditionSql: (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression),
|
|
71
|
+
conditionSql: (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options),
|
|
63
72
|
previousConditionSql,
|
|
64
73
|
parameterName: branch.parameterName,
|
|
65
74
|
reason: "The safe-only SSSQL phase refreshed the optional branch placement before ordinary parameter placement."
|
|
66
75
|
};
|
|
67
76
|
};
|
|
68
|
-
const buildSssqlSkipped = (branch, parameters) => {
|
|
77
|
+
const buildSssqlSkipped = (branch, parameters, options) => {
|
|
69
78
|
const parameterProvided = hasOwnParameter(parameters, branch.parameterName);
|
|
70
79
|
return {
|
|
71
80
|
phaseKind: "sssql_optional_condition",
|
|
72
81
|
kind: "optional_branch_skipped",
|
|
73
|
-
conditionSql: (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression),
|
|
82
|
+
conditionSql: (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options),
|
|
74
83
|
parameterName: branch.parameterName,
|
|
75
84
|
code: parameterProvided
|
|
76
85
|
? "SSSQL_OPTIONAL_PARAMETER_PRESENT"
|
|
@@ -80,11 +89,11 @@ const buildSssqlSkipped = (branch, parameters) => {
|
|
|
80
89
|
: "No optional branch parameter value was provided, so the branch remains unchanged."
|
|
81
90
|
};
|
|
82
91
|
};
|
|
83
|
-
const buildSssqlRefreshSkipped = (branch, code, reason) => {
|
|
92
|
+
const buildSssqlRefreshSkipped = (branch, code, reason, options) => {
|
|
84
93
|
return {
|
|
85
94
|
phaseKind: "sssql_optional_condition",
|
|
86
95
|
kind: "optional_branch_skipped",
|
|
87
|
-
conditionSql: (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression),
|
|
96
|
+
conditionSql: (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options),
|
|
88
97
|
parameterName: branch.parameterName,
|
|
89
98
|
code,
|
|
90
99
|
reason
|
|
@@ -99,78 +108,94 @@ const buildSssqlRefreshFilters = (branches, parameters) => {
|
|
|
99
108
|
}
|
|
100
109
|
return filters;
|
|
101
110
|
};
|
|
102
|
-
const refreshRemainingSssqlBranches = (
|
|
103
|
-
const parsed = parseConditionOptimizationInput(sql);
|
|
111
|
+
const refreshRemainingSssqlBranches = (query, fallbackSql, parameters, options) => {
|
|
104
112
|
const applied = [];
|
|
105
113
|
const skipped = [];
|
|
106
|
-
|
|
107
|
-
return {
|
|
108
|
-
sql: parsed.sql,
|
|
109
|
-
applied,
|
|
110
|
-
skipped,
|
|
111
|
-
warnings: parsed.warnings,
|
|
112
|
-
errors: parsed.errors,
|
|
113
|
-
formatterGeneratedSource: parsed.formatterGeneratedSource
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
const beforeBranches = (0, PruneOptionalConditionBranches_1.collectSupportedOptionalConditionBranches)(parsed.query);
|
|
114
|
+
const beforeBranches = (0, PruneOptionalConditionBranches_1.collectSupportedOptionalConditionBranches)(query);
|
|
117
115
|
if (beforeBranches.length === 0) {
|
|
118
116
|
return {
|
|
119
|
-
|
|
117
|
+
query,
|
|
118
|
+
sql: fallbackSql,
|
|
120
119
|
applied,
|
|
121
120
|
skipped,
|
|
122
|
-
warnings:
|
|
123
|
-
errors:
|
|
124
|
-
formatterGeneratedSource:
|
|
121
|
+
warnings: [],
|
|
122
|
+
errors: [],
|
|
123
|
+
formatterGeneratedSource: false
|
|
125
124
|
};
|
|
126
125
|
}
|
|
127
126
|
const beforeBranchSql = new WeakMap();
|
|
128
127
|
const beforeBranchQuery = new WeakMap();
|
|
129
128
|
for (const branch of beforeBranches) {
|
|
130
|
-
beforeBranchSql.set(branch.expression, (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression));
|
|
129
|
+
beforeBranchSql.set(branch.expression, (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options));
|
|
131
130
|
beforeBranchQuery.set(branch.expression, branch.query);
|
|
132
131
|
}
|
|
133
132
|
try {
|
|
134
|
-
new SSSQLFilterBuilder_1.SSSQLFilterBuilder().refresh(
|
|
133
|
+
new SSSQLFilterBuilder_1.SSSQLFilterBuilder().refresh(query, buildSssqlRefreshFilters(beforeBranches, parameters));
|
|
135
134
|
}
|
|
136
135
|
catch (error) {
|
|
137
136
|
const detail = error instanceof Error ? error.message : String(error);
|
|
138
137
|
return {
|
|
139
|
-
|
|
138
|
+
query,
|
|
139
|
+
sql: fallbackSql,
|
|
140
140
|
applied,
|
|
141
|
-
skipped: beforeBranches.map(branch => buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_UNSUPPORTED", `SSSQL optional branch refresh was skipped because safe refresh could not be proven: ${detail}
|
|
142
|
-
warnings:
|
|
143
|
-
errors:
|
|
144
|
-
formatterGeneratedSource:
|
|
141
|
+
skipped: beforeBranches.map(branch => buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_UNSUPPORTED", `SSSQL optional branch refresh was skipped because safe refresh could not be proven: ${detail}`, options)),
|
|
142
|
+
warnings: [],
|
|
143
|
+
errors: [],
|
|
144
|
+
formatterGeneratedSource: false
|
|
145
145
|
};
|
|
146
146
|
}
|
|
147
|
-
const afterBranches = (0, PruneOptionalConditionBranches_1.collectSupportedOptionalConditionBranches)(
|
|
147
|
+
const afterBranches = (0, PruneOptionalConditionBranches_1.collectSupportedOptionalConditionBranches)(query);
|
|
148
148
|
for (const branch of afterBranches) {
|
|
149
149
|
const previousSql = beforeBranchSql.get(branch.expression);
|
|
150
150
|
const previousQuery = beforeBranchQuery.get(branch.expression);
|
|
151
151
|
if (!previousSql || !previousQuery) {
|
|
152
|
-
skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_UNSUPPORTED", "SSSQL optional branch refresh left an untracked branch unchanged."));
|
|
152
|
+
skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_UNSUPPORTED", "SSSQL optional branch refresh left an untracked branch unchanged.", options));
|
|
153
153
|
continue;
|
|
154
154
|
}
|
|
155
|
-
const refreshedSql = (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression);
|
|
155
|
+
const refreshedSql = (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options);
|
|
156
156
|
if (previousQuery !== branch.query || previousSql !== refreshedSql) {
|
|
157
|
-
applied.push(buildSssqlRefreshApplied(branch, previousSql));
|
|
157
|
+
applied.push(buildSssqlRefreshApplied(branch, previousSql, options));
|
|
158
158
|
continue;
|
|
159
159
|
}
|
|
160
|
-
skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_NOOP", "SSSQL optional branch refresh found no safe placement change to apply."));
|
|
160
|
+
skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_NOOP", "SSSQL optional branch refresh found no safe placement change to apply.", options));
|
|
161
161
|
}
|
|
162
162
|
return {
|
|
163
|
-
|
|
163
|
+
query,
|
|
164
|
+
sql: applied.length > 0 || (0, SqlComponentFormatter_1.hasSqlComponentFormatOverride)(options)
|
|
165
|
+
? (0, SqlComponentFormatter_1.formatSqlComponent)(query, options)
|
|
166
|
+
: fallbackSql,
|
|
164
167
|
applied,
|
|
165
168
|
skipped,
|
|
166
|
-
warnings:
|
|
167
|
-
errors:
|
|
168
|
-
formatterGeneratedSource:
|
|
169
|
+
warnings: [],
|
|
170
|
+
errors: [],
|
|
171
|
+
formatterGeneratedSource: false
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
const refreshRemainingSssqlBranchesFromSql = (sql, parameters, options) => {
|
|
175
|
+
const parsed = parseConditionOptimizationInput(sql, options);
|
|
176
|
+
if (!parsed.query) {
|
|
177
|
+
return {
|
|
178
|
+
query: null,
|
|
179
|
+
sql: parsed.sql,
|
|
180
|
+
applied: [],
|
|
181
|
+
skipped: [],
|
|
182
|
+
warnings: parsed.warnings,
|
|
183
|
+
errors: parsed.errors,
|
|
184
|
+
formatterGeneratedSource: parsed.formatterGeneratedSource
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
const refreshed = refreshRemainingSssqlBranches(parsed.query, sql, parameters, options);
|
|
188
|
+
return {
|
|
189
|
+
...refreshed,
|
|
190
|
+
warnings: [...parsed.warnings, ...refreshed.warnings],
|
|
191
|
+
errors: [...parsed.errors, ...refreshed.errors],
|
|
192
|
+
formatterGeneratedSource: parsed.formatterGeneratedSource || refreshed.formatterGeneratedSource
|
|
169
193
|
};
|
|
170
194
|
};
|
|
171
195
|
const runSssqlOptionalConditionPhase = (input, options) => {
|
|
172
196
|
var _a;
|
|
173
|
-
const
|
|
197
|
+
const reuseOwnedModel = options.cloneInput === false && typeof input !== "string";
|
|
198
|
+
const parsed = parseConditionOptimizationInput(input, options);
|
|
174
199
|
const warnings = [...parsed.warnings];
|
|
175
200
|
let errors = [...parsed.errors];
|
|
176
201
|
const applied = [];
|
|
@@ -178,6 +203,7 @@ const runSssqlOptionalConditionPhase = (input, options) => {
|
|
|
178
203
|
const optionalConditionParameters = (_a = options.optionalConditionParameters) !== null && _a !== void 0 ? _a : {};
|
|
179
204
|
if (!parsed.query) {
|
|
180
205
|
return {
|
|
206
|
+
query: null,
|
|
181
207
|
sql: parsed.sql,
|
|
182
208
|
applied,
|
|
183
209
|
skipped,
|
|
@@ -187,14 +213,16 @@ const runSssqlOptionalConditionPhase = (input, options) => {
|
|
|
187
213
|
};
|
|
188
214
|
}
|
|
189
215
|
let currentSql = parsed.sql;
|
|
216
|
+
let currentQuery = parsed.query;
|
|
217
|
+
let formatterGeneratedSource = parsed.formatterGeneratedSource;
|
|
190
218
|
const branches = (0, PruneOptionalConditionBranches_1.collectSupportedOptionalConditionBranches)(parsed.query);
|
|
191
219
|
const pruneBranches = branches.filter(branch => hasOwnParameter(optionalConditionParameters, branch.parameterName)
|
|
192
220
|
&& isAbsentOptionalValue(optionalConditionParameters, branch.parameterName));
|
|
193
221
|
if (pruneBranches.length > 0) {
|
|
194
222
|
try {
|
|
195
223
|
(0, PruneOptionalConditionBranches_1.pruneOptionalConditionBranches)(parsed.query, optionalConditionParameters);
|
|
196
|
-
currentSql = (0, SqlComponentFormatter_1.formatSqlComponent)(parsed.query);
|
|
197
|
-
applied.push(...pruneBranches.map(buildSssqlApplied));
|
|
224
|
+
currentSql = (0, SqlComponentFormatter_1.formatSqlComponent)(parsed.query, options);
|
|
225
|
+
applied.push(...pruneBranches.map(branch => buildSssqlApplied(branch, options)));
|
|
198
226
|
}
|
|
199
227
|
catch (error) {
|
|
200
228
|
errors = [...errors, {
|
|
@@ -206,28 +234,33 @@ const runSssqlOptionalConditionPhase = (input, options) => {
|
|
|
206
234
|
}
|
|
207
235
|
}
|
|
208
236
|
if (errors.length === 0) {
|
|
209
|
-
const refreshPhase =
|
|
237
|
+
const refreshPhase = reuseOwnedModel
|
|
238
|
+
? refreshRemainingSssqlBranches(parsed.query, currentSql, optionalConditionParameters, options)
|
|
239
|
+
: refreshRemainingSssqlBranchesFromSql(currentSql, optionalConditionParameters, options);
|
|
210
240
|
applied.push(...refreshPhase.applied);
|
|
211
241
|
skipped.push(...refreshPhase.skipped);
|
|
212
242
|
warnings.push(...refreshPhase.warnings);
|
|
213
243
|
errors.push(...refreshPhase.errors);
|
|
214
244
|
currentSql = refreshPhase.sql;
|
|
245
|
+
currentQuery = refreshPhase.query;
|
|
246
|
+
formatterGeneratedSource = formatterGeneratedSource || refreshPhase.formatterGeneratedSource;
|
|
215
247
|
}
|
|
216
248
|
else {
|
|
217
249
|
for (const branch of branches) {
|
|
218
250
|
if (pruneBranches.includes(branch)) {
|
|
219
251
|
continue;
|
|
220
252
|
}
|
|
221
|
-
skipped.push(buildSssqlSkipped(branch, optionalConditionParameters));
|
|
253
|
+
skipped.push(buildSssqlSkipped(branch, optionalConditionParameters, options));
|
|
222
254
|
}
|
|
223
255
|
}
|
|
224
256
|
return {
|
|
257
|
+
query: errors.length === 0 ? currentQuery : null,
|
|
225
258
|
sql: errors.length === 0 ? currentSql : parsed.sql,
|
|
226
259
|
applied,
|
|
227
260
|
skipped,
|
|
228
261
|
warnings,
|
|
229
262
|
errors,
|
|
230
|
-
formatterGeneratedSource
|
|
263
|
+
formatterGeneratedSource
|
|
231
264
|
};
|
|
232
265
|
};
|
|
233
266
|
const mapParameterWarnings = (warnings) => warnings.map(warning => ({
|
|
@@ -270,21 +303,40 @@ const makePhaseSummary = (kind, counts) => ({
|
|
|
270
303
|
errorCount: counts.errorCount
|
|
271
304
|
});
|
|
272
305
|
const runConditionOptimization = (input, options, defaultDryRun) => {
|
|
273
|
-
var _a;
|
|
306
|
+
var _a, _b, _c;
|
|
274
307
|
const dryRun = (_a = options.dryRun) !== null && _a !== void 0 ? _a : defaultDryRun;
|
|
308
|
+
const reuseOwnedModel = options.cloneInput === false && typeof input !== "string";
|
|
275
309
|
// Run semantic SSSQL handling before generic placement phases so optional
|
|
276
310
|
// branches remain owned by SSSQL even if later phases grow broader support.
|
|
277
311
|
const sssqlPhase = runSssqlOptionalConditionPhase(input, { ...options, dryRun });
|
|
312
|
+
const parameterOptimizer = new ParameterConditionPlacementOptimizer_1.ParameterConditionPlacementOptimizer();
|
|
313
|
+
const parameterInput = reuseOwnedModel
|
|
314
|
+
? (_b = sssqlPhase.query) !== null && _b !== void 0 ? _b : sssqlPhase.sql
|
|
315
|
+
: sssqlPhase.sql;
|
|
316
|
+
const parameterOptions = {
|
|
317
|
+
...options,
|
|
318
|
+
dryRun,
|
|
319
|
+
cloneInput: reuseOwnedModel && sssqlPhase.query ? false : options.cloneInput
|
|
320
|
+
};
|
|
278
321
|
const parameterPhase = dryRun
|
|
279
|
-
?
|
|
280
|
-
:
|
|
322
|
+
? parameterOptimizer.plan(parameterInput, parameterOptions)
|
|
323
|
+
: parameterOptimizer.optimize(parameterInput, parameterOptions);
|
|
281
324
|
const parameterWarnings = mapParameterWarnings(parameterPhase.warnings);
|
|
282
325
|
const parameterErrors = mapParameterErrors(parameterPhase.errors);
|
|
283
326
|
const parameterApplied = mapParameterApplied(parameterPhase.applied);
|
|
284
327
|
const parameterSkipped = mapParameterSkipped(parameterPhase.skipped);
|
|
328
|
+
const staticOptimizer = new StaticPredicatePlacementOptimizer_1.StaticPredicatePlacementOptimizer();
|
|
329
|
+
const staticInput = reuseOwnedModel
|
|
330
|
+
? (_c = parameterPhase.query) !== null && _c !== void 0 ? _c : parameterPhase.sql
|
|
331
|
+
: parameterPhase.sql;
|
|
332
|
+
const staticOptions = {
|
|
333
|
+
...options,
|
|
334
|
+
dryRun,
|
|
335
|
+
cloneInput: reuseOwnedModel && parameterPhase.query ? false : options.cloneInput
|
|
336
|
+
};
|
|
285
337
|
const staticPhase = dryRun
|
|
286
|
-
?
|
|
287
|
-
:
|
|
338
|
+
? staticOptimizer.plan(staticInput, staticOptions)
|
|
339
|
+
: staticOptimizer.optimize(staticInput, staticOptions);
|
|
288
340
|
const staticWarnings = mapStaticWarnings(staticPhase.warnings);
|
|
289
341
|
const staticErrors = mapStaticErrors(staticPhase.errors);
|
|
290
342
|
const staticApplied = mapStaticApplied(staticPhase.applied);
|
|
@@ -294,6 +346,7 @@ const runConditionOptimization = (input, options, defaultDryRun) => {
|
|
|
294
346
|
return {
|
|
295
347
|
ok: errors.length === 0,
|
|
296
348
|
sql: staticPhase.sql,
|
|
349
|
+
query: staticPhase.query,
|
|
297
350
|
phases: [
|
|
298
351
|
makePhaseSummary("sssql_optional_condition", {
|
|
299
352
|
appliedCount: sssqlPhase.applied.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionOptimization.js","sourceRoot":"","sources":["../../src/transformers/ConditionOptimization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConditionOptimization.js","sourceRoot":"","sources":["../../src/transformers/ConditionOptimization.ts"],"names":[],"mappings":"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"}
|