@memberjunction/generic-database-provider 5.28.0 → 5.30.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.
@@ -1 +1 @@
1
- {"version":3,"file":"queryCompositionEngine.js","sourceRoot":"","sources":["../src/queryCompositionEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryCompositionEngine.js","sourceRoot":"","sources":["../src/queryCompositionEngine.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { DatabasePlatform } from '@memberjunction/core';
2
+ import { type SQLDialect } from '@memberjunction/sql-dialect';
2
3
  /**
3
4
  * Result of wrapping SQL with paging directives.
4
5
  */
@@ -44,15 +45,6 @@ export declare class QueryPagingEngine {
44
45
  * Determines whether the given params indicate paging should be applied.
45
46
  */
46
47
  static ShouldPage(startRow: number | undefined, maxRows: number | undefined): boolean;
47
- /**
48
- * Builds the paged data SQL by appending OFFSET/FETCH or LIMIT/OFFSET
49
- * directly to the original SQL.
50
- *
51
- * - Strips TOP on SQL Server (TOP and OFFSET are mutually exclusive)
52
- * - Ensures ORDER BY exists (SQL Server requires it for OFFSET/FETCH;
53
- * PostgreSQL requires it for deterministic LIMIT/OFFSET)
54
- * - Appends the platform-specific paging clause
55
- */
56
48
  private static buildDataSQL;
57
49
  /**
58
50
  * Strips a TOP clause from the outermost SELECT statement.
@@ -60,60 +52,19 @@ export declare class QueryPagingEngine {
60
52
  * Does not affect TOP in subqueries or CTEs.
61
53
  */
62
54
  private static stripTopFromMainSelect;
63
- /**
64
- * Builds the count SQL by wrapping the original query (minus ORDER BY)
65
- * in a CTE and selecting COUNT(*).
66
- *
67
- * Uses a two-tier approach:
68
- * 1. **AST path** — parse SQL, strip ORDER BY via AST, reconstruct
69
- * 2. **Regex fallback** — use SQLParser.ExtractCTEs + regex ORDER BY removal
70
- */
71
55
  private static buildCountSQL;
72
- /**
73
- * AST-based count SQL: parse entire SQL, extract CTEs, strip ORDER BY and
74
- * TOP from the main SELECT, then assemble all CTEs + __count as siblings
75
- * in a flat WITH chain.
76
- */
77
56
  private static buildCountSQLViaAST;
78
- /**
79
- * Extracts CTE definitions from an AST statement, producing quoted
80
- * `[name] AS (...)` strings for each CTE.
81
- */
82
57
  private static extractCTEsFromAST;
83
- /**
84
- * Regex-based count SQL: use SQLParser.ExtractCTEs for robust CTE splitting,
85
- * then regex to strip ORDER BY from the main SELECT, wrap in count CTE.
86
- */
87
58
  private static buildCountSQLViaRegex;
88
- /**
89
- * Wraps cleaned SQL (no ORDER BY) in a CTE for counting.
90
- */
91
- private static assembleCountSQL;
92
59
  private static findOrderByStatement;
93
- /**
94
- * Checks if the SQL has a top-level ORDER BY clause (not inside subqueries,
95
- * CTEs, window functions, comments, or string/identifier literals).
96
- *
97
- * Tier 1: AST-based detection via SQLParser — correctly ignores comments,
98
- * window-function ORDER BYs, and CTE-internal ORDER BYs.
99
- *
100
- * Tier 2: Regex fallback (paren-depth scan) — used only if parsing fails.
101
- * The fallback can false-positive on `ORDER BY` text inside SQL comments
102
- * or string literals, but is acceptable as a last resort.
103
- */
104
- private static hasTopLevelOrderBy;
105
- /**
106
- * AST-based top-level ORDER BY detection.
107
- * Returns true/false on successful parse, or null if parsing fails (caller
108
- * should fall back to the regex scan).
109
- */
110
- private static hasTopLevelOrderByViaAST;
111
60
  /**
112
61
  * Extracts the top-level ORDER BY clause from SQL, ignoring ORDER BY
113
- * inside subqueries (paren depth), block comments, line comments,
114
- * single-quoted strings, and bracket/double-quoted identifiers.
62
+ * inside subqueries, block comments, line comments, single-quoted strings,
63
+ * and bracket/double-quoted identifiers.
64
+ *
65
+ * Preserves the public static API for existing callers and tests.
115
66
  */
116
- static extractOrderBy(sql: string): {
67
+ static extractOrderBy(sql: string, dialect?: SQLDialect | string): {
117
68
  sqlWithoutOrder: string;
118
69
  orderByClause: string | null;
119
70
  };
@@ -126,11 +77,9 @@ export declare class QueryPagingEngine {
126
77
  };
127
78
  /**
128
79
  * ExtractCTEs returns CTE definitions with unquoted names (e.g. `myName AS (...)`).
129
- * We need to apply platform-specific identifier quoting to the CTE name.
80
+ * Apply dialect-specific identifier quoting to the CTE name.
130
81
  */
131
82
  private static quoteCteName;
132
- private static quoteIdentifier;
133
- private static buildPagingClause;
134
- private static defaultOrderBy;
83
+ private static getDialect;
135
84
  }
136
85
  //# sourceMappingURL=queryPagingEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryPagingEngine.d.ts","sourceRoot":"","sources":["../src/queryPagingEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAiB;IAE1B;;;;;;;;OAQG;IACH,MAAM,CAAC,cAAc,CACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,gBAAgB,GAC3B,gBAAgB;IAUnB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAQrF;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IA0B3B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IA0BrC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAS5B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAoClC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAcjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAoBpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAS/B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAUnC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAQjC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAiBvC;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IA0E7F;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE;IAOxE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAe3B,OAAO,CAAC,MAAM,CAAC,eAAe;IAI9B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC,OAAO,CAAC,MAAM,CAAC,cAAc;CAGhC"}
1
+ {"version":3,"file":"queryPagingEngine.d.ts","sourceRoot":"","sources":["../src/queryPagingEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAiB;IAE1B;;;;;;;;OAQG;IACH,MAAM,CAAC,cAAc,CACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,gBAAgB,GAC3B,gBAAgB;IAUnB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAQrF,OAAO,CAAC,MAAM,CAAC,YAAY;IAyB3B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAoBrC,OAAO,CAAC,MAAM,CAAC,aAAa;IAO5B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA8BlC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAajC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAsBpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAQnC;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,UAAU,GAAG,MAA+B,GACtD;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAW5D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE;IAOxE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAe3B,OAAO,CAAC,MAAM,CAAC,UAAU;CAG5B"}
@@ -1,4 +1,5 @@
1
- import { SQLParser } from '@memberjunction/sql-parser';
1
+ import { SQLParser, AnalyzeTopLevelOrderBy, findOrderByStatement as sharedFindOrderByStatement } from '@memberjunction/sql-parser';
2
+ import { GetDialect, SQLServerDialect } from '@memberjunction/sql-dialect';
2
3
  /**
3
4
  * Handles server-side pagination for query SQL by applying platform-specific
4
5
  * paging clauses.
@@ -27,10 +28,10 @@ export class QueryPagingEngine {
27
28
  * @returns DataSQL for paged results and CountSQL for total row count
28
29
  */
29
30
  static WrapWithPaging(resolvedSQL, startRow, maxRows, platform) {
30
- // Strip trailing semicolons — they break OFFSET/FETCH and CTE wrapping
31
31
  const cleanedSQL = resolvedSQL.trimEnd().replace(/;\s*$/, '');
32
- const dataSQL = QueryPagingEngine.buildDataSQL(cleanedSQL, startRow, maxRows, platform);
33
- const countSQL = QueryPagingEngine.buildCountSQL(cleanedSQL, platform);
32
+ const dialect = QueryPagingEngine.getDialect(platform);
33
+ const dataSQL = QueryPagingEngine.buildDataSQL(cleanedSQL, startRow, maxRows, dialect);
34
+ const countSQL = QueryPagingEngine.buildCountSQL(cleanedSQL, dialect);
34
35
  return { DataSQL: dataSQL, CountSQL: countSQL, Offset: startRow, PageSize: maxRows };
35
36
  }
36
37
  /**
@@ -42,104 +43,67 @@ export class QueryPagingEngine {
42
43
  // ════════════════════════════════════════════════════════════════════
43
44
  // Data SQL — append paging clause directly to original SQL
44
45
  // ════════════════════════════════════════════════════════════════════
45
- /**
46
- * Builds the paged data SQL by appending OFFSET/FETCH or LIMIT/OFFSET
47
- * directly to the original SQL.
48
- *
49
- * - Strips TOP on SQL Server (TOP and OFFSET are mutually exclusive)
50
- * - Ensures ORDER BY exists (SQL Server requires it for OFFSET/FETCH;
51
- * PostgreSQL requires it for deterministic LIMIT/OFFSET)
52
- * - Appends the platform-specific paging clause
53
- */
54
- static buildDataSQL(sql, startRow, maxRows, platform) {
46
+ static buildDataSQL(sql, startRow, maxRows, dialect) {
55
47
  let dataSQL = sql;
56
48
  // Strip TOP clause on SQL Server — it conflicts with OFFSET/FETCH.
57
- // Must operate on the main SELECT, not on subqueries or CTEs.
58
- if (platform === 'sqlserver') {
59
- dataSQL = QueryPagingEngine.stripTopFromMainSelect(dataSQL);
49
+ if (dialect.PlatformKey === 'sqlserver') {
50
+ dataSQL = QueryPagingEngine.stripTopFromMainSelect(dataSQL, dialect);
60
51
  }
61
52
  // Ensure there's an ORDER BY — required for OFFSET/FETCH on SQL Server,
62
53
  // and strongly recommended for deterministic LIMIT/OFFSET on PostgreSQL.
63
- if (!QueryPagingEngine.hasTopLevelOrderBy(dataSQL, platform)) {
64
- const defaultOrder = QueryPagingEngine.defaultOrderBy(platform);
65
- dataSQL = `${dataSQL}\nORDER BY ${defaultOrder}`;
54
+ const hasOrderBy = AnalyzeTopLevelOrderBy(dataSQL, dialect).Positions.length > 0;
55
+ if (!hasOrderBy) {
56
+ dataSQL = `${dataSQL}\nORDER BY ${dialect.DefaultPagingOrderBy}`;
66
57
  }
67
- // Append paging clause
68
- const pagingClause = QueryPagingEngine.buildPagingClause(startRow, maxRows, platform);
69
- return `${dataSQL}\n${pagingClause}`;
58
+ // Append paging clause via dialect
59
+ const limitResult = dialect.LimitClause(maxRows, startRow);
60
+ return `${dataSQL}\n${limitResult.suffix}`;
70
61
  }
71
62
  /**
72
63
  * Strips a TOP clause from the outermost SELECT statement.
73
64
  * Handles `TOP N` and `TOP (N)`, with or without DISTINCT.
74
65
  * Does not affect TOP in subqueries or CTEs.
75
66
  */
76
- static stripTopFromMainSelect(sql) {
77
- // Find the main SELECT — it's either the first token, or follows the
78
- // last CTE closing paren. Use ExtractCTEs to find the main statement.
79
- const parserDialect = 'TransactSQL';
80
- const extraction = SQLParser.ExtractCTEs(sql, parserDialect);
67
+ static stripTopFromMainSelect(sql, dialect) {
68
+ const extraction = SQLParser.ExtractCTEs(sql, dialect);
81
69
  if (extraction) {
82
- // SQL has CTEs — strip TOP only from the main statement
83
70
  const { sql: cleanMain, topRemoved } = QueryPagingEngine.stripTopClause(extraction.MainStatement);
84
71
  if (topRemoved) {
85
- // Reassemble: WITH ... <CTEs> ... <cleanMain>
86
72
  const ctePrefix = sql.substring(0, sql.length - extraction.MainStatement.length).trimEnd();
87
73
  return `${ctePrefix}\n${cleanMain}`;
88
74
  }
89
75
  return sql;
90
76
  }
91
- // No CTEs — strip TOP from the SQL directly
92
77
  const { sql: cleanSQL } = QueryPagingEngine.stripTopClause(sql);
93
78
  return cleanSQL;
94
79
  }
95
80
  // ════════════════════════════════════════════════════════════════════
96
81
  // Count SQL — wrap in CTE, strip ORDER BY, SELECT COUNT(*)
97
82
  // ════════════════════════════════════════════════════════════════════
98
- /**
99
- * Builds the count SQL by wrapping the original query (minus ORDER BY)
100
- * in a CTE and selecting COUNT(*).
101
- *
102
- * Uses a two-tier approach:
103
- * 1. **AST path** — parse SQL, strip ORDER BY via AST, reconstruct
104
- * 2. **Regex fallback** — use SQLParser.ExtractCTEs + regex ORDER BY removal
105
- */
106
- static buildCountSQL(sql, platform) {
107
- // Tier 1: Try full AST — cleanest approach
108
- const astResult = QueryPagingEngine.buildCountSQLViaAST(sql, platform);
83
+ static buildCountSQL(sql, dialect) {
84
+ const astResult = QueryPagingEngine.buildCountSQLViaAST(sql, dialect);
109
85
  if (astResult)
110
86
  return astResult;
111
- // Tier 2: Hybrid — SQLParser.ExtractCTEs + regex ORDER BY stripping
112
- return QueryPagingEngine.buildCountSQLViaRegex(sql, platform);
87
+ return QueryPagingEngine.buildCountSQLViaRegex(sql, dialect);
113
88
  }
114
- /**
115
- * AST-based count SQL: parse entire SQL, extract CTEs, strip ORDER BY and
116
- * TOP from the main SELECT, then assemble all CTEs + __count as siblings
117
- * in a flat WITH chain.
118
- */
119
- static buildCountSQLViaAST(sql, platform) {
120
- const parserDialect = platform === 'postgresql' ? 'PostgresQL' : 'TransactSQL';
89
+ static buildCountSQLViaAST(sql, dialect) {
121
90
  try {
122
- const ast = SQLParser.ParseSQL(sql, parserDialect);
91
+ const ast = SQLParser.ParseSQL(sql, dialect);
123
92
  if (!ast)
124
93
  return null;
125
94
  const stmt = (Array.isArray(ast) ? ast[0] : ast);
126
95
  if (!stmt)
127
96
  return null;
128
- // Extract existing CTEs as sibling definitions
129
- const existingCTEDefs = QueryPagingEngine.extractCTEsFromAST(stmt, parserDialect, platform);
130
- // Strip ORDER BY (not needed for counting, illegal in CTEs without TOP)
97
+ const existingCTEDefs = QueryPagingEngine.extractCTEsFromAST(stmt, dialect);
131
98
  const orderByStmt = QueryPagingEngine.findOrderByStatement(stmt);
132
99
  if (orderByStmt?.orderby) {
133
100
  orderByStmt.orderby = null;
134
101
  }
135
- // Strip TOP — we want the full count
136
102
  if (stmt.top)
137
103
  stmt.top = null;
138
- // Reconstruct only the main SELECT (without CTEs)
139
104
  stmt.with = null;
140
- const mainSelectSQL = SQLParser.SqlifyAST(stmt, parserDialect);
141
- // Assemble: all existing CTEs + __count as siblings in a single WITH
142
- const countCTEName = QueryPagingEngine.quoteIdentifier('__count', platform);
105
+ const mainSelectSQL = SQLParser.SqlifyAST(stmt, dialect);
106
+ const countCTEName = dialect.QuoteIdentifier('__count');
143
107
  const allCTEs = [...existingCTEDefs, `${countCTEName} AS (\n${mainSelectSQL}\n)`];
144
108
  return `WITH ${allCTEs.join(',\n')}\nSELECT COUNT(*) AS TotalRowCount FROM ${countCTEName}`;
145
109
  }
@@ -147,188 +111,52 @@ export class QueryPagingEngine {
147
111
  return null;
148
112
  }
149
113
  }
150
- /**
151
- * Extracts CTE definitions from an AST statement, producing quoted
152
- * `[name] AS (...)` strings for each CTE.
153
- */
154
- static extractCTEsFromAST(stmt, parserDialect, platform) {
114
+ static extractCTEsFromAST(stmt, dialect) {
155
115
  const ctes = stmt.with || [];
156
116
  return ctes.map(cte => {
157
117
  const cteRecord = cte;
158
- const quotedName = QueryPagingEngine.quoteIdentifier(cteRecord.name.value, platform);
159
- const bodySQL = SQLParser.SqlifyAST(cteRecord.stmt.ast, parserDialect);
118
+ const quotedName = dialect.QuoteIdentifier(cteRecord.name.value);
119
+ const bodySQL = SQLParser.SqlifyAST(cteRecord.stmt.ast, dialect);
160
120
  return `${quotedName} AS (\n${bodySQL}\n)`;
161
121
  });
162
122
  }
163
- /**
164
- * Regex-based count SQL: use SQLParser.ExtractCTEs for robust CTE splitting,
165
- * then regex to strip ORDER BY from the main SELECT, wrap in count CTE.
166
- */
167
- static buildCountSQLViaRegex(sql, platform) {
168
- const parserDialect = platform === 'postgresql' ? 'PostgresQL' : 'TransactSQL';
169
- const extraction = SQLParser.ExtractCTEs(sql, parserDialect);
123
+ static buildCountSQLViaRegex(sql, dialect) {
124
+ const extraction = SQLParser.ExtractCTEs(sql, dialect);
170
125
  if (extraction) {
171
- // Strip ORDER BY from the main SELECT only
172
- const { sqlWithoutOrder } = QueryPagingEngine.extractOrderBy(extraction.MainStatement);
173
- const quotedCTEDefs = extraction.CTEDefinitions.map(def => QueryPagingEngine.quoteCteName(def, platform));
174
- const countCTEName = QueryPagingEngine.quoteIdentifier('__count', platform);
126
+ const { sqlWithoutOrder } = QueryPagingEngine.extractOrderBy(extraction.MainStatement, dialect);
127
+ const quotedCTEDefs = extraction.CTEDefinitions.map(def => QueryPagingEngine.quoteCteName(def, dialect));
128
+ const countCTEName = dialect.QuoteIdentifier('__count');
175
129
  const allCTEs = [...quotedCTEDefs, `${countCTEName} AS (\n${sqlWithoutOrder}\n)`];
176
130
  return `WITH ${allCTEs.join(',\n')}\nSELECT COUNT(*) AS TotalRowCount FROM ${countCTEName}`;
177
131
  }
178
- // No CTEs — strip ORDER BY and wrap the whole SQL
179
- const { sqlWithoutOrder } = QueryPagingEngine.extractOrderBy(sql);
180
- return QueryPagingEngine.assembleCountSQL(sqlWithoutOrder, platform);
181
- }
182
- /**
183
- * Wraps cleaned SQL (no ORDER BY) in a CTE for counting.
184
- */
185
- static assembleCountSQL(cleanSQL, platform) {
186
- const countCTEName = QueryPagingEngine.quoteIdentifier('__count', platform);
187
- return `WITH ${countCTEName} AS (\n${cleanSQL}\n)\nSELECT COUNT(*) AS TotalRowCount FROM ${countCTEName}`;
132
+ const { sqlWithoutOrder } = QueryPagingEngine.extractOrderBy(sql, dialect);
133
+ const countCTEName = dialect.QuoteIdentifier('__count');
134
+ return `WITH ${countCTEName} AS (\n${sqlWithoutOrder}\n)\nSELECT COUNT(*) AS TotalRowCount FROM ${countCTEName}`;
188
135
  }
189
136
  // ════════════════════════════════════════════════════════════════════
190
- // AST helpers
137
+ // AST helpers — delegate to shared orderByAnalyzer
191
138
  // ════════════════════════════════════════════════════════════════════
192
139
  static findOrderByStatement(stmt) {
193
- if (stmt.orderby)
194
- return stmt;
195
- if (stmt._next)
196
- return QueryPagingEngine.findOrderByStatement(stmt._next);
197
- return null;
140
+ return sharedFindOrderByStatement(stmt);
198
141
  }
199
142
  // ════════════════════════════════════════════════════════════════════
200
- // SQL analysis helpers
143
+ // SQL analysis helpers — delegate to shared orderByAnalyzer
201
144
  // ════════════════════════════════════════════════════════════════════
202
- /**
203
- * Checks if the SQL has a top-level ORDER BY clause (not inside subqueries,
204
- * CTEs, window functions, comments, or string/identifier literals).
205
- *
206
- * Tier 1: AST-based detection via SQLParser — correctly ignores comments,
207
- * window-function ORDER BYs, and CTE-internal ORDER BYs.
208
- *
209
- * Tier 2: Regex fallback (paren-depth scan) — used only if parsing fails.
210
- * The fallback can false-positive on `ORDER BY` text inside SQL comments
211
- * or string literals, but is acceptable as a last resort.
212
- */
213
- static hasTopLevelOrderBy(sql, platform) {
214
- const astResult = QueryPagingEngine.hasTopLevelOrderByViaAST(sql, platform);
215
- if (astResult !== null) {
216
- return astResult;
217
- }
218
- return QueryPagingEngine.extractOrderBy(sql).orderByClause !== null;
219
- }
220
- /**
221
- * AST-based top-level ORDER BY detection.
222
- * Returns true/false on successful parse, or null if parsing fails (caller
223
- * should fall back to the regex scan).
224
- */
225
- static hasTopLevelOrderByViaAST(sql, platform) {
226
- const parserDialect = platform === 'postgresql' ? 'PostgresQL' : 'TransactSQL';
227
- try {
228
- const ast = SQLParser.ParseSQL(sql, parserDialect);
229
- if (!ast)
230
- return null;
231
- const stmt = (Array.isArray(ast) ? ast[0] : ast);
232
- if (!stmt)
233
- return null;
234
- // Walk UNION/INTERSECT/EXCEPT chains via _next; ORDER BY can live on
235
- // any segment but is logically top-level.
236
- return QueryPagingEngine.findOrderByStatement(stmt) !== null;
237
- }
238
- catch {
239
- return null;
240
- }
241
- }
242
145
  /**
243
146
  * Extracts the top-level ORDER BY clause from SQL, ignoring ORDER BY
244
- * inside subqueries (paren depth), block comments, line comments,
245
- * single-quoted strings, and bracket/double-quoted identifiers.
147
+ * inside subqueries, block comments, line comments, single-quoted strings,
148
+ * and bracket/double-quoted identifiers.
149
+ *
150
+ * Preserves the public static API for existing callers and tests.
246
151
  */
247
- static extractOrderBy(sql) {
248
- const upperSQL = sql.toUpperCase();
249
- const len = sql.length;
250
- let depth = 0;
251
- let lastOrderByPos = -1;
252
- let i = 0;
253
- while (i < len) {
254
- const ch = sql[i];
255
- // Block comment
256
- if (ch === '/' && i + 1 < len && sql[i + 1] === '*') {
257
- i += 2;
258
- while (i < len - 1 && !(sql[i] === '*' && sql[i + 1] === '/'))
259
- i++;
260
- if (i < len - 1)
261
- i += 2;
262
- else
263
- i = len;
264
- continue;
265
- }
266
- // Line comment
267
- if (ch === '-' && i + 1 < len && sql[i + 1] === '-') {
268
- i += 2;
269
- while (i < len && sql[i] !== '\n')
270
- i++;
271
- continue;
272
- }
273
- // Single-quoted string
274
- if (ch === "'") {
275
- i++;
276
- while (i < len) {
277
- if (sql[i] === "'") {
278
- if (i + 1 < len && sql[i + 1] === "'") {
279
- i += 2;
280
- continue;
281
- }
282
- i++;
283
- break;
284
- }
285
- i++;
286
- }
287
- continue;
288
- }
289
- // Bracket-quoted identifier
290
- if (ch === '[') {
291
- i++;
292
- while (i < len && sql[i] !== ']')
293
- i++;
294
- if (i < len)
295
- i++;
296
- continue;
297
- }
298
- // Double-quoted identifier
299
- if (ch === '"') {
300
- i++;
301
- while (i < len && sql[i] !== '"')
302
- i++;
303
- if (i < len)
304
- i++;
305
- continue;
306
- }
307
- if (ch === '(') {
308
- depth++;
309
- i++;
310
- continue;
311
- }
312
- if (ch === ')') {
313
- depth--;
314
- i++;
315
- continue;
316
- }
317
- if (depth === 0 && i + 8 <= len && upperSQL.substring(i, i + 8) === 'ORDER BY') {
318
- if (i === 0 || /\s/.test(sql[i - 1])) {
319
- lastOrderByPos = i;
320
- }
321
- i += 8;
322
- continue;
323
- }
324
- i++;
325
- }
326
- if (lastOrderByPos === -1) {
327
- return { sqlWithoutOrder: sql, orderByClause: null };
328
- }
152
+ static extractOrderBy(sql, dialect = new SQLServerDialect()) {
153
+ const resolvedDialect = typeof dialect === 'string'
154
+ ? QueryPagingEngine.getDialect(dialect)
155
+ : dialect;
156
+ const analysis = AnalyzeTopLevelOrderBy(sql, resolvedDialect);
329
157
  return {
330
- orderByClause: sql.substring(lastOrderByPos + 9).trim(),
331
- sqlWithoutOrder: sql.substring(0, lastOrderByPos).trim(),
158
+ sqlWithoutOrder: analysis.SqlWithoutOrderBy,
159
+ orderByClause: analysis.OrderByClause,
332
160
  };
333
161
  }
334
162
  /**
@@ -343,31 +171,23 @@ export class QueryPagingEngine {
343
171
  }
344
172
  /**
345
173
  * ExtractCTEs returns CTE definitions with unquoted names (e.g. `myName AS (...)`).
346
- * We need to apply platform-specific identifier quoting to the CTE name.
174
+ * Apply dialect-specific identifier quoting to the CTE name.
347
175
  */
348
- static quoteCteName(cteDefinition, platform) {
176
+ static quoteCteName(cteDefinition, dialect) {
349
177
  const match = cteDefinition.match(/^(\[([^\]]+)\]|"([^"]+)"|([A-Za-z_]\w*))\s+AS\s*\(/i);
350
178
  if (!match)
351
179
  return cteDefinition;
352
180
  const bareName = match[2] ?? match[3] ?? match[4];
353
181
  if (!bareName)
354
182
  return cteDefinition;
355
- const quotedName = QueryPagingEngine.quoteIdentifier(bareName, platform);
183
+ const quotedName = dialect.QuoteIdentifier(bareName);
356
184
  return quotedName + cteDefinition.substring(match[1].length);
357
185
  }
358
186
  // ════════════════════════════════════════════════════════════════════
359
- // Platform helpers
187
+ // Dialect resolution
360
188
  // ════════════════════════════════════════════════════════════════════
361
- static quoteIdentifier(name, platform) {
362
- return platform === 'postgresql' ? `"${name}"` : `[${name}]`;
363
- }
364
- static buildPagingClause(startRow, maxRows, platform) {
365
- return platform === 'postgresql'
366
- ? `LIMIT ${maxRows} OFFSET ${startRow}`
367
- : `OFFSET ${startRow} ROWS FETCH NEXT ${maxRows} ROWS ONLY`;
368
- }
369
- static defaultOrderBy(platform) {
370
- return platform === 'postgresql' ? '1' : '(SELECT NULL)';
189
+ static getDialect(platform) {
190
+ return GetDialect(platform);
371
191
  }
372
192
  }
373
193
  //# sourceMappingURL=queryPagingEngine.js.map