rawsql-ts 0.29.0 → 0.30.1
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 +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +2 -2
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/transformers/ConditionOptimization.d.ts +16 -0
- package/dist/esm/transformers/ConditionOptimization.js +124 -2
- package/dist/esm/transformers/ConditionOptimization.js.map +1 -1
- package/dist/esm/transformers/ParameterConditionPlacementOptimizer.js +3 -71
- package/dist/esm/transformers/ParameterConditionPlacementOptimizer.js.map +1 -1
- package/dist/esm/transformers/PredicateExpressionUtils.d.ts +16 -0
- package/dist/esm/transformers/PredicateExpressionUtils.js +74 -0
- package/dist/esm/transformers/PredicateExpressionUtils.js.map +1 -0
- package/dist/esm/transformers/PredicateReachabilityAnalyzer.d.ts +92 -0
- package/dist/esm/transformers/PredicateReachabilityAnalyzer.js +516 -0
- package/dist/esm/transformers/PredicateReachabilityAnalyzer.js.map +1 -0
- package/dist/esm/transformers/StaticPredicatePlacementOptimizer.d.ts +2 -0
- package/dist/esm/transformers/StaticPredicatePlacementOptimizer.js +156 -162
- package/dist/esm/transformers/StaticPredicatePlacementOptimizer.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -2
- package/dist/index.min.js.map +4 -4
- package/dist/src/index.d.ts +1 -0
- package/dist/src/transformers/ConditionOptimization.d.ts +16 -0
- package/dist/src/transformers/PredicateExpressionUtils.d.ts +16 -0
- package/dist/src/transformers/PredicateReachabilityAnalyzer.d.ts +92 -0
- package/dist/src/transformers/StaticPredicatePlacementOptimizer.d.ts +2 -0
- package/dist/transformers/ConditionOptimization.js +138 -2
- package/dist/transformers/ConditionOptimization.js.map +1 -1
- package/dist/transformers/ParameterConditionPlacementOptimizer.js +38 -106
- package/dist/transformers/ParameterConditionPlacementOptimizer.js.map +1 -1
- package/dist/transformers/PredicateExpressionUtils.js +88 -0
- package/dist/transformers/PredicateExpressionUtils.js.map +1 -0
- package/dist/transformers/PredicateReachabilityAnalyzer.js +537 -0
- package/dist/transformers/PredicateReachabilityAnalyzer.js.map +1 -0
- package/dist/transformers/StaticPredicatePlacementOptimizer.js +190 -196
- package/dist/transformers/StaticPredicatePlacementOptimizer.js.map +1 -1
- package/dist/tsconfig.browser.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -75,6 +75,12 @@ export interface ConditionOptimizationSourceFilterProbe {
|
|
|
75
75
|
predicate: string;
|
|
76
76
|
suggestedSql: string;
|
|
77
77
|
reason: string;
|
|
78
|
+
relation?: "source_filter" | "join_equivalence";
|
|
79
|
+
targetPredicate?: string;
|
|
80
|
+
targetScope?: {
|
|
81
|
+
kind: "scope" | "cte" | "table" | "subquery" | "source";
|
|
82
|
+
name: string;
|
|
83
|
+
};
|
|
78
84
|
}
|
|
79
85
|
export interface ConditionOptimizationSkippedProbe {
|
|
80
86
|
kind: "source_filter_probe_skipped";
|
|
@@ -92,6 +98,16 @@ export interface ConditionOptimizationDiagnostics {
|
|
|
92
98
|
*/
|
|
93
99
|
probes: readonly ConditionOptimizationSourceFilterProbe[];
|
|
94
100
|
skippedProbes: readonly ConditionOptimizationSkippedProbe[];
|
|
101
|
+
/**
|
|
102
|
+
* API output shape review: keep result.sql/result.query as the production-safe
|
|
103
|
+
* rewrite output and expose debugSql/debugQuery only for diagnostic pipelines.
|
|
104
|
+
*
|
|
105
|
+
* Debug-only probe SQL is additive: result.sql/result.query remain the safe-only
|
|
106
|
+
* production rewrite output, while debugSql/debugQuery include investigation
|
|
107
|
+
* probes that callers can feed into lineage/debug surfaces.
|
|
108
|
+
*/
|
|
109
|
+
debugSql?: string;
|
|
110
|
+
debugQuery?: SelectQuery | null;
|
|
95
111
|
}
|
|
96
112
|
export interface ConditionOptimizationResult {
|
|
97
113
|
ok: boolean;
|
|
@@ -2,10 +2,12 @@ import { SimpleSelectQuery } from "../models/SelectQuery";
|
|
|
2
2
|
import { ArrayExpression, ArrayIndexExpression, ArrayQueryExpression, ArraySliceExpression, BetweenExpression, BinaryExpression, CaseExpression, CastExpression, ColumnReference, FunctionCall, InlineQuery, JsonPredicateExpression, ParenExpression, TupleExpression, TypeValue, UnaryExpression, ValueList } from "../models/ValueComponent";
|
|
3
3
|
import { SubQuerySource, TableSource } from "../models/Clause";
|
|
4
4
|
import { SelectQueryParser } from "../parsers/SelectQueryParser";
|
|
5
|
+
import { ValueParser } from "../parsers/ValueParser";
|
|
5
6
|
import { rewriteValueComponentWithColumnResolver } from "../utils/ValueComponentRewriter";
|
|
6
7
|
import { ParameterConditionPlacementOptimizer } from "./ParameterConditionPlacementOptimizer";
|
|
7
8
|
import { StaticPredicatePlacementOptimizer } from "./StaticPredicatePlacementOptimizer";
|
|
8
9
|
import { ConditionDeduplicationOptimizer } from "./ConditionDeduplicationOptimizer";
|
|
10
|
+
import { analyzePredicateReachability } from "./PredicateReachabilityAnalyzer";
|
|
9
11
|
import { collectSupportedOptionalConditionBranches, pruneOptionalConditionBranches } from "./PruneOptionalConditionBranches";
|
|
10
12
|
import { SSSQLFilterBuilder } from "./SSSQLFilterBuilder";
|
|
11
13
|
import { formatSqlComponent, hasSqlComponentFormatOverride } from "./SqlComponentFormatter";
|
|
@@ -306,6 +308,81 @@ const collectConditionOptimizationDiagnostics = (query, options) => {
|
|
|
306
308
|
}
|
|
307
309
|
return { probes, skippedProbes };
|
|
308
310
|
};
|
|
311
|
+
const makeReachabilityProbeSuggestedSql = (sourceName, predicate, options) => {
|
|
312
|
+
if (!predicate) {
|
|
313
|
+
return `select * from ${sourceName}`;
|
|
314
|
+
}
|
|
315
|
+
const sourceLocalPredicate = rewriteValueComponentWithColumnResolver(ValueParser.parse(predicate), reference => new ColumnReference(null, reference.column.name));
|
|
316
|
+
return sourceLocalPredicate
|
|
317
|
+
? `select * from ${sourceName} where ${formatSqlComponent(sourceLocalPredicate, options)}`
|
|
318
|
+
: `select * from ${sourceName}`;
|
|
319
|
+
};
|
|
320
|
+
const collectJoinEquivalenceProbeDiagnostics = (reachability, options) => {
|
|
321
|
+
const probes = [];
|
|
322
|
+
const skippedProbes = [];
|
|
323
|
+
for (const predicate of reachability.predicates) {
|
|
324
|
+
for (const target of predicate.probeTargets) {
|
|
325
|
+
if (target.relation !== "join_equivalence") {
|
|
326
|
+
continue;
|
|
327
|
+
}
|
|
328
|
+
probes.push(Object.assign(Object.assign({ kind: "source_filter_probe", source: target.target.name, sourceAlias: target.target.name, predicate: target.predicateSql, suggestedSql: makeReachabilityProbeSuggestedSql(target.target.name, target.targetPredicateSql, options), reason: "predicate inferred through JOIN equivalence for debug probing", relation: "join_equivalence" }, (target.targetPredicateSql ? { targetPredicate: target.targetPredicateSql } : {})), { targetScope: target.target }));
|
|
329
|
+
}
|
|
330
|
+
for (const blocked of predicate.blocked) {
|
|
331
|
+
if (blocked.relation !== "join_equivalence") {
|
|
332
|
+
continue;
|
|
333
|
+
}
|
|
334
|
+
const [, ...nameParts] = blocked.scopeId.split(":");
|
|
335
|
+
const source = nameParts.join(":") || undefined;
|
|
336
|
+
skippedProbes.push({
|
|
337
|
+
kind: "source_filter_probe_skipped",
|
|
338
|
+
source,
|
|
339
|
+
sourceAlias: source,
|
|
340
|
+
predicate: predicate.predicateSql,
|
|
341
|
+
code: blocked.code,
|
|
342
|
+
reason: blocked.reason
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
return { probes, skippedProbes };
|
|
347
|
+
};
|
|
348
|
+
const findDebugCte = (query, name) => {
|
|
349
|
+
var _a, _b;
|
|
350
|
+
const normalized = normalizeIdentifier(name);
|
|
351
|
+
const matches = ((_b = (_a = query.withClause) === null || _a === void 0 ? void 0 : _a.tables) !== null && _b !== void 0 ? _b : [])
|
|
352
|
+
.filter(table => normalizeIdentifier(table.getSourceAliasName()) === normalized);
|
|
353
|
+
return matches.length === 1 ? matches[0] : null;
|
|
354
|
+
};
|
|
355
|
+
const buildDebugProbeQuery = (baseQuery, reachability, options) => {
|
|
356
|
+
var _a;
|
|
357
|
+
if (!(baseQuery instanceof SimpleSelectQuery)) {
|
|
358
|
+
return null;
|
|
359
|
+
}
|
|
360
|
+
const applicableTargets = reachability.predicates.flatMap(predicate => predicate.probeTargets)
|
|
361
|
+
.filter(target => target.relation === "join_equivalence"
|
|
362
|
+
&& Boolean(target.targetPredicateSql)
|
|
363
|
+
&& target.target.kind === "cte");
|
|
364
|
+
if (applicableTargets.length === 0) {
|
|
365
|
+
return null;
|
|
366
|
+
}
|
|
367
|
+
const debugQuery = SelectQueryParser.parse(formatSqlComponent(baseQuery, options));
|
|
368
|
+
if (!(debugQuery instanceof SimpleSelectQuery)) {
|
|
369
|
+
return null;
|
|
370
|
+
}
|
|
371
|
+
let applied = false;
|
|
372
|
+
for (const target of applicableTargets) {
|
|
373
|
+
const cte = findDebugCte(debugQuery, target.target.name);
|
|
374
|
+
if (!cte || !(cte.query instanceof SimpleSelectQuery) || !target.targetPredicateSql) {
|
|
375
|
+
continue;
|
|
376
|
+
}
|
|
377
|
+
cte.query.appendWhereRaw(target.targetPredicateSql);
|
|
378
|
+
applied = true;
|
|
379
|
+
}
|
|
380
|
+
if (!applied) {
|
|
381
|
+
return null;
|
|
382
|
+
}
|
|
383
|
+
const dedupePhase = new ConditionDeduplicationOptimizer().optimize(debugQuery, options);
|
|
384
|
+
return (_a = dedupePhase.query) !== null && _a !== void 0 ? _a : debugQuery;
|
|
385
|
+
};
|
|
309
386
|
const isAbsentOptionalValue = (parameters, parameterName) => parameters[parameterName] === null || parameters[parameterName] === undefined;
|
|
310
387
|
const parseConditionOptimizationInput = (input, options) => {
|
|
311
388
|
const warnings = [];
|
|
@@ -590,6 +667,39 @@ const makePhaseSummary = (kind, counts) => ({
|
|
|
590
667
|
warningCount: counts.warningCount,
|
|
591
668
|
errorCount: counts.errorCount
|
|
592
669
|
});
|
|
670
|
+
const getAppliedConditionSql = (applied) => {
|
|
671
|
+
if ("predicateSql" in applied) {
|
|
672
|
+
return applied.predicateSql;
|
|
673
|
+
}
|
|
674
|
+
if ("conditionSql" in applied) {
|
|
675
|
+
return applied.conditionSql;
|
|
676
|
+
}
|
|
677
|
+
return undefined;
|
|
678
|
+
};
|
|
679
|
+
const normalizeDiagnosticPredicate = (predicate, options) => {
|
|
680
|
+
try {
|
|
681
|
+
return formatSqlComponent(ValueParser.parse(predicate), options)
|
|
682
|
+
.replace(/\s+/g, " ")
|
|
683
|
+
.trim()
|
|
684
|
+
.toLowerCase();
|
|
685
|
+
}
|
|
686
|
+
catch (_a) {
|
|
687
|
+
return predicate
|
|
688
|
+
.replace(/\s+/g, " ")
|
|
689
|
+
.trim()
|
|
690
|
+
.toLowerCase();
|
|
691
|
+
}
|
|
692
|
+
};
|
|
693
|
+
const filterSkippedProbesAlreadyApplied = (skippedProbes, applied, options) => {
|
|
694
|
+
const appliedPredicates = new Set(applied
|
|
695
|
+
.map(item => getAppliedConditionSql(item))
|
|
696
|
+
.filter((predicate) => Boolean(predicate))
|
|
697
|
+
.map(predicate => normalizeDiagnosticPredicate(predicate, options)));
|
|
698
|
+
if (appliedPredicates.size === 0) {
|
|
699
|
+
return [...skippedProbes];
|
|
700
|
+
}
|
|
701
|
+
return skippedProbes.filter(probe => probe.code !== "NESTED_QUERY_UNSUPPORTED" || !appliedPredicates.has(normalizeDiagnosticPredicate(probe.predicate, options)));
|
|
702
|
+
};
|
|
593
703
|
const runConditionOptimization = (input, options, defaultDryRun) => {
|
|
594
704
|
var _a, _b, _c;
|
|
595
705
|
const dryRun = (_a = options.dryRun) !== null && _a !== void 0 ? _a : defaultDryRun;
|
|
@@ -597,7 +707,13 @@ const runConditionOptimization = (input, options, defaultDryRun) => {
|
|
|
597
707
|
// Run semantic SSSQL handling before generic placement phases so optional
|
|
598
708
|
// branches remain owned by SSSQL even if later phases grow broader support.
|
|
599
709
|
const sssqlPhase = runSssqlOptionalConditionPhase(input, Object.assign(Object.assign({}, options), { dryRun }));
|
|
600
|
-
const
|
|
710
|
+
const sourceDiagnostics = collectConditionOptimizationDiagnostics(sssqlPhase.query, options);
|
|
711
|
+
const reachability = sssqlPhase.query
|
|
712
|
+
? analyzePredicateReachability(sssqlPhase.query, Object.assign(Object.assign({}, options), { cloneInput: false }))
|
|
713
|
+
: null;
|
|
714
|
+
const reachabilityDiagnostics = reachability
|
|
715
|
+
? collectJoinEquivalenceProbeDiagnostics(reachability, options)
|
|
716
|
+
: { probes: [], skippedProbes: [] };
|
|
601
717
|
const parameterOptimizer = new ParameterConditionPlacementOptimizer();
|
|
602
718
|
const parameterInput = reuseOwnedModel
|
|
603
719
|
? (_b = sssqlPhase.query) !== null && _b !== void 0 ? _b : sssqlPhase.sql
|
|
@@ -631,6 +747,12 @@ const runConditionOptimization = (input, options, defaultDryRun) => {
|
|
|
631
747
|
const finalSql = dedupePhase.applied.length > 0 && dedupePhase.query
|
|
632
748
|
? formatSqlComponent(dedupePhase.query, options)
|
|
633
749
|
: staticPhase.sql;
|
|
750
|
+
const applied = [...sssqlPhase.applied, ...parameterApplied, ...staticApplied, ...dedupeApplied];
|
|
751
|
+
const debugQuery = reachability
|
|
752
|
+
? buildDebugProbeQuery(dedupePhase.query, reachability, options)
|
|
753
|
+
: null;
|
|
754
|
+
const debugSql = debugQuery ? formatSqlComponent(debugQuery, options) : undefined;
|
|
755
|
+
const diagnostics = Object.assign({ probes: [...sourceDiagnostics.probes, ...reachabilityDiagnostics.probes], skippedProbes: filterSkippedProbesAlreadyApplied([...sourceDiagnostics.skippedProbes, ...reachabilityDiagnostics.skippedProbes], applied, options) }, (debugSql ? { debugSql, debugQuery } : {}));
|
|
634
756
|
return {
|
|
635
757
|
ok: errors.length === 0,
|
|
636
758
|
sql: finalSql,
|
|
@@ -661,7 +783,7 @@ const runConditionOptimization = (input, options, defaultDryRun) => {
|
|
|
661
783
|
errorCount: 0
|
|
662
784
|
})
|
|
663
785
|
],
|
|
664
|
-
applied
|
|
786
|
+
applied,
|
|
665
787
|
skipped: [...sssqlPhase.skipped, ...parameterSkipped, ...staticSkipped],
|
|
666
788
|
warnings,
|
|
667
789
|
errors,
|
|
@@ -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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"}
|
|
@@ -1,81 +1,13 @@
|
|
|
1
|
-
import { DistinctOn, JoinOnClause, SubQuerySource, TableSource
|
|
1
|
+
import { DistinctOn, JoinOnClause, SubQuerySource, TableSource } from "../models/Clause";
|
|
2
2
|
import { BinarySelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
|
|
3
|
-
import { ArrayExpression, ArrayQueryExpression, BetweenExpression, BinaryExpression, CaseExpression, CastExpression, ColumnReference, FunctionCall, InlineQuery, JsonPredicateExpression, ParameterExpression,
|
|
3
|
+
import { ArrayExpression, ArrayQueryExpression, BetweenExpression, BinaryExpression, CaseExpression, CastExpression, ColumnReference, FunctionCall, InlineQuery, JsonPredicateExpression, ParameterExpression, TupleExpression, TypeValue, UnaryExpression, ValueList } from "../models/ValueComponent";
|
|
4
4
|
import { SelectQueryParser } from "../parsers/SelectQueryParser";
|
|
5
|
-
import { ValueParser } from "../parsers/ValueParser";
|
|
6
5
|
import { formatSqlComponent, hasSqlComponentFormatOverride } from "./SqlComponentFormatter";
|
|
7
6
|
import { SelectOutputCollector } from "./SelectOutputCollector";
|
|
8
7
|
import { dedupeTopLevelAndConditions, dedupeWhereTopLevelAndConditions } from "./TopLevelAndConditionDeduper";
|
|
8
|
+
import { appendUnique, cloneColumnReference, cloneValueComponent, collectTopLevelAndTerms, columnReferenceText, identifiersEqual, normalizeIdentifier, rebuildWhereWithoutTerms, sameColumnReference, unwrapParens } from "./PredicateExpressionUtils";
|
|
9
9
|
const SUPPORTED_OPERATORS = new Set(["=", "<>", "!=", "<", "<=", ">", ">=", "like", "ilike", "in"]);
|
|
10
10
|
const VOLATILE_OR_UNSUPPORTED_FUNCTION_REASON = "Condition contains a function call; volatile and expression predicates are not moved in the safe-only implementation.";
|
|
11
|
-
const normalizeIdentifier = (value) => value.trim().toLowerCase();
|
|
12
|
-
const isCaseSensitiveIdentifier = (value) => /[A-Z]/.test(value.trim());
|
|
13
|
-
const identifiersEqual = (left, right) => {
|
|
14
|
-
const trimmedLeft = left.trim();
|
|
15
|
-
const trimmedRight = right.trim();
|
|
16
|
-
return isCaseSensitiveIdentifier(trimmedLeft) || isCaseSensitiveIdentifier(trimmedRight)
|
|
17
|
-
? trimmedLeft === trimmedRight
|
|
18
|
-
: trimmedLeft.toLowerCase() === trimmedRight.toLowerCase();
|
|
19
|
-
};
|
|
20
|
-
const unwrapParens = (expression) => {
|
|
21
|
-
let candidate = expression;
|
|
22
|
-
while (candidate instanceof ParenExpression) {
|
|
23
|
-
candidate = candidate.expression;
|
|
24
|
-
}
|
|
25
|
-
return candidate;
|
|
26
|
-
};
|
|
27
|
-
const isBinaryOperator = (expression, operator) => {
|
|
28
|
-
const candidate = unwrapParens(expression);
|
|
29
|
-
return candidate instanceof BinaryExpression
|
|
30
|
-
&& candidate.operator.value.trim().toLowerCase() === operator;
|
|
31
|
-
};
|
|
32
|
-
const collectTopLevelAndTerms = (expression) => {
|
|
33
|
-
const candidate = unwrapParens(expression);
|
|
34
|
-
if (!isBinaryOperator(candidate, "and")) {
|
|
35
|
-
return [expression];
|
|
36
|
-
}
|
|
37
|
-
return [
|
|
38
|
-
...collectTopLevelAndTerms(candidate.left),
|
|
39
|
-
...collectTopLevelAndTerms(candidate.right)
|
|
40
|
-
];
|
|
41
|
-
};
|
|
42
|
-
const rebuildWhereWithoutTerms = (query, termsToRemove) => {
|
|
43
|
-
if (!query.whereClause || termsToRemove.size === 0) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
const remaining = collectTopLevelAndTerms(query.whereClause.condition)
|
|
47
|
-
.filter(term => !termsToRemove.has(term));
|
|
48
|
-
if (remaining.length === 0) {
|
|
49
|
-
query.whereClause = null;
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
let rebuilt = remaining[0];
|
|
53
|
-
for (let index = 1; index < remaining.length; index += 1) {
|
|
54
|
-
rebuilt = new BinaryExpression(rebuilt, "and", remaining[index]);
|
|
55
|
-
}
|
|
56
|
-
query.whereClause = new WhereClause(rebuilt);
|
|
57
|
-
};
|
|
58
|
-
const cloneValueComponent = (expression, options) => {
|
|
59
|
-
return ValueParser.parse(formatSqlComponent(expression, options));
|
|
60
|
-
};
|
|
61
|
-
const cloneColumnReference = (reference) => {
|
|
62
|
-
var _a, _b;
|
|
63
|
-
const namespaces = (_b = (_a = reference.namespaces) === null || _a === void 0 ? void 0 : _a.map(namespace => namespace.name)) !== null && _b !== void 0 ? _b : null;
|
|
64
|
-
return new ColumnReference(namespaces, reference.column.name);
|
|
65
|
-
};
|
|
66
|
-
const columnReferenceText = (reference) => {
|
|
67
|
-
const namespace = reference.getNamespace();
|
|
68
|
-
return namespace ? `${namespace}.${reference.column.name}` : reference.column.name;
|
|
69
|
-
};
|
|
70
|
-
const sameColumnReference = (left, right) => {
|
|
71
|
-
return identifiersEqual(left.column.name, right.column.name)
|
|
72
|
-
&& identifiersEqual(left.getNamespace(), right.getNamespace());
|
|
73
|
-
};
|
|
74
|
-
const appendUnique = (items, value) => {
|
|
75
|
-
if (!items.includes(value)) {
|
|
76
|
-
items.push(value);
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
11
|
export class ParameterConditionPlacementOptimizer {
|
|
80
12
|
plan(input, options = {}) {
|
|
81
13
|
var _a, _b, _c;
|