rawsql-ts 0.27.0 → 0.29.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.
Files changed (36) hide show
  1. package/dist/esm/index.min.js +1 -1
  2. package/dist/esm/index.min.js.map +4 -4
  3. package/dist/esm/transformers/ConditionDeduplicationOptimizer.d.ts +22 -0
  4. package/dist/esm/transformers/ConditionDeduplicationOptimizer.js +198 -0
  5. package/dist/esm/transformers/ConditionDeduplicationOptimizer.js.map +1 -0
  6. package/dist/esm/transformers/ConditionOptimization.d.ts +35 -1
  7. package/dist/esm/transformers/ConditionOptimization.js +359 -24
  8. package/dist/esm/transformers/ConditionOptimization.js.map +1 -1
  9. package/dist/esm/transformers/ParameterConditionPlacementOptimizer.d.ts +13 -0
  10. package/dist/esm/transformers/ParameterConditionPlacementOptimizer.js +246 -27
  11. package/dist/esm/transformers/ParameterConditionPlacementOptimizer.js.map +1 -1
  12. package/dist/esm/transformers/StaticPredicatePlacementOptimizer.d.ts +12 -0
  13. package/dist/esm/transformers/StaticPredicatePlacementOptimizer.js +211 -18
  14. package/dist/esm/transformers/StaticPredicatePlacementOptimizer.js.map +1 -1
  15. package/dist/esm/transformers/TopLevelAndConditionDeduper.d.ts +10 -0
  16. package/dist/esm/transformers/TopLevelAndConditionDeduper.js +66 -0
  17. package/dist/esm/transformers/TopLevelAndConditionDeduper.js.map +1 -0
  18. package/dist/index.min.js +1 -1
  19. package/dist/index.min.js.map +4 -4
  20. package/dist/src/transformers/ConditionDeduplicationOptimizer.d.ts +22 -0
  21. package/dist/src/transformers/ConditionOptimization.d.ts +35 -1
  22. package/dist/src/transformers/ParameterConditionPlacementOptimizer.d.ts +13 -0
  23. package/dist/src/transformers/StaticPredicatePlacementOptimizer.d.ts +12 -0
  24. package/dist/src/transformers/TopLevelAndConditionDeduper.d.ts +10 -0
  25. package/dist/transformers/ConditionDeduplicationOptimizer.js +202 -0
  26. package/dist/transformers/ConditionDeduplicationOptimizer.js.map +1 -0
  27. package/dist/transformers/ConditionOptimization.js +362 -22
  28. package/dist/transformers/ConditionOptimization.js.map +1 -1
  29. package/dist/transformers/ParameterConditionPlacementOptimizer.js +245 -26
  30. package/dist/transformers/ParameterConditionPlacementOptimizer.js.map +1 -1
  31. package/dist/transformers/StaticPredicatePlacementOptimizer.js +210 -17
  32. package/dist/transformers/StaticPredicatePlacementOptimizer.js.map +1 -1
  33. package/dist/transformers/TopLevelAndConditionDeduper.js +72 -0
  34. package/dist/transformers/TopLevelAndConditionDeduper.js.map +1 -0
  35. package/dist/tsconfig.browser.tsbuildinfo +1 -1
  36. package/package.json +1 -1
@@ -1,13 +1,314 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.optimizeConditions = exports.planConditionOptimization = void 0;
4
+ const SelectQuery_1 = require("../models/SelectQuery");
5
+ const ValueComponent_1 = require("../models/ValueComponent");
6
+ const Clause_1 = require("../models/Clause");
4
7
  const SelectQueryParser_1 = require("../parsers/SelectQueryParser");
8
+ const ValueComponentRewriter_1 = require("../utils/ValueComponentRewriter");
5
9
  const ParameterConditionPlacementOptimizer_1 = require("./ParameterConditionPlacementOptimizer");
6
10
  const StaticPredicatePlacementOptimizer_1 = require("./StaticPredicatePlacementOptimizer");
11
+ const ConditionDeduplicationOptimizer_1 = require("./ConditionDeduplicationOptimizer");
7
12
  const PruneOptionalConditionBranches_1 = require("./PruneOptionalConditionBranches");
8
13
  const SSSQLFilterBuilder_1 = require("./SSSQLFilterBuilder");
9
14
  const SqlComponentFormatter_1 = require("./SqlComponentFormatter");
15
+ const SqlFormatter_1 = require("./SqlFormatter");
10
16
  const hasOwnParameter = (parameters, parameterName) => Object.prototype.hasOwnProperty.call(parameters, parameterName);
17
+ const normalizeIdentifier = (value) => value.trim().toLowerCase();
18
+ const unwrapParens = (expression) => {
19
+ let candidate = expression;
20
+ while (candidate instanceof ValueComponent_1.ParenExpression) {
21
+ candidate = candidate.expression;
22
+ }
23
+ return candidate;
24
+ };
25
+ const isBinaryOperator = (expression, operator) => {
26
+ const candidate = unwrapParens(expression);
27
+ return candidate instanceof ValueComponent_1.BinaryExpression
28
+ && candidate.operator.value.trim().toLowerCase() === operator;
29
+ };
30
+ const collectTopLevelAndTerms = (expression) => {
31
+ const candidate = unwrapParens(expression);
32
+ if (!isBinaryOperator(candidate, "and")) {
33
+ return [expression];
34
+ }
35
+ return [
36
+ ...collectTopLevelAndTerms(candidate.left),
37
+ ...collectTopLevelAndTerms(candidate.right)
38
+ ];
39
+ };
40
+ const uniqueMatchNames = (names) => {
41
+ const unique = [];
42
+ for (const name of names) {
43
+ if (name && !unique.includes(name)) {
44
+ unique.push(name);
45
+ }
46
+ }
47
+ return unique;
48
+ };
49
+ const getTableSourceTableName = (source) => source.table.name;
50
+ const getProbeSourceAlias = (source) => {
51
+ var _a;
52
+ if (source.aliasExpression) {
53
+ return source.aliasExpression.table.name;
54
+ }
55
+ if (source.datasource instanceof Clause_1.TableSource) {
56
+ return getTableSourceTableName(source.datasource);
57
+ }
58
+ return (_a = source.getAliasName()) !== null && _a !== void 0 ? _a : "";
59
+ };
60
+ const getProbeSourceMatchNames = (source) => {
61
+ var _a;
62
+ if (source.aliasExpression) {
63
+ return uniqueMatchNames([source.aliasExpression.table.name]);
64
+ }
65
+ if (source.datasource instanceof Clause_1.TableSource) {
66
+ return uniqueMatchNames([
67
+ getTableSourceTableName(source.datasource),
68
+ source.datasource.getSourceName()
69
+ ]);
70
+ }
71
+ return uniqueMatchNames([(_a = source.getAliasName()) !== null && _a !== void 0 ? _a : ""]);
72
+ };
73
+ const collectJoinSourceBindings = (query) => {
74
+ var _a;
75
+ if (!query.fromClause) {
76
+ return [];
77
+ }
78
+ const bindings = [{
79
+ source: query.fromClause.source,
80
+ alias: getProbeSourceAlias(query.fromClause.source),
81
+ matchNames: getProbeSourceMatchNames(query.fromClause.source),
82
+ join: null,
83
+ isPrimary: true
84
+ }];
85
+ for (const join of (_a = query.fromClause.joins) !== null && _a !== void 0 ? _a : []) {
86
+ bindings.push({
87
+ source: join.source,
88
+ alias: getProbeSourceAlias(join.source),
89
+ matchNames: getProbeSourceMatchNames(join.source),
90
+ join,
91
+ isPrimary: false
92
+ });
93
+ }
94
+ return bindings;
95
+ };
96
+ const isProbeSafeJoin = (join) => {
97
+ const joinType = join.joinType.value.trim().toLowerCase();
98
+ return joinType === "join" || joinType === "inner join" || joinType === "cross join";
99
+ };
100
+ const collectPredicateReferences = (expression) => {
101
+ const references = [];
102
+ let hasNestedQuery = false;
103
+ const visitSelect = () => {
104
+ hasNestedQuery = true;
105
+ };
106
+ const visit = (value) => {
107
+ const candidate = unwrapParens(value);
108
+ if (candidate instanceof ValueComponent_1.ColumnReference) {
109
+ references.push(candidate);
110
+ return;
111
+ }
112
+ if (candidate instanceof ValueComponent_1.BinaryExpression) {
113
+ visit(candidate.left);
114
+ visit(candidate.right);
115
+ return;
116
+ }
117
+ if (candidate instanceof ValueComponent_1.UnaryExpression) {
118
+ visit(candidate.expression);
119
+ return;
120
+ }
121
+ if (candidate instanceof ValueComponent_1.InlineQuery) {
122
+ visitSelect();
123
+ return;
124
+ }
125
+ if (candidate instanceof ValueComponent_1.ArrayQueryExpression) {
126
+ visitSelect();
127
+ return;
128
+ }
129
+ if (candidate instanceof ValueComponent_1.FunctionCall) {
130
+ if (candidate.argument) {
131
+ visit(candidate.argument);
132
+ }
133
+ if (candidate.filterCondition) {
134
+ visit(candidate.filterCondition);
135
+ }
136
+ return;
137
+ }
138
+ if (candidate instanceof ValueComponent_1.CastExpression) {
139
+ visit(candidate.input);
140
+ return;
141
+ }
142
+ if (candidate instanceof ValueComponent_1.CaseExpression) {
143
+ if (candidate.condition) {
144
+ visit(candidate.condition);
145
+ }
146
+ for (const pair of candidate.switchCase.cases) {
147
+ visit(pair.key);
148
+ visit(pair.value);
149
+ }
150
+ if (candidate.switchCase.elseValue) {
151
+ visit(candidate.switchCase.elseValue);
152
+ }
153
+ return;
154
+ }
155
+ if (candidate instanceof ValueComponent_1.BetweenExpression) {
156
+ visit(candidate.expression);
157
+ visit(candidate.lower);
158
+ visit(candidate.upper);
159
+ return;
160
+ }
161
+ if (candidate instanceof ValueComponent_1.JsonPredicateExpression) {
162
+ visit(candidate.expression);
163
+ return;
164
+ }
165
+ if (candidate instanceof ValueComponent_1.ArrayExpression) {
166
+ visit(candidate.expression);
167
+ return;
168
+ }
169
+ if (candidate instanceof ValueComponent_1.ArrayIndexExpression) {
170
+ visit(candidate.array);
171
+ visit(candidate.index);
172
+ return;
173
+ }
174
+ if (candidate instanceof ValueComponent_1.ArraySliceExpression) {
175
+ visit(candidate.array);
176
+ if (candidate.startIndex) {
177
+ visit(candidate.startIndex);
178
+ }
179
+ if (candidate.endIndex) {
180
+ visit(candidate.endIndex);
181
+ }
182
+ return;
183
+ }
184
+ if (candidate instanceof ValueComponent_1.ValueList) {
185
+ candidate.values.forEach(visit);
186
+ return;
187
+ }
188
+ if (candidate instanceof ValueComponent_1.TupleExpression) {
189
+ candidate.values.forEach(visit);
190
+ return;
191
+ }
192
+ if (candidate instanceof ValueComponent_1.TypeValue && candidate.argument) {
193
+ visit(candidate.argument);
194
+ }
195
+ };
196
+ visit(expression);
197
+ return { references, hasNestedQuery };
198
+ };
199
+ const stripAliasFromPredicate = (expression, sourceMatchNames, options) => {
200
+ const sourceNames = uniqueMatchNames(sourceMatchNames);
201
+ return (0, ValueComponentRewriter_1.rewriteValueComponentWithColumnResolver)(expression, reference => sourceNames.includes(reference.getNamespace())
202
+ ? new ValueComponent_1.ColumnReference(null, reference.column.name)
203
+ : reference);
204
+ };
205
+ const addLowercaseBindingFallback = (lowerBindings, name, binding) => {
206
+ const normalized = normalizeIdentifier(name);
207
+ const existing = lowerBindings.get(normalized);
208
+ if (existing === undefined) {
209
+ lowerBindings.set(normalized, binding);
210
+ return;
211
+ }
212
+ if (existing !== binding) {
213
+ lowerBindings.set(normalized, null);
214
+ }
215
+ };
216
+ const resolveProbeBinding = (exactBindings, lowerBindings, namespace) => {
217
+ var _a;
218
+ const exact = exactBindings.get(namespace);
219
+ if (exact) {
220
+ return exact;
221
+ }
222
+ return (_a = lowerBindings.get(normalizeIdentifier(namespace))) !== null && _a !== void 0 ? _a : null;
223
+ };
224
+ const formatTableSourceForProbe = (source, options) => {
225
+ return new SqlFormatter_1.SqlFormatter({ exportComment: true, ...options.formatOptions }).format(source).formattedSql;
226
+ };
227
+ const makeSkippedProbe = (expression, code, reason, options, binding) => {
228
+ const source = (binding === null || binding === void 0 ? void 0 : binding.source.datasource) instanceof Clause_1.TableSource
229
+ ? binding.source.datasource.getSourceName()
230
+ : undefined;
231
+ return {
232
+ kind: "source_filter_probe_skipped",
233
+ source,
234
+ sourceAlias: (binding === null || binding === void 0 ? void 0 : binding.alias) || undefined,
235
+ predicate: (0, SqlComponentFormatter_1.formatSqlComponent)(expression, options),
236
+ code,
237
+ reason
238
+ };
239
+ };
240
+ const collectConditionOptimizationDiagnostics = (query, options) => {
241
+ var _a;
242
+ const probes = [];
243
+ const skippedProbes = [];
244
+ if (!(query instanceof SelectQuery_1.SimpleSelectQuery) || !((_a = query.fromClause) === null || _a === void 0 ? void 0 : _a.joins) || !query.whereClause) {
245
+ return { probes, skippedProbes };
246
+ }
247
+ const bindings = collectJoinSourceBindings(query);
248
+ const bindingsByExactName = new Map();
249
+ const bindingsByLowerName = new Map();
250
+ for (const binding of bindings) {
251
+ for (const matchName of binding.matchNames) {
252
+ bindingsByExactName.set(matchName, binding);
253
+ addLowercaseBindingFallback(bindingsByLowerName, matchName, binding);
254
+ }
255
+ }
256
+ for (const term of collectTopLevelAndTerms(query.whereClause.condition)) {
257
+ const analysis = collectPredicateReferences(term);
258
+ if (analysis.hasNestedQuery) {
259
+ skippedProbes.push(makeSkippedProbe(term, "NESTED_QUERY_UNSUPPORTED", "Probe metadata skips predicates containing nested queries because source-local execution cannot be represented safely.", options));
260
+ continue;
261
+ }
262
+ if (analysis.references.length === 0) {
263
+ continue;
264
+ }
265
+ const namespaces = Array.from(new Set(analysis.references.map(reference => reference.getNamespace())));
266
+ if (namespaces.some(namespace => namespace === "")) {
267
+ skippedProbes.push(makeSkippedProbe(term, "UNQUALIFIED_COLUMN_REFERENCE", "Probe metadata requires qualified column references so the source table is unambiguous.", options));
268
+ continue;
269
+ }
270
+ if (namespaces.length !== 1) {
271
+ skippedProbes.push(makeSkippedProbe(term, "MULTI_SOURCE_PREDICATE", "Probe metadata only suggests source filters when the predicate references one joined table.", options));
272
+ continue;
273
+ }
274
+ const binding = resolveProbeBinding(bindingsByExactName, bindingsByLowerName, namespaces[0]);
275
+ if (!binding) {
276
+ skippedProbes.push(makeSkippedProbe(term, "UNKNOWN_SOURCE_ALIAS", `Probe metadata could not match '${namespaces[0]}' to a source in the root FROM clause.`, options));
277
+ continue;
278
+ }
279
+ if (binding.isPrimary || !binding.join) {
280
+ continue;
281
+ }
282
+ if (binding.join.lateral) {
283
+ skippedProbes.push(makeSkippedProbe(term, "LATERAL_SOURCE_UNSUPPORTED", "Probe metadata skips lateral join sources because their input can depend on earlier sources.", options, binding));
284
+ continue;
285
+ }
286
+ if (!isProbeSafeJoin(binding.join)) {
287
+ skippedProbes.push(makeSkippedProbe(term, "JOIN_TYPE_UNSUPPORTED", `Probe metadata skips '${binding.join.joinType.value}' sources because probing the nullable side can mislead debugging.`, options, binding));
288
+ continue;
289
+ }
290
+ if (binding.source.datasource instanceof Clause_1.SubQuerySource) {
291
+ skippedProbes.push(makeSkippedProbe(term, "DERIVED_SOURCE_UNSUPPORTED", "Probe metadata skips derived table sources until their input query can be represented without implying a rewrite.", options, binding));
292
+ continue;
293
+ }
294
+ if (!(binding.source.datasource instanceof Clause_1.TableSource)) {
295
+ skippedProbes.push(makeSkippedProbe(term, "SOURCE_KIND_UNSUPPORTED", "Probe metadata currently supports only base table join sources.", options, binding));
296
+ continue;
297
+ }
298
+ const source = binding.source.datasource.getSourceName();
299
+ const predicate = (0, SqlComponentFormatter_1.formatSqlComponent)(term, options);
300
+ const sourcePredicate = stripAliasFromPredicate(term, binding.matchNames, options);
301
+ probes.push({
302
+ kind: "source_filter_probe",
303
+ source,
304
+ sourceAlias: binding.alias,
305
+ predicate,
306
+ suggestedSql: `select * from ${formatTableSourceForProbe(binding.source.datasource, options)} where ${(0, SqlComponentFormatter_1.formatSqlComponent)(sourcePredicate, options)}`,
307
+ reason: "predicate references only this joined table"
308
+ });
309
+ }
310
+ return { probes, skippedProbes };
311
+ };
11
312
  const isAbsentOptionalValue = (parameters, parameterName) => parameters[parameterName] === null || parameters[parameterName] === undefined;
12
313
  const parseConditionOptimizationInput = (input, options) => {
13
314
  const warnings = [];
@@ -86,17 +387,19 @@ const buildSssqlSkipped = (branch, parameters, options) => {
86
387
  : "SSSQL_OPTIONAL_PARAMETER_NOT_PROVIDED",
87
388
  reason: parameterProvided
88
389
  ? "The optional branch parameter is present, so the branch remains active."
89
- : "No optional branch parameter value was provided, so the branch remains unchanged."
390
+ : "No optional branch parameter value was provided, so the branch remains unchanged.",
391
+ skipDisposition: parameterProvided ? "unchanged" : "ignored"
90
392
  };
91
393
  };
92
- const buildSssqlRefreshSkipped = (branch, code, reason, options) => {
394
+ const buildSssqlRefreshSkipped = (branch, code, reason, skipDisposition, options) => {
93
395
  return {
94
396
  phaseKind: "sssql_optional_condition",
95
397
  kind: "optional_branch_skipped",
96
398
  conditionSql: (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options),
97
399
  parameterName: branch.parameterName,
98
400
  code,
99
- reason
401
+ reason,
402
+ skipDisposition
100
403
  };
101
404
  };
102
405
  const buildSssqlRefreshFilters = (branches, parameters) => {
@@ -109,6 +412,7 @@ const buildSssqlRefreshFilters = (branches, parameters) => {
109
412
  return filters;
110
413
  };
111
414
  const refreshRemainingSssqlBranches = (query, fallbackSql, parameters, options) => {
415
+ var _a, _b;
112
416
  const applied = [];
113
417
  const skipped = [];
114
418
  const beforeBranches = (0, PruneOptionalConditionBranches_1.collectSupportedOptionalConditionBranches)(query);
@@ -125,31 +429,41 @@ const refreshRemainingSssqlBranches = (query, fallbackSql, parameters, options)
125
429
  }
126
430
  const beforeBranchSql = new WeakMap();
127
431
  const beforeBranchQuery = new WeakMap();
432
+ const parameterCounts = new Map();
128
433
  for (const branch of beforeBranches) {
129
434
  beforeBranchSql.set(branch.expression, (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options));
130
435
  beforeBranchQuery.set(branch.expression, branch.query);
436
+ parameterCounts.set(branch.parameterName, ((_a = parameterCounts.get(branch.parameterName)) !== null && _a !== void 0 ? _a : 0) + 1);
131
437
  }
132
- try {
133
- new SSSQLFilterBuilder_1.SSSQLFilterBuilder().refresh(query, buildSssqlRefreshFilters(beforeBranches, parameters));
438
+ const alreadyReportedExpressions = new WeakSet();
439
+ const refreshableBranches = [];
440
+ for (const branch of beforeBranches) {
441
+ if (((_b = parameterCounts.get(branch.parameterName)) !== null && _b !== void 0 ? _b : 0) > 1) {
442
+ 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));
443
+ alreadyReportedExpressions.add(branch.expression);
444
+ continue;
445
+ }
446
+ refreshableBranches.push(branch);
134
447
  }
135
- catch (error) {
136
- const detail = error instanceof Error ? error.message : String(error);
137
- return {
138
- query,
139
- sql: fallbackSql,
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}`, options)),
142
- warnings: [],
143
- errors: [],
144
- formatterGeneratedSource: false
145
- };
448
+ for (const branch of refreshableBranches) {
449
+ try {
450
+ new SSSQLFilterBuilder_1.SSSQLFilterBuilder().refresh(query, buildSssqlRefreshFilters([branch], parameters));
451
+ }
452
+ catch (error) {
453
+ const detail = error instanceof Error ? error.message : String(error);
454
+ skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_UNSUPPORTED", `SSSQL optional branch refresh was skipped because safe refresh could not be proven: ${detail}`, "blocked", options));
455
+ alreadyReportedExpressions.add(branch.expression);
456
+ }
146
457
  }
147
458
  const afterBranches = (0, PruneOptionalConditionBranches_1.collectSupportedOptionalConditionBranches)(query);
148
459
  for (const branch of afterBranches) {
460
+ if (alreadyReportedExpressions.has(branch.expression)) {
461
+ continue;
462
+ }
149
463
  const previousSql = beforeBranchSql.get(branch.expression);
150
464
  const previousQuery = beforeBranchQuery.get(branch.expression);
151
465
  if (!previousSql || !previousQuery) {
152
- skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_UNSUPPORTED", "SSSQL optional branch refresh left an untracked branch unchanged.", options));
466
+ skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_UNSUPPORTED", "SSSQL optional branch refresh left an untracked branch unchanged.", "blocked", options));
153
467
  continue;
154
468
  }
155
469
  const refreshedSql = (0, SqlComponentFormatter_1.formatSqlComponent)(branch.expression, options);
@@ -157,7 +471,12 @@ const refreshRemainingSssqlBranches = (query, fallbackSql, parameters, options)
157
471
  applied.push(buildSssqlRefreshApplied(branch, previousSql, options));
158
472
  continue;
159
473
  }
160
- skipped.push(buildSssqlRefreshSkipped(branch, "SSSQL_OPTIONAL_REFRESH_NOOP", "SSSQL optional branch refresh found no safe placement change to apply.", options));
474
+ const parameterProvided = hasOwnParameter(parameters, branch.parameterName);
475
+ skipped.push(buildSssqlRefreshSkipped(branch, parameterProvided
476
+ ? "SSSQL_OPTIONAL_REFRESH_NOOP"
477
+ : "SSSQL_OPTIONAL_PARAMETER_NOT_PROVIDED", parameterProvided
478
+ ? "SSSQL optional branch refresh found no safe placement change to apply."
479
+ : "No optional branch parameter value was provided, so the branch was not a refresh target.", parameterProvided ? "unchanged" : "ignored", options));
161
480
  }
162
481
  return {
163
482
  query,
@@ -277,6 +596,7 @@ const mapParameterApplied = (applied) => applied.map(item => ({
277
596
  }));
278
597
  const mapParameterSkipped = (skipped) => skipped.map(item => ({
279
598
  phaseKind: "parameter_condition_placement",
599
+ skipDisposition: "blocked",
280
600
  ...item
281
601
  }));
282
602
  const mapStaticWarnings = (warnings) => warnings.map(warning => ({
@@ -293,6 +613,11 @@ const mapStaticApplied = (applied) => applied.map(item => ({
293
613
  }));
294
614
  const mapStaticSkipped = (skipped) => skipped.map(item => ({
295
615
  phaseKind: "static_predicate_placement",
616
+ skipDisposition: "blocked",
617
+ ...item
618
+ }));
619
+ const mapConditionDeduplicationApplied = (applied) => applied.map(item => ({
620
+ phaseKind: "condition_deduplication",
296
621
  ...item
297
622
  }));
298
623
  const makePhaseSummary = (kind, counts) => ({
@@ -309,6 +634,7 @@ const runConditionOptimization = (input, options, defaultDryRun) => {
309
634
  // Run semantic SSSQL handling before generic placement phases so optional
310
635
  // branches remain owned by SSSQL even if later phases grow broader support.
311
636
  const sssqlPhase = runSssqlOptionalConditionPhase(input, { ...options, dryRun });
637
+ const diagnostics = collectConditionOptimizationDiagnostics(sssqlPhase.query, options);
312
638
  const parameterOptimizer = new ParameterConditionPlacementOptimizer_1.ParameterConditionPlacementOptimizer();
313
639
  const parameterInput = reuseOwnedModel
314
640
  ? (_b = sssqlPhase.query) !== null && _b !== void 0 ? _b : sssqlPhase.sql
@@ -343,10 +669,17 @@ const runConditionOptimization = (input, options, defaultDryRun) => {
343
669
  const staticSkipped = mapStaticSkipped(staticPhase.skipped);
344
670
  const warnings = [...sssqlPhase.warnings, ...parameterWarnings, ...staticWarnings];
345
671
  const errors = [...sssqlPhase.errors, ...parameterErrors, ...staticErrors];
672
+ const dedupePhase = errors.length === 0
673
+ ? new ConditionDeduplicationOptimizer_1.ConditionDeduplicationOptimizer().optimize(staticPhase.query, options)
674
+ : { query: staticPhase.query, applied: [] };
675
+ const dedupeApplied = mapConditionDeduplicationApplied(dedupePhase.applied);
676
+ const finalSql = dedupePhase.applied.length > 0 && dedupePhase.query
677
+ ? (0, SqlComponentFormatter_1.formatSqlComponent)(dedupePhase.query, options)
678
+ : staticPhase.sql;
346
679
  return {
347
680
  ok: errors.length === 0,
348
- sql: staticPhase.sql,
349
- query: staticPhase.query,
681
+ sql: finalSql,
682
+ query: dedupePhase.query,
350
683
  phases: [
351
684
  makePhaseSummary("sssql_optional_condition", {
352
685
  appliedCount: sssqlPhase.applied.length,
@@ -365,9 +698,15 @@ const runConditionOptimization = (input, options, defaultDryRun) => {
365
698
  skippedCount: staticSkipped.length,
366
699
  warningCount: staticWarnings.length,
367
700
  errorCount: staticErrors.length
701
+ }),
702
+ makePhaseSummary("condition_deduplication", {
703
+ appliedCount: dedupeApplied.length,
704
+ skippedCount: 0,
705
+ warningCount: 0,
706
+ errorCount: 0
368
707
  })
369
708
  ],
370
- applied: [...sssqlPhase.applied, ...parameterApplied, ...staticApplied],
709
+ applied: [...sssqlPhase.applied, ...parameterApplied, ...staticApplied, ...dedupeApplied],
371
710
  skipped: [...sssqlPhase.skipped, ...parameterSkipped, ...staticSkipped],
372
711
  warnings,
373
712
  errors,
@@ -378,7 +717,8 @@ const runConditionOptimization = (input, options, defaultDryRun) => {
378
717
  formatterGeneratedSource: sssqlPhase.formatterGeneratedSource
379
718
  || parameterPhase.safety.formatterGeneratedSource
380
719
  || staticPhase.safety.formatterGeneratedSource
381
- }
720
+ },
721
+ diagnostics
382
722
  };
383
723
  };
384
724
  const planConditionOptimization = (input, options = {}) => {
@@ -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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"}