rawsql-ts 0.11.36-beta → 0.11.38-beta
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.js.map +1 -1
- package/dist/esm/index.min.js +54 -50
- package/dist/esm/index.min.js.map +3 -3
- package/dist/esm/src/index.d.ts +1 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/models/Lexeme.d.ts +8 -0
- package/dist/esm/src/models/SqlComponent.d.ts +20 -0
- package/dist/esm/src/models/SqlComponent.js +46 -0
- package/dist/esm/src/models/SqlComponent.js.map +1 -1
- package/dist/esm/src/parsers/CommandExpressionParser.d.ts +9 -0
- package/dist/esm/src/parsers/CommandExpressionParser.js +118 -14
- package/dist/esm/src/parsers/CommandExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/CommonTableParser.d.ts +8 -0
- package/dist/esm/src/parsers/CommonTableParser.js +127 -35
- package/dist/esm/src/parsers/CommonTableParser.js.map +1 -1
- package/dist/esm/src/parsers/FromClauseParser.js +2 -2
- package/dist/esm/src/parsers/FromClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/FullNameParser.js +13 -1
- package/dist/esm/src/parsers/FullNameParser.js.map +1 -1
- package/dist/esm/src/parsers/FunctionExpressionParser.js +37 -3
- package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/JoinClauseParser.d.ts +4 -0
- package/dist/esm/src/parsers/JoinClauseParser.js +54 -20
- package/dist/esm/src/parsers/JoinClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/OrderByClauseParser.js +39 -8
- package/dist/esm/src/parsers/OrderByClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/ParenExpressionParser.js +1 -1
- package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/SelectClauseParser.d.ts +10 -0
- package/dist/esm/src/parsers/SelectClauseParser.js +124 -12
- package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/SelectQueryParser.d.ts +12 -0
- package/dist/esm/src/parsers/SelectQueryParser.js +277 -115
- package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/SourceAliasExpressionParser.js +15 -4
- package/dist/esm/src/parsers/SourceAliasExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/SourceParser.js +33 -2
- package/dist/esm/src/parsers/SourceParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +62 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +700 -32
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlTokenizer.d.ts +1 -4
- package/dist/esm/src/parsers/SqlTokenizer.js +108 -52
- package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/esm/src/parsers/ValueParser.d.ts +4 -0
- package/dist/esm/src/parsers/ValueParser.js +119 -20
- package/dist/esm/src/parsers/ValueParser.js.map +1 -1
- package/dist/esm/src/parsers/WithClauseParser.d.ts +4 -0
- package/dist/esm/src/parsers/WithClauseParser.js +64 -35
- package/dist/esm/src/parsers/WithClauseParser.js.map +1 -1
- package/dist/esm/src/tokenReaders/CommandTokenReader.js +9 -1
- package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/esm/src/transformers/CTEQueryDecomposer.d.ts +69 -0
- package/dist/esm/src/transformers/CTEQueryDecomposer.js +123 -0
- package/dist/esm/src/transformers/CTEQueryDecomposer.js.map +1 -1
- package/dist/esm/src/transformers/LinePrinter.d.ts +17 -2
- package/dist/esm/src/transformers/LinePrinter.js +39 -10
- package/dist/esm/src/transformers/LinePrinter.js.map +1 -1
- package/dist/esm/src/transformers/SqlFormatter.d.ts +44 -16
- package/dist/esm/src/transformers/SqlFormatter.js +2 -2
- package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/esm/src/transformers/SqlPrinter.d.ts +30 -20
- package/dist/esm/src/transformers/SqlPrinter.js +119 -25
- package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/esm/src/utils/CommentEditor.d.ts +12 -5
- package/dist/esm/src/utils/CommentEditor.js +67 -28
- package/dist/esm/src/utils/CommentEditor.js.map +1 -1
- package/dist/esm/src/utils/stringUtils.js +21 -9
- package/dist/esm/src/utils/stringUtils.js.map +1 -1
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +54 -50
- package/dist/index.min.js.map +3 -3
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/Lexeme.d.ts +8 -0
- package/dist/src/models/SqlComponent.d.ts +20 -0
- package/dist/src/models/SqlComponent.js +46 -0
- package/dist/src/models/SqlComponent.js.map +1 -1
- package/dist/src/parsers/CommandExpressionParser.d.ts +9 -0
- package/dist/src/parsers/CommandExpressionParser.js +118 -14
- package/dist/src/parsers/CommandExpressionParser.js.map +1 -1
- package/dist/src/parsers/CommonTableParser.d.ts +8 -0
- package/dist/src/parsers/CommonTableParser.js +127 -35
- package/dist/src/parsers/CommonTableParser.js.map +1 -1
- package/dist/src/parsers/FromClauseParser.js +2 -2
- package/dist/src/parsers/FromClauseParser.js.map +1 -1
- package/dist/src/parsers/FullNameParser.js +13 -1
- package/dist/src/parsers/FullNameParser.js.map +1 -1
- package/dist/src/parsers/FunctionExpressionParser.js +37 -3
- package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/src/parsers/JoinClauseParser.d.ts +4 -0
- package/dist/src/parsers/JoinClauseParser.js +54 -20
- package/dist/src/parsers/JoinClauseParser.js.map +1 -1
- package/dist/src/parsers/OrderByClauseParser.js +39 -8
- package/dist/src/parsers/OrderByClauseParser.js.map +1 -1
- package/dist/src/parsers/ParenExpressionParser.js +1 -1
- package/dist/src/parsers/ParenExpressionParser.js.map +1 -1
- package/dist/src/parsers/SelectClauseParser.d.ts +10 -0
- package/dist/src/parsers/SelectClauseParser.js +124 -12
- package/dist/src/parsers/SelectClauseParser.js.map +1 -1
- package/dist/src/parsers/SelectQueryParser.d.ts +12 -0
- package/dist/src/parsers/SelectQueryParser.js +280 -115
- package/dist/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/src/parsers/SourceAliasExpressionParser.js +15 -4
- package/dist/src/parsers/SourceAliasExpressionParser.js.map +1 -1
- package/dist/src/parsers/SourceParser.js +33 -2
- package/dist/src/parsers/SourceParser.js.map +1 -1
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +62 -0
- package/dist/src/parsers/SqlPrintTokenParser.js +700 -32
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/parsers/SqlTokenizer.d.ts +1 -4
- package/dist/src/parsers/SqlTokenizer.js +108 -52
- package/dist/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/src/parsers/ValueParser.d.ts +4 -0
- package/dist/src/parsers/ValueParser.js +119 -20
- package/dist/src/parsers/ValueParser.js.map +1 -1
- package/dist/src/parsers/WithClauseParser.d.ts +4 -0
- package/dist/src/parsers/WithClauseParser.js +64 -35
- package/dist/src/parsers/WithClauseParser.js.map +1 -1
- package/dist/src/tokenReaders/CommandTokenReader.js +9 -1
- package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/src/transformers/CTEQueryDecomposer.d.ts +69 -0
- package/dist/src/transformers/CTEQueryDecomposer.js +123 -0
- package/dist/src/transformers/CTEQueryDecomposer.js.map +1 -1
- package/dist/src/transformers/LinePrinter.d.ts +17 -2
- package/dist/src/transformers/LinePrinter.js +39 -10
- package/dist/src/transformers/LinePrinter.js.map +1 -1
- package/dist/src/transformers/SqlFormatter.d.ts +44 -16
- package/dist/src/transformers/SqlFormatter.js +13 -2
- package/dist/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/src/transformers/SqlPrinter.d.ts +30 -20
- package/dist/src/transformers/SqlPrinter.js +119 -25
- package/dist/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/src/utils/CommentEditor.d.ts +12 -5
- package/dist/src/utils/CommentEditor.js +67 -28
- package/dist/src/utils/CommentEditor.js.map +1 -1
- package/dist/src/utils/stringUtils.js +21 -9
- package/dist/src/utils/stringUtils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -24,6 +24,20 @@ export interface CTEDecomposerOptions extends SqlFormatterOptions {
|
|
|
24
24
|
/** Whether to add comments to decomposed queries showing metadata and dependencies */
|
|
25
25
|
addComments?: boolean;
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Result of CTE SQL restoration containing executable query and metadata
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
31
|
+
export interface CTERestorationResult {
|
|
32
|
+
/** Name of the CTE */
|
|
33
|
+
name: string;
|
|
34
|
+
/** Executable SQL query including all dependencies */
|
|
35
|
+
executableSql: string;
|
|
36
|
+
/** Array of CTE names that this CTE depends on (in execution order) */
|
|
37
|
+
dependencies: string[];
|
|
38
|
+
/** Any warnings encountered during restoration */
|
|
39
|
+
warnings: string[];
|
|
40
|
+
}
|
|
27
41
|
/**
|
|
28
42
|
* Decomposes complex CTEs into executable standalone queries
|
|
29
43
|
*
|
|
@@ -31,6 +45,7 @@ export interface CTEDecomposerOptions extends SqlFormatterOptions {
|
|
|
31
45
|
* for each CTE, making complex CTE debugging easier. It supports:
|
|
32
46
|
* - Recursive CTE detection and handling
|
|
33
47
|
* - Dependency analysis (dependencies and dependents for each CTE)
|
|
48
|
+
* - CTE SQL Restoration: Generate executable SQL for a specific CTE with its dependencies
|
|
34
49
|
* - Configurable SQL formatter options (MySQL, PostgreSQL, custom styles)
|
|
35
50
|
* - Optional comment generation showing CTE metadata and relationships
|
|
36
51
|
* - Comprehensive error handling for circular dependencies
|
|
@@ -51,6 +66,10 @@ export interface CTEDecomposerOptions extends SqlFormatterOptions {
|
|
|
51
66
|
*
|
|
52
67
|
* const decomposed = decomposer.decompose(SelectQueryParser.parse(query));
|
|
53
68
|
* // Returns array of DecomposedCTE objects with executable queries
|
|
69
|
+
*
|
|
70
|
+
* // Or restore a specific CTE for debugging:
|
|
71
|
+
* const restored = decomposer.extractCTE(SelectQueryParser.parse(query), 'active_users');
|
|
72
|
+
* console.log(restored.executableSql); // Standalone executable SQL with dependencies
|
|
54
73
|
* ```
|
|
55
74
|
*
|
|
56
75
|
* @public
|
|
@@ -130,6 +149,42 @@ export declare class CTEQueryDecomposer {
|
|
|
130
149
|
name: string;
|
|
131
150
|
query: string;
|
|
132
151
|
}>, rootQuery: string): DecomposedCTE[];
|
|
152
|
+
/**
|
|
153
|
+
* Restores executable SQL for a specific CTE by including all its dependencies
|
|
154
|
+
*
|
|
155
|
+
* This method provides a focused API for generating standalone, executable SQL
|
|
156
|
+
* for a specific Common Table Expression. It analyzes dependencies and includes
|
|
157
|
+
* all required CTEs in the correct execution order.
|
|
158
|
+
*
|
|
159
|
+
* Key features:
|
|
160
|
+
* - Automatic dependency resolution and ordering
|
|
161
|
+
* - Recursive CTE detection and handling
|
|
162
|
+
* - Error handling for circular dependencies
|
|
163
|
+
* - Optional dependency comments for debugging
|
|
164
|
+
*
|
|
165
|
+
* @param query - The query containing CTEs
|
|
166
|
+
* @param cteName - The name of the CTE to restore
|
|
167
|
+
* @returns CTERestorationResult with executable SQL and metadata
|
|
168
|
+
* @throws Error if CTE is not found or circular dependencies exist
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* const query = SelectQueryParser.parse(`
|
|
173
|
+
* with users_data as (select * from users),
|
|
174
|
+
* active_users as (select * from users_data where active = true),
|
|
175
|
+
* premium_users as (select * from active_users where premium = true)
|
|
176
|
+
* select * from premium_users
|
|
177
|
+
* `);
|
|
178
|
+
*
|
|
179
|
+
* // Get executable SQL for 'premium_users' CTE
|
|
180
|
+
* const result = decomposer.extractCTE(query, 'premium_users');
|
|
181
|
+
* // result.executableSql will contain:
|
|
182
|
+
* // with users_data as (select * from users),
|
|
183
|
+
* // active_users as (select * from users_data where active = true)
|
|
184
|
+
* // select * from active_users where premium = true
|
|
185
|
+
* ```
|
|
186
|
+
*/
|
|
187
|
+
extractCTE(query: SimpleSelectQuery, cteName: string): CTERestorationResult;
|
|
133
188
|
/**
|
|
134
189
|
* Flattens nested WITH clauses by extracting sub-CTEs from edited CTEs
|
|
135
190
|
* @param editedCTEs Array of edited CTEs that may contain nested WITH clauses
|
|
@@ -212,6 +267,20 @@ export declare class CTEQueryDecomposer {
|
|
|
212
267
|
* @returns Query with text comments prepended
|
|
213
268
|
*/
|
|
214
269
|
private addTextCommentsToQuery;
|
|
270
|
+
/**
|
|
271
|
+
* Adds restoration comments to the executable SQL if enabled
|
|
272
|
+
* @param sql The executable SQL
|
|
273
|
+
* @param targetNode The target CTE node
|
|
274
|
+
* @param warnings Any warnings to include
|
|
275
|
+
* @returns SQL with comments added
|
|
276
|
+
*/
|
|
277
|
+
private addRestorationComments;
|
|
278
|
+
/**
|
|
279
|
+
* Gets all CTE names from an array of CTEs
|
|
280
|
+
* @param ctes Array of CommonTable objects
|
|
281
|
+
* @returns Array of CTE names
|
|
282
|
+
*/
|
|
283
|
+
private getAllCTENames;
|
|
215
284
|
/**
|
|
216
285
|
* Extracts the name from a CommonTable
|
|
217
286
|
*/
|
|
@@ -15,6 +15,7 @@ const CTEComposer_1 = require("./CTEComposer");
|
|
|
15
15
|
* for each CTE, making complex CTE debugging easier. It supports:
|
|
16
16
|
* - Recursive CTE detection and handling
|
|
17
17
|
* - Dependency analysis (dependencies and dependents for each CTE)
|
|
18
|
+
* - CTE SQL Restoration: Generate executable SQL for a specific CTE with its dependencies
|
|
18
19
|
* - Configurable SQL formatter options (MySQL, PostgreSQL, custom styles)
|
|
19
20
|
* - Optional comment generation showing CTE metadata and relationships
|
|
20
21
|
* - Comprehensive error handling for circular dependencies
|
|
@@ -35,6 +36,10 @@ const CTEComposer_1 = require("./CTEComposer");
|
|
|
35
36
|
*
|
|
36
37
|
* const decomposed = decomposer.decompose(SelectQueryParser.parse(query));
|
|
37
38
|
* // Returns array of DecomposedCTE objects with executable queries
|
|
39
|
+
*
|
|
40
|
+
* // Or restore a specific CTE for debugging:
|
|
41
|
+
* const restored = decomposer.extractCTE(SelectQueryParser.parse(query), 'active_users');
|
|
42
|
+
* console.log(restored.executableSql); // Standalone executable SQL with dependencies
|
|
38
43
|
* ```
|
|
39
44
|
*
|
|
40
45
|
* @public
|
|
@@ -137,6 +142,93 @@ class CTEQueryDecomposer {
|
|
|
137
142
|
// Re-decompose the synchronized query
|
|
138
143
|
return this.decompose(parsedQuery);
|
|
139
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Restores executable SQL for a specific CTE by including all its dependencies
|
|
147
|
+
*
|
|
148
|
+
* This method provides a focused API for generating standalone, executable SQL
|
|
149
|
+
* for a specific Common Table Expression. It analyzes dependencies and includes
|
|
150
|
+
* all required CTEs in the correct execution order.
|
|
151
|
+
*
|
|
152
|
+
* Key features:
|
|
153
|
+
* - Automatic dependency resolution and ordering
|
|
154
|
+
* - Recursive CTE detection and handling
|
|
155
|
+
* - Error handling for circular dependencies
|
|
156
|
+
* - Optional dependency comments for debugging
|
|
157
|
+
*
|
|
158
|
+
* @param query - The query containing CTEs
|
|
159
|
+
* @param cteName - The name of the CTE to restore
|
|
160
|
+
* @returns CTERestorationResult with executable SQL and metadata
|
|
161
|
+
* @throws Error if CTE is not found or circular dependencies exist
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```typescript
|
|
165
|
+
* const query = SelectQueryParser.parse(`
|
|
166
|
+
* with users_data as (select * from users),
|
|
167
|
+
* active_users as (select * from users_data where active = true),
|
|
168
|
+
* premium_users as (select * from active_users where premium = true)
|
|
169
|
+
* select * from premium_users
|
|
170
|
+
* `);
|
|
171
|
+
*
|
|
172
|
+
* // Get executable SQL for 'premium_users' CTE
|
|
173
|
+
* const result = decomposer.extractCTE(query, 'premium_users');
|
|
174
|
+
* // result.executableSql will contain:
|
|
175
|
+
* // with users_data as (select * from users),
|
|
176
|
+
* // active_users as (select * from users_data where active = true)
|
|
177
|
+
* // select * from active_users where premium = true
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
extractCTE(query, cteName) {
|
|
181
|
+
const warnings = [];
|
|
182
|
+
// Validate query contains CTEs
|
|
183
|
+
const allCTEs = this.cteCollector.collect(query);
|
|
184
|
+
if (allCTEs.length === 0) {
|
|
185
|
+
throw new Error("Query does not contain any CTEs");
|
|
186
|
+
}
|
|
187
|
+
// Find target CTE
|
|
188
|
+
const targetCTE = allCTEs.find(cte => this.getCTEName(cte) === cteName);
|
|
189
|
+
if (!targetCTE) {
|
|
190
|
+
throw new Error(`CTE not found in query: ${cteName}`);
|
|
191
|
+
}
|
|
192
|
+
// Check if this is a recursive CTE
|
|
193
|
+
const recursiveCTEs = this.findRecursiveCTEs(query, allCTEs);
|
|
194
|
+
const isRecursive = recursiveCTEs.includes(cteName);
|
|
195
|
+
if (isRecursive) {
|
|
196
|
+
warnings.push("Recursive CTE restoration requires the full query context");
|
|
197
|
+
// For recursive CTEs, return the entire query as dependencies are complex
|
|
198
|
+
return {
|
|
199
|
+
name: cteName,
|
|
200
|
+
executableSql: this.formatter.format(query).formattedSql,
|
|
201
|
+
dependencies: this.getAllCTENames(allCTEs).filter(name => name !== cteName),
|
|
202
|
+
warnings
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
// Analyze dependencies
|
|
206
|
+
const dependencyGraph = this.dependencyAnalyzer.analyzeDependencies(query);
|
|
207
|
+
// Check for circular dependencies
|
|
208
|
+
if (this.dependencyAnalyzer.hasCircularDependency()) {
|
|
209
|
+
throw new Error("Circular dependency detected in CTEs");
|
|
210
|
+
}
|
|
211
|
+
// Find target node in dependency graph
|
|
212
|
+
const targetNode = dependencyGraph.nodes.find(node => node.name === cteName);
|
|
213
|
+
if (!targetNode || !targetNode.cte) {
|
|
214
|
+
throw new Error(`CTE not found in dependency graph: ${cteName}`);
|
|
215
|
+
}
|
|
216
|
+
// Build executable query using existing private method
|
|
217
|
+
const executableSql = this.buildExecutableQuery(targetNode, dependencyGraph.nodes);
|
|
218
|
+
// Collect all required dependencies in correct order
|
|
219
|
+
const requiredCTEs = this.collectRequiredCTEs(targetNode, dependencyGraph.nodes);
|
|
220
|
+
const allDependencies = requiredCTEs.map(node => node.name);
|
|
221
|
+
// Add comments if requested
|
|
222
|
+
const finalSql = this.options.addComments
|
|
223
|
+
? this.addRestorationComments(executableSql, targetNode, warnings)
|
|
224
|
+
: executableSql;
|
|
225
|
+
return {
|
|
226
|
+
name: cteName,
|
|
227
|
+
executableSql: finalSql,
|
|
228
|
+
dependencies: allDependencies,
|
|
229
|
+
warnings
|
|
230
|
+
};
|
|
231
|
+
}
|
|
140
232
|
/**
|
|
141
233
|
* Flattens nested WITH clauses by extracting sub-CTEs from edited CTEs
|
|
142
234
|
* @param editedCTEs Array of edited CTEs that may contain nested WITH clauses
|
|
@@ -443,6 +535,37 @@ class CTEQueryDecomposer {
|
|
|
443
535
|
const commentLines = comments.map(comment => `-- ${comment}`).join('\n');
|
|
444
536
|
return `${commentLines}\n${query}`;
|
|
445
537
|
}
|
|
538
|
+
/**
|
|
539
|
+
* Adds restoration comments to the executable SQL if enabled
|
|
540
|
+
* @param sql The executable SQL
|
|
541
|
+
* @param targetNode The target CTE node
|
|
542
|
+
* @param warnings Any warnings to include
|
|
543
|
+
* @returns SQL with comments added
|
|
544
|
+
*/
|
|
545
|
+
addRestorationComments(sql, targetNode, warnings) {
|
|
546
|
+
const comments = [];
|
|
547
|
+
comments.push("-- CTE Restoration: " + targetNode.name);
|
|
548
|
+
if (targetNode.dependencies.length > 0) {
|
|
549
|
+
comments.push("-- Dependencies: " + targetNode.dependencies.join(", "));
|
|
550
|
+
}
|
|
551
|
+
else {
|
|
552
|
+
comments.push("-- Dependencies: none");
|
|
553
|
+
}
|
|
554
|
+
if (warnings.length > 0) {
|
|
555
|
+
comments.push("-- Warnings: " + warnings.join(", "));
|
|
556
|
+
}
|
|
557
|
+
comments.push("-- Generated by CTEQueryDecomposer.extractCTE()");
|
|
558
|
+
comments.push("");
|
|
559
|
+
return comments.join("\n") + sql;
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Gets all CTE names from an array of CTEs
|
|
563
|
+
* @param ctes Array of CommonTable objects
|
|
564
|
+
* @returns Array of CTE names
|
|
565
|
+
*/
|
|
566
|
+
getAllCTENames(ctes) {
|
|
567
|
+
return ctes.map(cte => this.getCTEName(cte));
|
|
568
|
+
}
|
|
446
569
|
/**
|
|
447
570
|
* Extracts the name from a CommonTable
|
|
448
571
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CTEQueryDecomposer.js","sourceRoot":"","sources":["../../../src/transformers/CTEQueryDecomposer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CTEQueryDecomposer.js","sourceRoot":"","sources":["../../../src/transformers/CTEQueryDecomposer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type NewlineOption = ' ' | '\n' | '\r\n';
|
|
2
|
-
export type IndentCharOption =
|
|
2
|
+
export type IndentCharOption = string;
|
|
3
|
+
export type CommaBreakStyle = 'none' | 'before' | 'after';
|
|
3
4
|
/**
|
|
4
5
|
* SqlPrintHelper provides utility methods for SQL pretty printing.
|
|
5
6
|
*/
|
|
@@ -7,13 +8,15 @@ export declare class LinePrinter {
|
|
|
7
8
|
indentChar: IndentCharOption;
|
|
8
9
|
indentSize: number;
|
|
9
10
|
newline: NewlineOption;
|
|
11
|
+
commaBreak: CommaBreakStyle;
|
|
10
12
|
lines: PrintLine[];
|
|
11
13
|
/**
|
|
12
14
|
* @param indentChar Character used for indentation (default: ' ') // Updated comment to reflect options
|
|
13
15
|
* @param indentSize Number of indentChar per level (default: 0)
|
|
14
16
|
* @param newline Newline string (default: '\r\n') // Changed type and default value
|
|
17
|
+
* @param commaBreak Comma break style (default: 'none')
|
|
15
18
|
*/
|
|
16
|
-
constructor(indentChar?: IndentCharOption, indentSize?: number, newline?: NewlineOption);
|
|
19
|
+
constructor(indentChar?: IndentCharOption, indentSize?: number, newline?: NewlineOption, commaBreak?: CommaBreakStyle);
|
|
17
20
|
print(): string;
|
|
18
21
|
/**
|
|
19
22
|
* Returns the indent string for a given level.
|
|
@@ -32,7 +35,19 @@ export declare class LinePrinter {
|
|
|
32
35
|
* @param text Text to append
|
|
33
36
|
*/
|
|
34
37
|
appendText(text: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Cleans up the current line for comma formatting.
|
|
40
|
+
* For 'after' and 'none' comma styles, removes empty line when a comma is being added.
|
|
41
|
+
* @param text The text being processed
|
|
42
|
+
* @returns true if cleanup was performed, false otherwise
|
|
43
|
+
*/
|
|
44
|
+
cleanupLine(text: string): boolean;
|
|
35
45
|
getCurrentLine(): PrintLine;
|
|
46
|
+
/**
|
|
47
|
+
* Checks if the current line is empty (has no text content)
|
|
48
|
+
* @returns true if current line is empty, false otherwise
|
|
49
|
+
*/
|
|
50
|
+
isCurrentLineEmpty(): boolean;
|
|
36
51
|
}
|
|
37
52
|
export declare class PrintLine {
|
|
38
53
|
level: number;
|
|
@@ -9,11 +9,13 @@ class LinePrinter {
|
|
|
9
9
|
* @param indentChar Character used for indentation (default: ' ') // Updated comment to reflect options
|
|
10
10
|
* @param indentSize Number of indentChar per level (default: 0)
|
|
11
11
|
* @param newline Newline string (default: '\r\n') // Changed type and default value
|
|
12
|
+
* @param commaBreak Comma break style (default: 'none')
|
|
12
13
|
*/
|
|
13
|
-
constructor(indentChar = ' ', indentSize = 0, newline = '\r\n') {
|
|
14
|
+
constructor(indentChar = ' ', indentSize = 0, newline = '\r\n', commaBreak = 'none') {
|
|
14
15
|
this.indentChar = indentChar;
|
|
15
16
|
this.indentSize = indentSize;
|
|
16
17
|
this.newline = newline;
|
|
18
|
+
this.commaBreak = commaBreak;
|
|
17
19
|
this.lines = [];
|
|
18
20
|
this.appendNewline(0);
|
|
19
21
|
}
|
|
@@ -54,17 +56,33 @@ class LinePrinter {
|
|
|
54
56
|
* @param text Text to append
|
|
55
57
|
*/
|
|
56
58
|
appendText(text) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
59
|
+
// Handle special comma cleanup first
|
|
60
|
+
if (this.cleanupLine(text)) {
|
|
61
|
+
// If cleanup was performed, add comma to previous line
|
|
62
|
+
const previousLine = this.lines[this.lines.length - 1];
|
|
63
|
+
previousLine.text = previousLine.text.trimEnd() + text;
|
|
64
|
+
return;
|
|
64
65
|
}
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
const workLine = this.getCurrentLine();
|
|
67
|
+
// Leading space is not needed
|
|
68
|
+
if (!(text === ' ' && workLine.text === '')) {
|
|
69
|
+
workLine.text += text;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Cleans up the current line for comma formatting.
|
|
74
|
+
* For 'after' and 'none' comma styles, removes empty line when a comma is being added.
|
|
75
|
+
* @param text The text being processed
|
|
76
|
+
* @returns true if cleanup was performed, false otherwise
|
|
77
|
+
*/
|
|
78
|
+
cleanupLine(text) {
|
|
79
|
+
const workLine = this.getCurrentLine();
|
|
80
|
+
if (text === ',' && workLine.text.trim() === '' && this.lines.length > 1 && (this.commaBreak === 'after' || this.commaBreak === 'none')) {
|
|
81
|
+
// Remove current empty line
|
|
82
|
+
this.lines.pop(); // Safe: we checked lines.length > 1
|
|
83
|
+
return true; // Cleanup performed
|
|
67
84
|
}
|
|
85
|
+
return false; // No cleanup needed
|
|
68
86
|
}
|
|
69
87
|
getCurrentLine() {
|
|
70
88
|
if (this.lines.length > 0) {
|
|
@@ -74,6 +92,17 @@ class LinePrinter {
|
|
|
74
92
|
throw new Error('No tokens to get current line from.');
|
|
75
93
|
}
|
|
76
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Checks if the current line is empty (has no text content)
|
|
97
|
+
* @returns true if current line is empty, false otherwise
|
|
98
|
+
*/
|
|
99
|
+
isCurrentLineEmpty() {
|
|
100
|
+
if (this.lines.length > 0) {
|
|
101
|
+
const currentLine = this.lines[this.lines.length - 1];
|
|
102
|
+
return currentLine.text.trim() === '';
|
|
103
|
+
}
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
77
106
|
}
|
|
78
107
|
exports.LinePrinter = LinePrinter;
|
|
79
108
|
class PrintLine {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinePrinter.js","sourceRoot":"","sources":["../../../src/transformers/LinePrinter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"LinePrinter.js","sourceRoot":"","sources":["../../../src/transformers/LinePrinter.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,24 +11,16 @@ export type PresetName = (typeof VALID_PRESETS)[number];
|
|
|
11
11
|
*/
|
|
12
12
|
export type WithClauseStyle = 'standard' | 'cte-oneline' | 'full-oneline';
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* CommentStyle determines how comments are formatted in the output.
|
|
15
|
+
* - 'block': Keep original comment style (default)
|
|
16
|
+
* - 'smart': Convert single-line to --, multi-line to block comments, optimize for comma break styles
|
|
17
|
+
*/
|
|
18
|
+
export type CommentStyle = 'block' | 'smart';
|
|
19
|
+
/**
|
|
20
|
+
* Base formatting options shared between SqlFormatter and SqlPrinter
|
|
15
21
|
* @public
|
|
16
22
|
*/
|
|
17
|
-
export interface
|
|
18
|
-
/** Database preset for formatting style ('mysql', 'postgres', 'sqlserver', 'sqlite') */
|
|
19
|
-
preset?: PresetName;
|
|
20
|
-
/** Custom identifier escape characters (e.g., {start: '"', end: '"'} for PostgreSQL) */
|
|
21
|
-
identifierEscape?: {
|
|
22
|
-
start: string;
|
|
23
|
-
end: string;
|
|
24
|
-
};
|
|
25
|
-
/** Parameter symbol configuration for SQL parameters */
|
|
26
|
-
parameterSymbol?: string | {
|
|
27
|
-
start: string;
|
|
28
|
-
end: string;
|
|
29
|
-
};
|
|
30
|
-
/** Style for parameter formatting */
|
|
31
|
-
parameterStyle?: 'anonymous' | 'indexed' | 'named';
|
|
23
|
+
export interface BaseFormattingOptions {
|
|
32
24
|
/** Number of spaces for indentation */
|
|
33
25
|
indentSize?: number;
|
|
34
26
|
/** Character to use for indentation ('space' or 'tab') */
|
|
@@ -39,14 +31,50 @@ export interface SqlFormatterOptions {
|
|
|
39
31
|
keywordCase?: 'none' | 'upper' | 'lower';
|
|
40
32
|
/** Style for comma line breaks */
|
|
41
33
|
commaBreak?: CommaBreakStyle;
|
|
34
|
+
/** Style for comma line breaks inside WITH clause definitions */
|
|
35
|
+
cteCommaBreak?: CommaBreakStyle;
|
|
42
36
|
/** Style for AND/OR line breaks */
|
|
43
37
|
andBreak?: AndBreakStyle;
|
|
44
38
|
/** Whether to export comments in formatted output */
|
|
45
39
|
exportComment?: boolean;
|
|
46
40
|
/** Whether to only export comments from clause-level keywords */
|
|
47
41
|
strictCommentPlacement?: boolean;
|
|
42
|
+
/** Comment formatting style */
|
|
43
|
+
commentStyle?: CommentStyle;
|
|
48
44
|
/** Formatting style for WITH clauses */
|
|
49
45
|
withClauseStyle?: WithClauseStyle;
|
|
46
|
+
/** Keep parentheses content on one line regardless of AND/OR break settings */
|
|
47
|
+
parenthesesOneLine?: boolean;
|
|
48
|
+
/** Keep BETWEEN expressions on one line regardless of AND break settings */
|
|
49
|
+
betweenOneLine?: boolean;
|
|
50
|
+
/** Keep VALUES clause on one line regardless of comma break settings */
|
|
51
|
+
valuesOneLine?: boolean;
|
|
52
|
+
/** Keep JOIN conditions on one line regardless of AND/OR break settings */
|
|
53
|
+
joinOneLine?: boolean;
|
|
54
|
+
/** Keep CASE expressions on one line regardless of formatting settings */
|
|
55
|
+
caseOneLine?: boolean;
|
|
56
|
+
/** Keep subqueries (inline queries) on one line regardless of formatting settings */
|
|
57
|
+
subqueryOneLine?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Options for SqlFormatter configuration
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
export interface SqlFormatterOptions extends BaseFormattingOptions {
|
|
64
|
+
/** Database preset for formatting style ('mysql', 'postgres', 'sqlserver', 'sqlite') */
|
|
65
|
+
preset?: PresetName;
|
|
66
|
+
/** Custom identifier escape characters (e.g., {start: '"', end: '"'} for PostgreSQL) */
|
|
67
|
+
identifierEscape?: {
|
|
68
|
+
start: string;
|
|
69
|
+
end: string;
|
|
70
|
+
};
|
|
71
|
+
/** Parameter symbol configuration for SQL parameters */
|
|
72
|
+
parameterSymbol?: string | {
|
|
73
|
+
start: string;
|
|
74
|
+
end: string;
|
|
75
|
+
};
|
|
76
|
+
/** Style for parameter formatting */
|
|
77
|
+
parameterStyle?: 'anonymous' | 'indexed' | 'named';
|
|
50
78
|
}
|
|
51
79
|
/**
|
|
52
80
|
* SqlFormatter class combines parsing and printing of SQL queries into a single interface.
|
|
@@ -21,8 +21,19 @@ class SqlFormatter {
|
|
|
21
21
|
parameterSymbol: (_b = options.parameterSymbol) !== null && _b !== void 0 ? _b : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.parameterSymbol,
|
|
22
22
|
parameterStyle: (_c = options.parameterStyle) !== null && _c !== void 0 ? _c : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.parameterStyle,
|
|
23
23
|
};
|
|
24
|
-
this.parser = new SqlPrintTokenParser_1.SqlPrintTokenParser(
|
|
25
|
-
|
|
24
|
+
this.parser = new SqlPrintTokenParser_1.SqlPrintTokenParser({
|
|
25
|
+
...parserOptions,
|
|
26
|
+
commentStyle: options.commentStyle
|
|
27
|
+
});
|
|
28
|
+
this.printer = new SqlPrinter_1.SqlPrinter({
|
|
29
|
+
...options,
|
|
30
|
+
parenthesesOneLine: options.parenthesesOneLine,
|
|
31
|
+
betweenOneLine: options.betweenOneLine,
|
|
32
|
+
valuesOneLine: options.valuesOneLine,
|
|
33
|
+
joinOneLine: options.joinOneLine,
|
|
34
|
+
caseOneLine: options.caseOneLine,
|
|
35
|
+
subqueryOneLine: options.subqueryOneLine
|
|
36
|
+
});
|
|
26
37
|
} /**
|
|
27
38
|
* Formats a SQL query string with the given parameters.
|
|
28
39
|
* @param sqlText The SQL query string to format.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlFormatter.js","sourceRoot":"","sources":["../../../src/transformers/SqlFormatter.ts"],"names":[],"mappings":";;;AAAA,wEAA+F;AAC/F,6CAA0E;AAK1E,4CAA4C;AAC/B,QAAA,aAAa,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"SqlFormatter.js","sourceRoot":"","sources":["../../../src/transformers/SqlFormatter.ts"],"names":[],"mappings":";;;AAAA,wEAA+F;AAC/F,6CAA0E;AAK1E,4CAA4C;AAC/B,QAAA,aAAa,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AA0EnF;;GAEG;AACH,MAAa,YAAY;IAIrB,YAAY,UAA+B,EAAE;;QAEzC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,6BAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE1E,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,iCAAiC;QAC3F,CAAC;QAED,MAAM,aAAa,GAAG;YAClB,GAAG,YAAY,EAAE,6BAA6B;YAC9C,gBAAgB,EAAE,MAAA,OAAO,CAAC,gBAAgB,mCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,gBAAgB;YAC5E,eAAe,EAAE,MAAA,OAAO,CAAC,eAAe,mCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,eAAe;YACzE,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,cAAc;SACzE,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,yCAAmB,CAAC;YAClC,GAAG,aAAa;YAChB,YAAY,EAAE,OAAO,CAAC,YAAY;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAU,CAAC;YAC1B,GAAG,OAAO;YACV,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,eAAe,EAAE,OAAO,CAAC,eAAe;SAC3C,CAAC,CAAC;IACP,CAAC,CAAI;;;;;OAKF;IACH,MAAM,CAAC,GAAiB;QACpB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;CACJ;AA5CD,oCA4CC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SqlPrintToken, SqlPrintTokenContainerType } from "../models/SqlPrintToken";
|
|
2
2
|
import { IndentCharOption, NewlineOption } from "./LinePrinter";
|
|
3
|
-
import { WithClauseStyle } from "./SqlFormatter";
|
|
3
|
+
import { BaseFormattingOptions, WithClauseStyle, CommentStyle } from "./SqlFormatter";
|
|
4
4
|
/**
|
|
5
5
|
* CommaBreakStyle determines how commas are placed in formatted SQL output.
|
|
6
6
|
* - 'none': No line break for commas
|
|
@@ -18,27 +18,9 @@ export type AndBreakStyle = 'none' | 'before' | 'after';
|
|
|
18
18
|
/**
|
|
19
19
|
* Options for configuring SqlPrinter formatting behavior
|
|
20
20
|
*/
|
|
21
|
-
export interface SqlPrinterOptions {
|
|
22
|
-
/** Indent character (e.g., ' ' or '\t') */
|
|
23
|
-
indentChar?: IndentCharOption;
|
|
24
|
-
/** Indent size (number of indentChar repetitions per level) */
|
|
25
|
-
indentSize?: number;
|
|
26
|
-
/** Newline character (e.g., '\n' or '\r\n') */
|
|
27
|
-
newline?: NewlineOption;
|
|
28
|
-
/** Comma break style: 'none', 'before', or 'after' */
|
|
29
|
-
commaBreak?: CommaBreakStyle;
|
|
30
|
-
/** AND break style: 'none', 'before', or 'after' */
|
|
31
|
-
andBreak?: AndBreakStyle;
|
|
32
|
-
/** Keyword case style: 'none', 'upper' | 'lower' */
|
|
33
|
-
keywordCase?: 'none' | 'upper' | 'lower';
|
|
34
|
-
/** Whether to export comments in the output (default: false for compatibility) */
|
|
35
|
-
exportComment?: boolean;
|
|
36
|
-
/** Whether to use strict comment placement (only clause-level comments, default: false) */
|
|
37
|
-
strictCommentPlacement?: boolean;
|
|
21
|
+
export interface SqlPrinterOptions extends BaseFormattingOptions {
|
|
38
22
|
/** Container types that should increase indentation level */
|
|
39
23
|
indentIncrementContainerTypes?: SqlPrintTokenContainerType[];
|
|
40
|
-
/** WITH clause formatting style (default: 'standard') */
|
|
41
|
-
withClauseStyle?: WithClauseStyle;
|
|
42
24
|
}
|
|
43
25
|
/**
|
|
44
26
|
* SqlPrinter formats a SqlPrintToken tree into a SQL string with flexible style options.
|
|
@@ -69,6 +51,8 @@ export declare class SqlPrinter {
|
|
|
69
51
|
newline: NewlineOption;
|
|
70
52
|
/** Comma break style: 'none', 'before', or 'after' */
|
|
71
53
|
commaBreak: CommaBreakStyle;
|
|
54
|
+
/** WITH clause comma break style (defaults to commaBreak) */
|
|
55
|
+
cteCommaBreak: CommaBreakStyle;
|
|
72
56
|
/** AND break style: 'none', 'before', or 'after' */
|
|
73
57
|
andBreak: AndBreakStyle;
|
|
74
58
|
/** Keyword case style: 'none', 'upper' | 'lower' */
|
|
@@ -79,10 +63,24 @@ export declare class SqlPrinter {
|
|
|
79
63
|
strictCommentPlacement: boolean;
|
|
80
64
|
/** WITH clause formatting style (default: 'standard') */
|
|
81
65
|
withClauseStyle: WithClauseStyle;
|
|
66
|
+
/** Comment formatting style (default: 'block') */
|
|
67
|
+
commentStyle: CommentStyle;
|
|
82
68
|
private linePrinter;
|
|
83
69
|
private indentIncrementContainers;
|
|
84
70
|
/** Track whether we are currently inside a WITH clause for full-oneline formatting */
|
|
85
71
|
private insideWithClause;
|
|
72
|
+
/** Whether to keep parentheses content on one line */
|
|
73
|
+
private parenthesesOneLine;
|
|
74
|
+
/** Whether to keep BETWEEN expressions on one line */
|
|
75
|
+
private betweenOneLine;
|
|
76
|
+
/** Whether to keep VALUES clause on one line */
|
|
77
|
+
private valuesOneLine;
|
|
78
|
+
/** Whether to keep JOIN conditions on one line */
|
|
79
|
+
private joinOneLine;
|
|
80
|
+
/** Whether to keep CASE expressions on one line */
|
|
81
|
+
private caseOneLine;
|
|
82
|
+
/** Whether to keep subqueries on one line */
|
|
83
|
+
private subqueryOneLine;
|
|
86
84
|
/**
|
|
87
85
|
* @param options Optional style settings for pretty printing
|
|
88
86
|
*/
|
|
@@ -98,6 +96,7 @@ export declare class SqlPrinter {
|
|
|
98
96
|
*/
|
|
99
97
|
print(token: SqlPrintToken, level?: number): string;
|
|
100
98
|
private appendToken;
|
|
99
|
+
private isCaseContext;
|
|
101
100
|
/**
|
|
102
101
|
* Determines if a token should be skipped during printing.
|
|
103
102
|
* Tokens are skipped if they have no content and no inner tokens,
|
|
@@ -145,6 +144,17 @@ export declare class SqlPrinter {
|
|
|
145
144
|
* Creates a SqlPrinter instance configured for CTE oneline formatting.
|
|
146
145
|
*/
|
|
147
146
|
private createCteOnelinePrinter;
|
|
147
|
+
/**
|
|
148
|
+
* Handles tokens with oneline formatting (parentheses, BETWEEN, VALUES, JOIN, CASE, subqueries).
|
|
149
|
+
* Creates a unified oneline printer that formats everything as one line regardless of content type.
|
|
150
|
+
*/
|
|
151
|
+
private handleOnelineToken;
|
|
152
|
+
/**
|
|
153
|
+
* Creates a unified SqlPrinter instance configured for oneline formatting.
|
|
154
|
+
* Works for all oneline options: parentheses, BETWEEN, VALUES, JOIN, CASE, subqueries.
|
|
155
|
+
* Sets all oneline options to false to prevent recursion and uses newline=' ' for actual oneline effect.
|
|
156
|
+
*/
|
|
157
|
+
private createOnelinePrinter;
|
|
148
158
|
/**
|
|
149
159
|
* Removes duplicate consecutive spaces while preserving single spaces.
|
|
150
160
|
* Simple and safe space normalization for CTE oneline mode.
|