rawsql-ts 0.24.3 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -1
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +9 -9
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/models/ValueComponent.d.ts +2 -1
- package/dist/esm/models/ValueComponent.js +2 -1
- package/dist/esm/models/ValueComponent.js.map +1 -1
- package/dist/esm/parsers/FunctionExpressionParser.d.ts +3 -0
- package/dist/esm/parsers/FunctionExpressionParser.js +50 -2
- package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/parsers/ParameterDecorator.d.ts +2 -2
- package/dist/esm/parsers/ParameterDecorator.js +1 -1
- package/dist/esm/parsers/ParameterDecorator.js.map +1 -1
- package/dist/esm/parsers/ParameterExpressionParser.js +2 -1
- package/dist/esm/parsers/ParameterExpressionParser.js.map +1 -1
- package/dist/esm/parsers/SqlPrintTokenParser.d.ts +16 -4
- package/dist/esm/parsers/SqlPrintTokenParser.js +76 -13
- package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/transformers/AstCommentAttachmentExtractor.d.ts +61 -0
- package/dist/esm/transformers/AstCommentAttachmentExtractor.js +221 -0
- package/dist/esm/transformers/AstCommentAttachmentExtractor.js.map +1 -0
- package/dist/esm/transformers/ClauseScopedColumnReferenceCollector.d.ts +47 -0
- package/dist/esm/transformers/ClauseScopedColumnReferenceCollector.js +235 -0
- package/dist/esm/transformers/ClauseScopedColumnReferenceCollector.js.map +1 -0
- package/dist/esm/transformers/FormatOptionResolver.js +1 -0
- package/dist/esm/transformers/FormatOptionResolver.js.map +1 -1
- package/dist/esm/transformers/LinePrinter.d.ts +1 -1
- package/dist/esm/transformers/NamedQueryDefinitionExtractor.d.ts +53 -0
- package/dist/esm/transformers/NamedQueryDefinitionExtractor.js +370 -0
- package/dist/esm/transformers/NamedQueryDefinitionExtractor.js.map +1 -0
- package/dist/esm/transformers/OnelineFormattingHelper.d.ts +1 -0
- package/dist/esm/transformers/OnelineFormattingHelper.js.map +1 -1
- package/dist/esm/transformers/SelectBodyExtractor.d.ts +21 -0
- package/dist/esm/transformers/SelectBodyExtractor.js +137 -0
- package/dist/esm/transformers/SelectBodyExtractor.js.map +1 -0
- package/dist/esm/transformers/SelectOutputCollector.d.ts +47 -0
- package/dist/esm/transformers/SelectOutputCollector.js +281 -0
- package/dist/esm/transformers/SelectOutputCollector.js.map +1 -0
- package/dist/esm/transformers/SelectValueCollector.d.ts +9 -1
- package/dist/esm/transformers/SelectValueCollector.js +83 -58
- package/dist/esm/transformers/SelectValueCollector.js.map +1 -1
- package/dist/esm/transformers/SqlFormatter.d.ts +9 -5
- package/dist/esm/transformers/SqlFormatter.js +4 -4
- package/dist/esm/transformers/SqlFormatter.js.map +1 -1
- package/dist/esm/transformers/SqlPrinter.d.ts +17 -2
- package/dist/esm/transformers/SqlPrinter.js +182 -21
- package/dist/esm/transformers/SqlPrinter.js.map +1 -1
- package/dist/esm/transformers/WildcardColumnInferenceCollector.d.ts +129 -0
- package/dist/esm/transformers/WildcardColumnInferenceCollector.js +373 -0
- package/dist/esm/transformers/WildcardColumnInferenceCollector.js.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +9 -9
- package/dist/index.min.js.map +4 -4
- package/dist/models/ValueComponent.js +2 -1
- package/dist/models/ValueComponent.js.map +1 -1
- package/dist/parsers/FunctionExpressionParser.js +49 -1
- package/dist/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/parsers/ParameterDecorator.js +1 -1
- package/dist/parsers/ParameterDecorator.js.map +1 -1
- package/dist/parsers/ParameterExpressionParser.js +2 -1
- package/dist/parsers/ParameterExpressionParser.js.map +1 -1
- package/dist/parsers/SqlPrintTokenParser.js +76 -13
- package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/index.d.ts +6 -0
- package/dist/src/models/ValueComponent.d.ts +2 -1
- package/dist/src/parsers/FunctionExpressionParser.d.ts +3 -0
- package/dist/src/parsers/ParameterDecorator.d.ts +2 -2
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +16 -4
- package/dist/src/transformers/AstCommentAttachmentExtractor.d.ts +61 -0
- package/dist/src/transformers/ClauseScopedColumnReferenceCollector.d.ts +47 -0
- package/dist/src/transformers/LinePrinter.d.ts +1 -1
- package/dist/src/transformers/NamedQueryDefinitionExtractor.d.ts +53 -0
- package/dist/src/transformers/OnelineFormattingHelper.d.ts +1 -0
- package/dist/src/transformers/SelectBodyExtractor.d.ts +21 -0
- package/dist/src/transformers/SelectOutputCollector.d.ts +47 -0
- package/dist/src/transformers/SelectValueCollector.d.ts +9 -1
- package/dist/src/transformers/SqlFormatter.d.ts +9 -5
- package/dist/src/transformers/SqlPrinter.d.ts +17 -2
- package/dist/src/transformers/WildcardColumnInferenceCollector.d.ts +129 -0
- package/dist/transformers/AstCommentAttachmentExtractor.js +231 -0
- package/dist/transformers/AstCommentAttachmentExtractor.js.map +1 -0
- package/dist/transformers/ClauseScopedColumnReferenceCollector.js +239 -0
- package/dist/transformers/ClauseScopedColumnReferenceCollector.js.map +1 -0
- package/dist/transformers/FormatOptionResolver.js +1 -0
- package/dist/transformers/FormatOptionResolver.js.map +1 -1
- package/dist/transformers/NamedQueryDefinitionExtractor.js +374 -0
- package/dist/transformers/NamedQueryDefinitionExtractor.js.map +1 -0
- package/dist/transformers/OnelineFormattingHelper.js.map +1 -1
- package/dist/transformers/SelectBodyExtractor.js +141 -0
- package/dist/transformers/SelectBodyExtractor.js.map +1 -0
- package/dist/transformers/SelectOutputCollector.js +291 -0
- package/dist/transformers/SelectOutputCollector.js.map +1 -0
- package/dist/transformers/SelectValueCollector.js +83 -58
- package/dist/transformers/SelectValueCollector.js.map +1 -1
- package/dist/transformers/SqlFormatter.js +5 -3
- package/dist/transformers/SqlFormatter.js.map +1 -1
- package/dist/transformers/SqlPrinter.js +182 -21
- package/dist/transformers/SqlPrinter.js.map +1 -1
- package/dist/transformers/WildcardColumnInferenceCollector.js +377 -0
- package/dist/transformers/WildcardColumnInferenceCollector.js.map +1 -0
- package/dist/tsconfig.browser.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { SelectQuery } from "../models/SelectQuery";
|
|
2
|
+
import { ClauseScopedColumnReferenceClause } from "./ClauseScopedColumnReferenceCollector";
|
|
3
|
+
/** Kind of named query boundary whose wildcard output is being inferred. */
|
|
4
|
+
export type WildcardColumnInferenceTargetKind = "cte" | "derivedTable";
|
|
5
|
+
/** Syntax form of the wildcard SELECT item that may supply required columns. */
|
|
6
|
+
export type WildcardColumnInferenceWildcardKind = "qualified" | "unqualified";
|
|
7
|
+
/** Conservative reason why a downstream requirement could not be assigned to one wildcard supplier. */
|
|
8
|
+
export type WildcardColumnInferenceUnresolvedReason = "duplicateOutputOwnership" | "multipleWildcardSuppliers" | "unqualifiedWildcardMultipleSources" | "noWildcardSupplier" | "unsupportedQueryShape";
|
|
9
|
+
/** Clause-scoped downstream reference that requires an output column from the target. */
|
|
10
|
+
export interface WildcardColumnInferenceRequiredBy {
|
|
11
|
+
/** Clause that owns the downstream reference. */
|
|
12
|
+
clause: ClauseScopedColumnReferenceClause;
|
|
13
|
+
/** SQL text form of the downstream column reference. */
|
|
14
|
+
qualifiedName: string;
|
|
15
|
+
/** Namespace or alias used by the downstream reference, if present. */
|
|
16
|
+
namespace: string | null;
|
|
17
|
+
/** Output column name required by the downstream reference. */
|
|
18
|
+
column: string;
|
|
19
|
+
}
|
|
20
|
+
/** Metadata for a wildcard SELECT item inside the target query. */
|
|
21
|
+
export interface WildcardColumnInferenceWildcard {
|
|
22
|
+
/** Whether the wildcard was written as `*` or as a qualified form such as `a.*`. */
|
|
23
|
+
kind: WildcardColumnInferenceWildcardKind;
|
|
24
|
+
/** SELECT-list position of the wildcard item. */
|
|
25
|
+
outputIndex: number;
|
|
26
|
+
/** Source alias that the wildcard can safely be associated with, when known. */
|
|
27
|
+
sourceAlias: string | null;
|
|
28
|
+
/** Physical source name for the wildcard source, when it is statically visible. */
|
|
29
|
+
sourceName: string | null;
|
|
30
|
+
}
|
|
31
|
+
/** Explicit non-wildcard output preserved alongside inferred wildcard requirements. */
|
|
32
|
+
export interface WildcardColumnInferenceExplicitColumn {
|
|
33
|
+
/** Output name exposed by the explicit SELECT item. */
|
|
34
|
+
outputName: string;
|
|
35
|
+
/** Source alias for a simple qualified column expression, when uniquely known. */
|
|
36
|
+
sourceAlias: string | null;
|
|
37
|
+
/** Physical source name for a simple qualified column expression, when uniquely known. */
|
|
38
|
+
sourceName: string | null;
|
|
39
|
+
/** Source column name for a simple qualified column expression, when uniquely known. */
|
|
40
|
+
sourceColumnName: string | null;
|
|
41
|
+
}
|
|
42
|
+
/** Resolved required column supplied by a single unambiguous wildcard. */
|
|
43
|
+
export interface WildcardColumnInferenceResolvedColumn {
|
|
44
|
+
/** Output column name required from the target. */
|
|
45
|
+
outputName: string;
|
|
46
|
+
/** Source alias selected as the wildcard supplier. */
|
|
47
|
+
sourceAlias: string | null;
|
|
48
|
+
/** Physical source name selected as the wildcard supplier, when known. */
|
|
49
|
+
sourceName: string | null;
|
|
50
|
+
/** Source column name inferred from the downstream output requirement. */
|
|
51
|
+
sourceColumnName: string;
|
|
52
|
+
/** Wildcard SELECT item that supplies this required column. */
|
|
53
|
+
wildcard: WildcardColumnInferenceWildcard;
|
|
54
|
+
/** Distinct downstream clauses that required this column. */
|
|
55
|
+
requiredByClause: ClauseScopedColumnReferenceClause[];
|
|
56
|
+
/** Clause-scoped downstream references that required this column. */
|
|
57
|
+
requiredBy: WildcardColumnInferenceRequiredBy[];
|
|
58
|
+
}
|
|
59
|
+
/** Required output column that could not be assigned to a single wildcard supplier. */
|
|
60
|
+
export interface WildcardColumnInferenceUnresolvedColumn {
|
|
61
|
+
/** Output column name required from the target. */
|
|
62
|
+
outputName: string;
|
|
63
|
+
/** Conservative reason why inference did not choose a supplier. */
|
|
64
|
+
reason: WildcardColumnInferenceUnresolvedReason;
|
|
65
|
+
/** Candidate wildcard suppliers visible for this requirement. */
|
|
66
|
+
candidateWildcards: WildcardColumnInferenceWildcard[];
|
|
67
|
+
/** Distinct downstream clauses that required this column. */
|
|
68
|
+
requiredByClause: ClauseScopedColumnReferenceClause[];
|
|
69
|
+
/** Clause-scoped downstream references that required this column. */
|
|
70
|
+
requiredBy: WildcardColumnInferenceRequiredBy[];
|
|
71
|
+
}
|
|
72
|
+
/** Metadata-only wildcard inference result for one CTE or derived table target. */
|
|
73
|
+
export interface WildcardColumnInferenceResult {
|
|
74
|
+
/** Kind of target whose wildcard output was inspected. */
|
|
75
|
+
targetKind: WildcardColumnInferenceTargetKind;
|
|
76
|
+
/** CTE name for CTE targets, otherwise null. */
|
|
77
|
+
targetName: string | null;
|
|
78
|
+
/** Alias used by the downstream consumer when available. */
|
|
79
|
+
targetAlias: string | null;
|
|
80
|
+
/** Wildcard SELECT items found inside the target query. */
|
|
81
|
+
wildcards: WildcardColumnInferenceWildcard[];
|
|
82
|
+
/** Explicit non-wildcard outputs found inside the target query. */
|
|
83
|
+
explicitColumns: WildcardColumnInferenceExplicitColumn[];
|
|
84
|
+
/** Downstream requirements assigned to exactly one wildcard supplier. */
|
|
85
|
+
requiredColumns: WildcardColumnInferenceResolvedColumn[];
|
|
86
|
+
/** Downstream requirements that were intentionally left unresolved. */
|
|
87
|
+
unresolvedColumns: WildcardColumnInferenceUnresolvedColumn[];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Infers the subset of wildcard columns required by downstream references.
|
|
91
|
+
*
|
|
92
|
+
* This collector only returns metadata. It does not rewrite SQL and does not attempt full
|
|
93
|
+
* table-column discovery. When ownership is ambiguous, the requirement is reported as unresolved.
|
|
94
|
+
*/
|
|
95
|
+
export declare class WildcardColumnInferenceCollector {
|
|
96
|
+
private readonly clauseCollector;
|
|
97
|
+
private readonly requirements;
|
|
98
|
+
private readonly visitedQueries;
|
|
99
|
+
private nextObjectId;
|
|
100
|
+
private objectIds;
|
|
101
|
+
/**
|
|
102
|
+
* Collect wildcard column inference metadata for CTEs and derived tables visible in a SELECT query.
|
|
103
|
+
*/
|
|
104
|
+
collect(query: SelectQuery): WildcardColumnInferenceResult[];
|
|
105
|
+
private collectFromSelectQuery;
|
|
106
|
+
private collectCteQuery;
|
|
107
|
+
private collectConsumerRequirements;
|
|
108
|
+
private collectConsumerTargets;
|
|
109
|
+
private createCteTarget;
|
|
110
|
+
private createDerivedTableTarget;
|
|
111
|
+
private collectNestedSources;
|
|
112
|
+
private addRequirement;
|
|
113
|
+
private inferTarget;
|
|
114
|
+
private collectTargetOutputMetadata;
|
|
115
|
+
private collectWildcardMetadata;
|
|
116
|
+
private createUnresolved;
|
|
117
|
+
private flattenReferences;
|
|
118
|
+
private createRequiredBy;
|
|
119
|
+
private collectRequiredByClauses;
|
|
120
|
+
private getTargetMatchNames;
|
|
121
|
+
private getUniqueTarget;
|
|
122
|
+
private getUniqueSource;
|
|
123
|
+
private getSourceMatchNames;
|
|
124
|
+
private getSourceName;
|
|
125
|
+
private collectLeadingCommonTables;
|
|
126
|
+
private mergeCommonTables;
|
|
127
|
+
private getObjectId;
|
|
128
|
+
private isSelectQuery;
|
|
129
|
+
}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AstCommentAttachmentExtractor = void 0;
|
|
4
|
+
exports.extractAstCommentAttachments = extractAstCommentAttachments;
|
|
5
|
+
const SelectQuery_1 = require("../models/SelectQuery");
|
|
6
|
+
const Clause_1 = require("../models/Clause");
|
|
7
|
+
const SqlComponent_1 = require("../models/SqlComponent");
|
|
8
|
+
/**
|
|
9
|
+
* Extracts comment attachment facts already represented in the SQL AST.
|
|
10
|
+
*
|
|
11
|
+
* @remarks This API does not infer product-specific meanings or rewrite
|
|
12
|
+
* comments. It returns a deterministic flat list without mutating the input AST.
|
|
13
|
+
*/
|
|
14
|
+
class AstCommentAttachmentExtractor {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.attachments = [];
|
|
17
|
+
this.visited = new Set();
|
|
18
|
+
this.suppressedDetachedCommentArrays = new WeakSet();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Extract comment attachment facts from a SQL AST component.
|
|
22
|
+
*/
|
|
23
|
+
static extract(input) {
|
|
24
|
+
if (!input) {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
const extractor = new AstCommentAttachmentExtractor();
|
|
28
|
+
extractor.visit(input);
|
|
29
|
+
return extractor.attachments;
|
|
30
|
+
}
|
|
31
|
+
visit(value) {
|
|
32
|
+
if (!value || typeof value !== "object") {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (this.visited.has(value)) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.visited.add(value);
|
|
39
|
+
if (Array.isArray(value)) {
|
|
40
|
+
for (const item of value) {
|
|
41
|
+
this.visit(item);
|
|
42
|
+
}
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (value instanceof SqlComponent_1.SqlComponent) {
|
|
46
|
+
this.visitSqlComponent(value);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
visitSqlComponent(component) {
|
|
51
|
+
this.emitHeaderComments(component);
|
|
52
|
+
this.emitPositionedComments(component, "before");
|
|
53
|
+
if (!(component instanceof SelectQuery_1.SimpleSelectQuery)) {
|
|
54
|
+
this.emitLegacyComments(component);
|
|
55
|
+
}
|
|
56
|
+
if (component instanceof Clause_1.SelectItem) {
|
|
57
|
+
this.emitPositionedComments(component, "after");
|
|
58
|
+
this.emitSelectItemKeywordComments(component);
|
|
59
|
+
this.visit(component.value);
|
|
60
|
+
this.visit(component.identifier);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (component instanceof Clause_1.CommonTable) {
|
|
64
|
+
this.visit(component.aliasExpression);
|
|
65
|
+
this.visit(component.query);
|
|
66
|
+
this.emitPositionedComments(component, "after");
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (component instanceof Clause_1.WithClause) {
|
|
70
|
+
this.visit(component.tables);
|
|
71
|
+
this.emitDetachedComments(component.trailingComments);
|
|
72
|
+
this.emitDetachedComments(component.globalComments);
|
|
73
|
+
this.emitPositionedComments(component, "after");
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (component instanceof SelectQuery_1.SimpleSelectQuery) {
|
|
77
|
+
this.suppressWithClauseTrailingCommentsAlreadyCopiedToQuery(component);
|
|
78
|
+
this.visit(component.withClause);
|
|
79
|
+
this.emitLegacyComments(component);
|
|
80
|
+
this.visit(component.selectClause);
|
|
81
|
+
this.visit(component.fromClause);
|
|
82
|
+
this.visit(component.whereClause);
|
|
83
|
+
this.visit(component.groupByClause);
|
|
84
|
+
this.visit(component.havingClause);
|
|
85
|
+
this.visit(component.windowClause);
|
|
86
|
+
this.visit(component.orderByClause);
|
|
87
|
+
this.visit(component.limitClause);
|
|
88
|
+
this.visit(component.offsetClause);
|
|
89
|
+
this.visit(component.fetchClause);
|
|
90
|
+
this.visit(component.forClause);
|
|
91
|
+
this.emitPositionedComments(component, "after");
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (component instanceof SelectQuery_1.BinarySelectQuery) {
|
|
95
|
+
this.visit(component.left);
|
|
96
|
+
this.visit(component.right);
|
|
97
|
+
this.emitPositionedComments(component, "after");
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (component instanceof SelectQuery_1.ValuesQuery) {
|
|
101
|
+
this.visit(component.withClause);
|
|
102
|
+
this.visit(component.tuples);
|
|
103
|
+
this.emitPositionedComments(component, "after");
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (component instanceof Clause_1.SelectClause) {
|
|
107
|
+
this.visit(component.distinct);
|
|
108
|
+
this.visit(component.hints);
|
|
109
|
+
this.visit(component.items);
|
|
110
|
+
this.emitPositionedComments(component, "after");
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (component instanceof Clause_1.SourceAliasExpression) {
|
|
114
|
+
this.visit(component.table);
|
|
115
|
+
this.visit(component.columns);
|
|
116
|
+
this.emitPositionedComments(component, "after");
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
this.visitFallbackProperties(component);
|
|
120
|
+
this.emitPositionedComments(component, "after");
|
|
121
|
+
}
|
|
122
|
+
visitFallbackProperties(component) {
|
|
123
|
+
for (const key of Object.keys(component)) {
|
|
124
|
+
if (this.shouldSkipProperty(key)) {
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
this.visit(component[key]);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
shouldSkipProperty(key) {
|
|
131
|
+
return key === "comments" ||
|
|
132
|
+
key === "positionedComments" ||
|
|
133
|
+
key === "headerComments" ||
|
|
134
|
+
key === "trailingComments" ||
|
|
135
|
+
key === "globalComments" ||
|
|
136
|
+
key === "asKeywordPositionedComments" ||
|
|
137
|
+
key === "asKeywordComments" ||
|
|
138
|
+
key === "aliasPositionedComments" ||
|
|
139
|
+
key === "aliasComments" ||
|
|
140
|
+
key === "cteNameCache";
|
|
141
|
+
}
|
|
142
|
+
emitHeaderComments(component) {
|
|
143
|
+
if (!this.isSelectQuery(component)) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
this.emitComments(component.headerComments, "leading", component);
|
|
147
|
+
}
|
|
148
|
+
emitLegacyComments(component) {
|
|
149
|
+
this.emitComments(component.comments, "detached");
|
|
150
|
+
}
|
|
151
|
+
emitPositionedComments(component, position) {
|
|
152
|
+
if (!component.positionedComments) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
for (const positionedComment of component.positionedComments) {
|
|
156
|
+
if (positionedComment.position !== position) {
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
this.emitComments(positionedComment.comments, position === "before" ? "leading" : "trailing", component);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
emitSelectItemKeywordComments(selectItem) {
|
|
163
|
+
const itemWithCommentFields = selectItem;
|
|
164
|
+
this.emitKeywordPositionedComments(itemWithCommentFields.asKeywordPositionedComments, selectItem, "inner");
|
|
165
|
+
this.emitComments(itemWithCommentFields.asKeywordComments, "inner", selectItem);
|
|
166
|
+
this.emitKeywordPositionedComments(itemWithCommentFields.aliasPositionedComments, selectItem);
|
|
167
|
+
this.emitComments(itemWithCommentFields.aliasComments, "trailing", selectItem);
|
|
168
|
+
}
|
|
169
|
+
emitKeywordPositionedComments(positionedComments, targetNode, placementOverride) {
|
|
170
|
+
if (!positionedComments) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
for (const positionedComment of positionedComments) {
|
|
174
|
+
const placement = placementOverride !== null && placementOverride !== void 0 ? placementOverride : (positionedComment.position === "before" ? "leading" : "trailing");
|
|
175
|
+
this.emitComments(positionedComment.comments, placement, targetNode);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
emitDetachedComments(comments) {
|
|
179
|
+
if (comments && this.suppressedDetachedCommentArrays.has(comments)) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
this.emitComments(comments, "detached");
|
|
183
|
+
}
|
|
184
|
+
emitComments(comments, placement, targetNode) {
|
|
185
|
+
if (!comments) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
for (const text of comments) {
|
|
189
|
+
this.attachments.push({
|
|
190
|
+
text,
|
|
191
|
+
sourceOrder: this.attachments.length,
|
|
192
|
+
placement,
|
|
193
|
+
...(targetNode ? { targetNode } : {})
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
isSelectQuery(component) {
|
|
198
|
+
return "__selectQueryType" in component &&
|
|
199
|
+
component.__selectQueryType === "SelectQuery";
|
|
200
|
+
}
|
|
201
|
+
suppressWithClauseTrailingCommentsAlreadyCopiedToQuery(query) {
|
|
202
|
+
var _a;
|
|
203
|
+
const trailingComments = (_a = query.withClause) === null || _a === void 0 ? void 0 : _a.trailingComments;
|
|
204
|
+
if (!trailingComments || !query.comments) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (this.containsCommentSequence(query.comments, trailingComments)) {
|
|
208
|
+
this.suppressedDetachedCommentArrays.add(trailingComments);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
containsCommentSequence(source, candidate) {
|
|
212
|
+
if (candidate.length === 0) {
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
for (let start = 0; start <= source.length - candidate.length; start++) {
|
|
216
|
+
const matches = candidate.every((comment, index) => source[start + index] === comment);
|
|
217
|
+
if (matches) {
|
|
218
|
+
return true;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
exports.AstCommentAttachmentExtractor = AstCommentAttachmentExtractor;
|
|
225
|
+
/**
|
|
226
|
+
* Extract comment attachment facts from a SQL AST component.
|
|
227
|
+
*/
|
|
228
|
+
function extractAstCommentAttachments(input) {
|
|
229
|
+
return AstCommentAttachmentExtractor.extract(input);
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=AstCommentAttachmentExtractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AstCommentAttachmentExtractor.js","sourceRoot":"","sources":["../../src/transformers/AstCommentAttachmentExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClauseScopedColumnReferenceCollector = void 0;
|
|
4
|
+
const Clause_1 = require("../models/Clause");
|
|
5
|
+
const SimpleSelectQuery_1 = require("../models/SimpleSelectQuery");
|
|
6
|
+
const ValueComponent_1 = require("../models/ValueComponent");
|
|
7
|
+
/**
|
|
8
|
+
* Collects ColumnReference nodes grouped by the root SimpleSelectQuery clause that owns them.
|
|
9
|
+
*
|
|
10
|
+
* Subquery and CTE bodies are intentionally not traversed because they have their own query-body
|
|
11
|
+
* ownership. Use ColumnReferenceCollector when comprehensive tree traversal is required.
|
|
12
|
+
*/
|
|
13
|
+
class ClauseScopedColumnReferenceCollector {
|
|
14
|
+
collect(query) {
|
|
15
|
+
if (!(query instanceof SimpleSelectQuery_1.SimpleSelectQuery)) {
|
|
16
|
+
throw new Error("ClauseScopedColumnReferenceCollector requires a SimpleSelectQuery.");
|
|
17
|
+
}
|
|
18
|
+
const result = this.createEmptyResult();
|
|
19
|
+
this.collectFromSelectClause(query.selectClause, result);
|
|
20
|
+
this.collectFromJoinClauses(query, result);
|
|
21
|
+
if (query.whereClause) {
|
|
22
|
+
this.collectFromWhereClause(query.whereClause, result);
|
|
23
|
+
}
|
|
24
|
+
if (query.groupByClause) {
|
|
25
|
+
this.collectFromGroupByClause(query.groupByClause, result);
|
|
26
|
+
}
|
|
27
|
+
if (query.havingClause) {
|
|
28
|
+
this.collectFromHavingClause(query.havingClause, result);
|
|
29
|
+
}
|
|
30
|
+
if (query.orderByClause) {
|
|
31
|
+
this.collectFromOrderByClause(query.orderByClause, "orderBy", result);
|
|
32
|
+
}
|
|
33
|
+
if (query.windowClause) {
|
|
34
|
+
this.collectFromWindowsClause(query.windowClause, result);
|
|
35
|
+
}
|
|
36
|
+
if (query.limitClause) {
|
|
37
|
+
this.collectFromLimitClause(query.limitClause, result);
|
|
38
|
+
}
|
|
39
|
+
if (query.offsetClause) {
|
|
40
|
+
this.collectFromOffsetClause(query.offsetClause, result);
|
|
41
|
+
}
|
|
42
|
+
if (query.fetchClause) {
|
|
43
|
+
this.collectFromFetchClause(query.fetchClause, result);
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
createEmptyResult() {
|
|
48
|
+
return {
|
|
49
|
+
select: [],
|
|
50
|
+
where: [],
|
|
51
|
+
joinOn: [],
|
|
52
|
+
groupBy: [],
|
|
53
|
+
having: [],
|
|
54
|
+
orderBy: [],
|
|
55
|
+
window: [],
|
|
56
|
+
limitOffset: [],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
collectFromSelectClause(clause, result) {
|
|
60
|
+
if (clause.distinct instanceof Clause_1.DistinctOn) {
|
|
61
|
+
this.collectFromValueComponent(clause.distinct.value, "select", result);
|
|
62
|
+
}
|
|
63
|
+
for (const item of clause.items) {
|
|
64
|
+
this.collectFromValueComponent(item.value, "select", result);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
collectFromJoinClauses(query, result) {
|
|
68
|
+
var _a;
|
|
69
|
+
if (!((_a = query.fromClause) === null || _a === void 0 ? void 0 : _a.joins)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
for (const join of query.fromClause.joins) {
|
|
73
|
+
if (join.condition instanceof Clause_1.JoinOnClause || join.condition instanceof Clause_1.JoinUsingClause) {
|
|
74
|
+
this.collectFromValueComponent(join.condition.condition, "joinOn", result);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
collectFromWhereClause(clause, result) {
|
|
79
|
+
this.collectFromValueComponent(clause.condition, "where", result);
|
|
80
|
+
}
|
|
81
|
+
collectFromGroupByClause(clause, result) {
|
|
82
|
+
for (const item of clause.grouping) {
|
|
83
|
+
this.collectFromValueComponent(item, "groupBy", result);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
collectFromHavingClause(clause, result) {
|
|
87
|
+
this.collectFromValueComponent(clause.condition, "having", result);
|
|
88
|
+
}
|
|
89
|
+
collectFromOrderByClause(clause, target, result) {
|
|
90
|
+
for (const item of clause.order) {
|
|
91
|
+
if (item instanceof Clause_1.OrderByItem) {
|
|
92
|
+
this.collectFromValueComponent(item.value, target, result);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.collectFromValueComponent(item, target, result);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
collectFromLimitClause(clause, result) {
|
|
100
|
+
this.collectFromValueComponent(clause.value, "limitOffset", result);
|
|
101
|
+
}
|
|
102
|
+
collectFromOffsetClause(clause, result) {
|
|
103
|
+
this.collectFromValueComponent(clause.value, "limitOffset", result);
|
|
104
|
+
}
|
|
105
|
+
collectFromFetchClause(clause, result) {
|
|
106
|
+
this.collectFromValueComponent(clause.expression.count, "limitOffset", result);
|
|
107
|
+
}
|
|
108
|
+
collectFromWindowsClause(clause, result) {
|
|
109
|
+
for (const window of clause.windows) {
|
|
110
|
+
this.collectFromWindowFrameExpression(window.expression, "window", result);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
collectFromValueComponent(value, target, result, expression = value) {
|
|
114
|
+
if (value instanceof ValueComponent_1.ColumnReference) {
|
|
115
|
+
result[target].push(this.createInfo(value, target, expression));
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (value instanceof ValueComponent_1.BinaryExpression) {
|
|
119
|
+
this.collectFromValueComponent(value.left, target, result, value);
|
|
120
|
+
this.collectFromValueComponent(value.right, target, result, value);
|
|
121
|
+
}
|
|
122
|
+
else if (value instanceof ValueComponent_1.UnaryExpression) {
|
|
123
|
+
this.collectFromValueComponent(value.expression, target, result, value);
|
|
124
|
+
}
|
|
125
|
+
else if (value instanceof ValueComponent_1.FunctionCall) {
|
|
126
|
+
this.collectFromFunctionCall(value, target, result);
|
|
127
|
+
}
|
|
128
|
+
else if (value instanceof ValueComponent_1.CaseExpression) {
|
|
129
|
+
if (value.condition) {
|
|
130
|
+
this.collectFromValueComponent(value.condition, target, result, value);
|
|
131
|
+
}
|
|
132
|
+
for (const pair of value.switchCase.cases) {
|
|
133
|
+
this.collectFromValueComponent(pair.key, target, result, value);
|
|
134
|
+
this.collectFromValueComponent(pair.value, target, result, value);
|
|
135
|
+
}
|
|
136
|
+
if (value.switchCase.elseValue) {
|
|
137
|
+
this.collectFromValueComponent(value.switchCase.elseValue, target, result, value);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else if (value instanceof ValueComponent_1.ParenExpression) {
|
|
141
|
+
this.collectFromValueComponent(value.expression, target, result, value);
|
|
142
|
+
}
|
|
143
|
+
else if (value instanceof ValueComponent_1.CastExpression) {
|
|
144
|
+
this.collectFromValueComponent(value.input, target, result, value);
|
|
145
|
+
}
|
|
146
|
+
else if (value instanceof ValueComponent_1.BetweenExpression) {
|
|
147
|
+
this.collectFromValueComponent(value.expression, target, result, value);
|
|
148
|
+
this.collectFromValueComponent(value.lower, target, result, value);
|
|
149
|
+
this.collectFromValueComponent(value.upper, target, result, value);
|
|
150
|
+
}
|
|
151
|
+
else if (value instanceof ValueComponent_1.JsonPredicateExpression) {
|
|
152
|
+
this.collectFromValueComponent(value.expression, target, result, value);
|
|
153
|
+
}
|
|
154
|
+
else if (value instanceof ValueComponent_1.ArrayExpression) {
|
|
155
|
+
this.collectFromValueComponent(value.expression, target, result, value);
|
|
156
|
+
}
|
|
157
|
+
else if (value instanceof ValueComponent_1.ArraySliceExpression) {
|
|
158
|
+
this.collectFromValueComponent(value.array, target, result, value);
|
|
159
|
+
if (value.startIndex) {
|
|
160
|
+
this.collectFromValueComponent(value.startIndex, target, result, value);
|
|
161
|
+
}
|
|
162
|
+
if (value.endIndex) {
|
|
163
|
+
this.collectFromValueComponent(value.endIndex, target, result, value);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else if (value instanceof ValueComponent_1.ArrayIndexExpression) {
|
|
167
|
+
this.collectFromValueComponent(value.array, target, result, value);
|
|
168
|
+
this.collectFromValueComponent(value.index, target, result, value);
|
|
169
|
+
}
|
|
170
|
+
else if (value instanceof ValueComponent_1.ValueList) {
|
|
171
|
+
for (const item of value.values) {
|
|
172
|
+
this.collectFromValueComponent(item, target, result, value);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else if (value instanceof ValueComponent_1.TupleExpression) {
|
|
176
|
+
for (const item of value.values) {
|
|
177
|
+
this.collectFromValueComponent(item, target, result, value);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else if (value instanceof ValueComponent_1.TypeValue && value.argument) {
|
|
181
|
+
this.collectFromValueComponent(value.argument, target, result, value);
|
|
182
|
+
}
|
|
183
|
+
else if (value instanceof ValueComponent_1.InlineQuery || value instanceof ValueComponent_1.ArrayQueryExpression) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
collectFromFunctionCall(value, target, result) {
|
|
188
|
+
if (value.argument) {
|
|
189
|
+
this.collectFromValueComponent(value.argument, target, result, value);
|
|
190
|
+
}
|
|
191
|
+
if (value.filterCondition) {
|
|
192
|
+
this.collectFromValueComponent(value.filterCondition, target, result, value);
|
|
193
|
+
}
|
|
194
|
+
if (value.withinGroup) {
|
|
195
|
+
this.collectFromOrderByClause(value.withinGroup, target, result);
|
|
196
|
+
}
|
|
197
|
+
if (value.internalOrderBy) {
|
|
198
|
+
this.collectFromOrderByClause(value.internalOrderBy, target, result);
|
|
199
|
+
}
|
|
200
|
+
if (value.over instanceof ValueComponent_1.WindowFrameExpression) {
|
|
201
|
+
this.collectFromWindowFrameExpression(value.over, target, result);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
collectFromWindowFrameExpression(value, target, result) {
|
|
205
|
+
if (value.partition) {
|
|
206
|
+
this.collectFromValueComponent(value.partition.value, target, result);
|
|
207
|
+
}
|
|
208
|
+
if (value.order) {
|
|
209
|
+
this.collectFromOrderByClause(value.order, target, result);
|
|
210
|
+
}
|
|
211
|
+
if (value.frameSpec) {
|
|
212
|
+
if (value.frameSpec.startBound instanceof ValueComponent_1.WindowFrameBoundaryValue) {
|
|
213
|
+
this.collectFromValueComponent(value.frameSpec.startBound.value, target, result);
|
|
214
|
+
}
|
|
215
|
+
if (value.frameSpec.endBound instanceof ValueComponent_1.WindowFrameBoundaryValue) {
|
|
216
|
+
this.collectFromValueComponent(value.frameSpec.endBound.value, target, result);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
createInfo(reference, clause, expression) {
|
|
221
|
+
var _a, _b;
|
|
222
|
+
const namespaces = (_b = (_a = reference.namespaces) === null || _a === void 0 ? void 0 : _a.map(namespace => namespace.name)) !== null && _b !== void 0 ? _b : [];
|
|
223
|
+
const columnName = this.getNameText(reference.qualifiedName.name);
|
|
224
|
+
return {
|
|
225
|
+
clause,
|
|
226
|
+
reference,
|
|
227
|
+
qualifiedName: reference.qualifiedName.toString(),
|
|
228
|
+
namespaces,
|
|
229
|
+
namespace: namespaces.length > 0 ? namespaces.join(".") : null,
|
|
230
|
+
column: columnName,
|
|
231
|
+
expression,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
getNameText(name) {
|
|
235
|
+
return name instanceof ValueComponent_1.IdentifierString ? name.name : name.value;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
exports.ClauseScopedColumnReferenceCollector = ClauseScopedColumnReferenceCollector;
|
|
239
|
+
//# sourceMappingURL=ClauseScopedColumnReferenceCollector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClauseScopedColumnReferenceCollector.js","sourceRoot":"","sources":["../../src/transformers/ClauseScopedColumnReferenceCollector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormatOptionResolver.js","sourceRoot":"","sources":["../../src/transformers/FormatOptionResolver.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"FormatOptionResolver.js","sourceRoot":"","sources":["../../src/transformers/FormatOptionResolver.ts"],"names":[],"mappings":"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"}
|