rawsql-ts 0.26.1 → 0.28.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 +5 -0
- package/dist/esm/transformers/ConditionOptimization.js +125 -67
- 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 +5 -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 +135 -62
- 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';
|
|
@@ -19,6 +19,7 @@ export interface ConditionOptimizationPhaseSummary {
|
|
|
19
19
|
warningCount: number;
|
|
20
20
|
errorCount: number;
|
|
21
21
|
}
|
|
22
|
+
export type ConditionOptimizationSkipDisposition = "blocked" | "unchanged" | "ignored";
|
|
22
23
|
export interface SssqlOptionalConditionApplied {
|
|
23
24
|
phaseKind: "sssql_optional_condition";
|
|
24
25
|
kind: "prune_optional_branch" | "refresh_optional_branch";
|
|
@@ -34,6 +35,7 @@ export interface SssqlOptionalConditionSkipped {
|
|
|
34
35
|
parameterName: string;
|
|
35
36
|
code: string;
|
|
36
37
|
reason: string;
|
|
38
|
+
skipDisposition: ConditionOptimizationSkipDisposition;
|
|
37
39
|
}
|
|
38
40
|
export type ConditionOptimizationApplied = SssqlOptionalConditionApplied | (ParameterConditionMove & {
|
|
39
41
|
phaseKind: "parameter_condition_placement";
|
|
@@ -42,8 +44,10 @@ export type ConditionOptimizationApplied = SssqlOptionalConditionApplied | (Para
|
|
|
42
44
|
});
|
|
43
45
|
export type ConditionOptimizationSkipped = SssqlOptionalConditionSkipped | (ParameterConditionSkipped & {
|
|
44
46
|
phaseKind: "parameter_condition_placement";
|
|
47
|
+
skipDisposition: ConditionOptimizationSkipDisposition;
|
|
45
48
|
}) | (StaticPredicateSkipped & {
|
|
46
49
|
phaseKind: "static_predicate_placement";
|
|
50
|
+
skipDisposition: ConditionOptimizationSkipDisposition;
|
|
47
51
|
});
|
|
48
52
|
export type ConditionOptimizationWarning = (ParameterConditionOptimizationWarning & {
|
|
49
53
|
phaseKind: ConditionOptimizationPhaseKind;
|
|
@@ -64,6 +68,7 @@ export interface ConditionOptimizationSafety {
|
|
|
64
68
|
export interface ConditionOptimizationResult {
|
|
65
69
|
ok: boolean;
|
|
66
70
|
sql: string;
|
|
71
|
+
query: SelectQuery | null;
|
|
67
72
|
phases: readonly ConditionOptimizationPhaseSummary[];
|
|
68
73
|
applied: readonly ConditionOptimizationApplied[];
|
|
69
74
|
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,48 +55,50 @@ 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"
|
|
77
86
|
: "SSSQL_OPTIONAL_PARAMETER_NOT_PROVIDED",
|
|
78
87
|
reason: parameterProvided
|
|
79
88
|
? "The optional branch parameter is present, so the branch remains active."
|
|
80
|
-
: "No optional branch parameter value was provided, so the branch remains unchanged."
|
|
89
|
+
: "No optional branch parameter value was provided, so the branch remains unchanged.",
|
|
90
|
+
skipDisposition: parameterProvided ? "unchanged" : "ignored"
|
|
81
91
|
};
|
|
82
92
|
};
|
|
83
|
-
const buildSssqlRefreshSkipped = (branch, code, reason) => {
|
|
93
|
+
const buildSssqlRefreshSkipped = (branch, code, reason, skipDisposition, options) => {
|
|
84
94
|
return {
|
|
85
95
|
phaseKind: "sssql_optional_condition",
|
|
86
96
|
kind: "optional_branch_skipped",
|
|
87
|
-
conditionSql: (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression),
|
|
97
|
+
conditionSql: (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options),
|
|
88
98
|
parameterName: branch.parameterName,
|
|
89
99
|
code,
|
|
90
|
-
reason
|
|
100
|
+
reason,
|
|
101
|
+
skipDisposition
|
|
91
102
|
};
|
|
92
103
|
};
|
|
93
104
|
const buildSssqlRefreshFilters = (branches, parameters) => {
|
|
@@ -99,78 +110,110 @@ const buildSssqlRefreshFilters = (branches, parameters) => {
|
|
|
99
110
|
}
|
|
100
111
|
return filters;
|
|
101
112
|
};
|
|
102
|
-
const refreshRemainingSssqlBranches = (
|
|
103
|
-
|
|
113
|
+
const refreshRemainingSssqlBranches = (query, fallbackSql, parameters, options) => {
|
|
114
|
+
var _a, _b;
|
|
104
115
|
const applied = [];
|
|
105
116
|
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);
|
|
117
|
+
const beforeBranches = (0, PruneOptionalConditionBranches_1.collectSupportedOptionalConditionBranches)(query);
|
|
117
118
|
if (beforeBranches.length === 0) {
|
|
118
119
|
return {
|
|
119
|
-
|
|
120
|
+
query,
|
|
121
|
+
sql: fallbackSql,
|
|
120
122
|
applied,
|
|
121
123
|
skipped,
|
|
122
|
-
warnings:
|
|
123
|
-
errors:
|
|
124
|
-
formatterGeneratedSource:
|
|
124
|
+
warnings: [],
|
|
125
|
+
errors: [],
|
|
126
|
+
formatterGeneratedSource: false
|
|
125
127
|
};
|
|
126
128
|
}
|
|
127
129
|
const beforeBranchSql = new WeakMap();
|
|
128
130
|
const beforeBranchQuery = new WeakMap();
|
|
131
|
+
const parameterCounts = new Map();
|
|
129
132
|
for (const branch of beforeBranches) {
|
|
130
|
-
beforeBranchSql.set(branch.expression, (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression));
|
|
133
|
+
beforeBranchSql.set(branch.expression, (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options));
|
|
131
134
|
beforeBranchQuery.set(branch.expression, branch.query);
|
|
135
|
+
parameterCounts.set(branch.parameterName, ((_a = parameterCounts.get(branch.parameterName)) !== null && _a !== void 0 ? _a : 0) + 1);
|
|
132
136
|
}
|
|
133
|
-
|
|
134
|
-
|
|
137
|
+
const alreadyReportedExpressions = new WeakSet();
|
|
138
|
+
const refreshableBranches = [];
|
|
139
|
+
for (const branch of beforeBranches) {
|
|
140
|
+
if (((_b = parameterCounts.get(branch.parameterName)) !== null && _b !== void 0 ? _b : 0) > 1) {
|
|
141
|
+
skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_DUPLICATE_PARAMETER_UNCHANGED", "SSSQL optional branch refresh left this duplicate parameter branch unchanged so each query scope can keep its existing local predicate.", "unchanged", options));
|
|
142
|
+
alreadyReportedExpressions.add(branch.expression);
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
refreshableBranches.push(branch);
|
|
135
146
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
};
|
|
147
|
+
for (const branch of refreshableBranches) {
|
|
148
|
+
try {
|
|
149
|
+
new SSSQLFilterBuilder_1.SSSQLFilterBuilder().refresh(query, buildSssqlRefreshFilters([branch], parameters));
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
153
|
+
skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_UNSUPPORTED", `SSSQL optional branch refresh was skipped because safe refresh could not be proven: ${detail}`, "blocked", options));
|
|
154
|
+
alreadyReportedExpressions.add(branch.expression);
|
|
155
|
+
}
|
|
146
156
|
}
|
|
147
|
-
const afterBranches = (0, PruneOptionalConditionBranches_1.collectSupportedOptionalConditionBranches)(
|
|
157
|
+
const afterBranches = (0, PruneOptionalConditionBranches_1.collectSupportedOptionalConditionBranches)(query);
|
|
148
158
|
for (const branch of afterBranches) {
|
|
159
|
+
if (alreadyReportedExpressions.has(branch.expression)) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
149
162
|
const previousSql = beforeBranchSql.get(branch.expression);
|
|
150
163
|
const previousQuery = beforeBranchQuery.get(branch.expression);
|
|
151
164
|
if (!previousSql || !previousQuery) {
|
|
152
|
-
skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_UNSUPPORTED", "SSSQL optional branch refresh left an untracked branch unchanged."));
|
|
165
|
+
skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_UNSUPPORTED", "SSSQL optional branch refresh left an untracked branch unchanged.", "blocked", options));
|
|
153
166
|
continue;
|
|
154
167
|
}
|
|
155
|
-
const refreshedSql = (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression);
|
|
168
|
+
const refreshedSql = (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options);
|
|
156
169
|
if (previousQuery !== branch.query || previousSql !== refreshedSql) {
|
|
157
|
-
applied.push(buildSssqlRefreshApplied(branch, previousSql));
|
|
170
|
+
applied.push(buildSssqlRefreshApplied(branch, previousSql, options));
|
|
158
171
|
continue;
|
|
159
172
|
}
|
|
160
|
-
|
|
173
|
+
const parameterProvided = hasOwnParameter(parameters, branch.parameterName);
|
|
174
|
+
skipped.push(buildSssqlRefreshSkipped(branch, parameterProvided
|
|
175
|
+
? "SSSQL_OPTIONAL_REFRESH_NOOP"
|
|
176
|
+
: "SSSQL_OPTIONAL_PARAMETER_NOT_PROVIDED", parameterProvided
|
|
177
|
+
? "SSSQL optional branch refresh found no safe placement change to apply."
|
|
178
|
+
: "No optional branch parameter value was provided, so the branch was not a refresh target.", parameterProvided ? "unchanged" : "ignored", options));
|
|
161
179
|
}
|
|
162
180
|
return {
|
|
163
|
-
|
|
181
|
+
query,
|
|
182
|
+
sql: applied.length > 0 || (0, SqlComponentFormatter_1.hasSqlComponentFormatOverride)(options)
|
|
183
|
+
? (0, SqlComponentFormatter_1.formatSqlComponent)(query, options)
|
|
184
|
+
: fallbackSql,
|
|
164
185
|
applied,
|
|
165
186
|
skipped,
|
|
166
|
-
warnings:
|
|
167
|
-
errors:
|
|
168
|
-
formatterGeneratedSource:
|
|
187
|
+
warnings: [],
|
|
188
|
+
errors: [],
|
|
189
|
+
formatterGeneratedSource: false
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
const refreshRemainingSssqlBranchesFromSql = (sql, parameters, options) => {
|
|
193
|
+
const parsed = parseConditionOptimizationInput(sql, options);
|
|
194
|
+
if (!parsed.query) {
|
|
195
|
+
return {
|
|
196
|
+
query: null,
|
|
197
|
+
sql: parsed.sql,
|
|
198
|
+
applied: [],
|
|
199
|
+
skipped: [],
|
|
200
|
+
warnings: parsed.warnings,
|
|
201
|
+
errors: parsed.errors,
|
|
202
|
+
formatterGeneratedSource: parsed.formatterGeneratedSource
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
const refreshed = refreshRemainingSssqlBranches(parsed.query, sql, parameters, options);
|
|
206
|
+
return {
|
|
207
|
+
...refreshed,
|
|
208
|
+
warnings: [...parsed.warnings, ...refreshed.warnings],
|
|
209
|
+
errors: [...parsed.errors, ...refreshed.errors],
|
|
210
|
+
formatterGeneratedSource: parsed.formatterGeneratedSource || refreshed.formatterGeneratedSource
|
|
169
211
|
};
|
|
170
212
|
};
|
|
171
213
|
const runSssqlOptionalConditionPhase = (input, options) => {
|
|
172
214
|
var _a;
|
|
173
|
-
const
|
|
215
|
+
const reuseOwnedModel = options.cloneInput === false && typeof input !== "string";
|
|
216
|
+
const parsed = parseConditionOptimizationInput(input, options);
|
|
174
217
|
const warnings = [...parsed.warnings];
|
|
175
218
|
let errors = [...parsed.errors];
|
|
176
219
|
const applied = [];
|
|
@@ -178,6 +221,7 @@ const runSssqlOptionalConditionPhase = (input, options) => {
|
|
|
178
221
|
const optionalConditionParameters = (_a = options.optionalConditionParameters) !== null && _a !== void 0 ? _a : {};
|
|
179
222
|
if (!parsed.query) {
|
|
180
223
|
return {
|
|
224
|
+
query: null,
|
|
181
225
|
sql: parsed.sql,
|
|
182
226
|
applied,
|
|
183
227
|
skipped,
|
|
@@ -187,14 +231,16 @@ const runSssqlOptionalConditionPhase = (input, options) => {
|
|
|
187
231
|
};
|
|
188
232
|
}
|
|
189
233
|
let currentSql = parsed.sql;
|
|
234
|
+
let currentQuery = parsed.query;
|
|
235
|
+
let formatterGeneratedSource = parsed.formatterGeneratedSource;
|
|
190
236
|
const branches = (0, PruneOptionalConditionBranches_1.collectSupportedOptionalConditionBranches)(parsed.query);
|
|
191
237
|
const pruneBranches = branches.filter(branch => hasOwnParameter(optionalConditionParameters, branch.parameterName)
|
|
192
238
|
&& isAbsentOptionalValue(optionalConditionParameters, branch.parameterName));
|
|
193
239
|
if (pruneBranches.length > 0) {
|
|
194
240
|
try {
|
|
195
241
|
(0, PruneOptionalConditionBranches_1.pruneOptionalConditionBranches)(parsed.query, optionalConditionParameters);
|
|
196
|
-
currentSql = (0, SqlComponentFormatter_1.formatSqlComponent)(parsed.query);
|
|
197
|
-
applied.push(...pruneBranches.map(buildSssqlApplied));
|
|
242
|
+
currentSql = (0, SqlComponentFormatter_1.formatSqlComponent)(parsed.query, options);
|
|
243
|
+
applied.push(...pruneBranches.map(branch => buildSssqlApplied(branch, options)));
|
|
198
244
|
}
|
|
199
245
|
catch (error) {
|
|
200
246
|
errors = [...errors, {
|
|
@@ -206,28 +252,33 @@ const runSssqlOptionalConditionPhase = (input, options) => {
|
|
|
206
252
|
}
|
|
207
253
|
}
|
|
208
254
|
if (errors.length === 0) {
|
|
209
|
-
const refreshPhase =
|
|
255
|
+
const refreshPhase = reuseOwnedModel
|
|
256
|
+
? refreshRemainingSssqlBranches(parsed.query, currentSql, optionalConditionParameters, options)
|
|
257
|
+
: refreshRemainingSssqlBranchesFromSql(currentSql, optionalConditionParameters, options);
|
|
210
258
|
applied.push(...refreshPhase.applied);
|
|
211
259
|
skipped.push(...refreshPhase.skipped);
|
|
212
260
|
warnings.push(...refreshPhase.warnings);
|
|
213
261
|
errors.push(...refreshPhase.errors);
|
|
214
262
|
currentSql = refreshPhase.sql;
|
|
263
|
+
currentQuery = refreshPhase.query;
|
|
264
|
+
formatterGeneratedSource = formatterGeneratedSource || refreshPhase.formatterGeneratedSource;
|
|
215
265
|
}
|
|
216
266
|
else {
|
|
217
267
|
for (const branch of branches) {
|
|
218
268
|
if (pruneBranches.includes(branch)) {
|
|
219
269
|
continue;
|
|
220
270
|
}
|
|
221
|
-
skipped.push(buildSssqlSkipped(branch, optionalConditionParameters));
|
|
271
|
+
skipped.push(buildSssqlSkipped(branch, optionalConditionParameters, options));
|
|
222
272
|
}
|
|
223
273
|
}
|
|
224
274
|
return {
|
|
275
|
+
query: errors.length === 0 ? currentQuery : null,
|
|
225
276
|
sql: errors.length === 0 ? currentSql : parsed.sql,
|
|
226
277
|
applied,
|
|
227
278
|
skipped,
|
|
228
279
|
warnings,
|
|
229
280
|
errors,
|
|
230
|
-
formatterGeneratedSource
|
|
281
|
+
formatterGeneratedSource
|
|
231
282
|
};
|
|
232
283
|
};
|
|
233
284
|
const mapParameterWarnings = (warnings) => warnings.map(warning => ({
|
|
@@ -244,6 +295,7 @@ const mapParameterApplied = (applied) => applied.map(item => ({
|
|
|
244
295
|
}));
|
|
245
296
|
const mapParameterSkipped = (skipped) => skipped.map(item => ({
|
|
246
297
|
phaseKind: "parameter_condition_placement",
|
|
298
|
+
skipDisposition: "blocked",
|
|
247
299
|
...item
|
|
248
300
|
}));
|
|
249
301
|
const mapStaticWarnings = (warnings) => warnings.map(warning => ({
|
|
@@ -260,6 +312,7 @@ const mapStaticApplied = (applied) => applied.map(item => ({
|
|
|
260
312
|
}));
|
|
261
313
|
const mapStaticSkipped = (skipped) => skipped.map(item => ({
|
|
262
314
|
phaseKind: "static_predicate_placement",
|
|
315
|
+
skipDisposition: "blocked",
|
|
263
316
|
...item
|
|
264
317
|
}));
|
|
265
318
|
const makePhaseSummary = (kind, counts) => ({
|
|
@@ -270,21 +323,40 @@ const makePhaseSummary = (kind, counts) => ({
|
|
|
270
323
|
errorCount: counts.errorCount
|
|
271
324
|
});
|
|
272
325
|
const runConditionOptimization = (input, options, defaultDryRun) => {
|
|
273
|
-
var _a;
|
|
326
|
+
var _a, _b, _c;
|
|
274
327
|
const dryRun = (_a = options.dryRun) !== null && _a !== void 0 ? _a : defaultDryRun;
|
|
328
|
+
const reuseOwnedModel = options.cloneInput === false && typeof input !== "string";
|
|
275
329
|
// Run semantic SSSQL handling before generic placement phases so optional
|
|
276
330
|
// branches remain owned by SSSQL even if later phases grow broader support.
|
|
277
331
|
const sssqlPhase = runSssqlOptionalConditionPhase(input, { ...options, dryRun });
|
|
332
|
+
const parameterOptimizer = new ParameterConditionPlacementOptimizer_1.ParameterConditionPlacementOptimizer();
|
|
333
|
+
const parameterInput = reuseOwnedModel
|
|
334
|
+
? (_b = sssqlPhase.query) !== null && _b !== void 0 ? _b : sssqlPhase.sql
|
|
335
|
+
: sssqlPhase.sql;
|
|
336
|
+
const parameterOptions = {
|
|
337
|
+
...options,
|
|
338
|
+
dryRun,
|
|
339
|
+
cloneInput: reuseOwnedModel && sssqlPhase.query ? false : options.cloneInput
|
|
340
|
+
};
|
|
278
341
|
const parameterPhase = dryRun
|
|
279
|
-
?
|
|
280
|
-
:
|
|
342
|
+
? parameterOptimizer.plan(parameterInput, parameterOptions)
|
|
343
|
+
: parameterOptimizer.optimize(parameterInput, parameterOptions);
|
|
281
344
|
const parameterWarnings = mapParameterWarnings(parameterPhase.warnings);
|
|
282
345
|
const parameterErrors = mapParameterErrors(parameterPhase.errors);
|
|
283
346
|
const parameterApplied = mapParameterApplied(parameterPhase.applied);
|
|
284
347
|
const parameterSkipped = mapParameterSkipped(parameterPhase.skipped);
|
|
348
|
+
const staticOptimizer = new StaticPredicatePlacementOptimizer_1.StaticPredicatePlacementOptimizer();
|
|
349
|
+
const staticInput = reuseOwnedModel
|
|
350
|
+
? (_c = parameterPhase.query) !== null && _c !== void 0 ? _c : parameterPhase.sql
|
|
351
|
+
: parameterPhase.sql;
|
|
352
|
+
const staticOptions = {
|
|
353
|
+
...options,
|
|
354
|
+
dryRun,
|
|
355
|
+
cloneInput: reuseOwnedModel && parameterPhase.query ? false : options.cloneInput
|
|
356
|
+
};
|
|
285
357
|
const staticPhase = dryRun
|
|
286
|
-
?
|
|
287
|
-
:
|
|
358
|
+
? staticOptimizer.plan(staticInput, staticOptions)
|
|
359
|
+
: staticOptimizer.optimize(staticInput, staticOptions);
|
|
288
360
|
const staticWarnings = mapStaticWarnings(staticPhase.warnings);
|
|
289
361
|
const staticErrors = mapStaticErrors(staticPhase.errors);
|
|
290
362
|
const staticApplied = mapStaticApplied(staticPhase.applied);
|
|
@@ -294,6 +366,7 @@ const runConditionOptimization = (input, options, defaultDryRun) => {
|
|
|
294
366
|
return {
|
|
295
367
|
ok: errors.length === 0,
|
|
296
368
|
sql: staticPhase.sql,
|
|
369
|
+
query: staticPhase.query,
|
|
297
370
|
phases: [
|
|
298
371
|
makePhaseSummary("sssql_optional_condition", {
|
|
299
372
|
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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"}
|