@memberjunction/generic-database-provider 5.13.0 → 5.15.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/dist/GenericDatabaseProvider.d.ts +42 -6
- package/dist/GenericDatabaseProvider.d.ts.map +1 -1
- package/dist/GenericDatabaseProvider.js +151 -18
- package/dist/GenericDatabaseProvider.js.map +1 -1
- package/dist/SqlLogger.d.ts +11 -0
- package/dist/SqlLogger.d.ts.map +1 -1
- package/dist/SqlLogger.js +38 -2
- package/dist/SqlLogger.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/queryCompositionEngine.d.ts +278 -0
- package/dist/queryCompositionEngine.d.ts.map +1 -0
- package/dist/queryCompositionEngine.js +820 -0
- package/dist/queryCompositionEngine.js.map +1 -0
- package/dist/queryPagingEngine.d.ts +87 -0
- package/dist/queryPagingEngine.d.ts.map +1 -0
- package/dist/queryPagingEngine.js +399 -0
- package/dist/queryPagingEngine.js.map +1 -0
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -10
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @module @memberjunction/generic-database-provider
|
|
17
17
|
*/
|
|
18
|
-
import { BaseEntity, DatabaseProviderBase, EntityInfo, EntityFieldInfo, EntitySaveOptions, EntityDeleteOptions, EntityPermissionType, ILocalStorageProvider, RunViewParams, RunViewResult, RunViewWithCacheCheckParams, RunViewsWithCacheCheckResponse, RunViewWithCacheCheckResult, RunQueryParams, RunQueryResult, RunQueryWithCacheCheckParams, RunQueriesWithCacheCheckResponse, RunQueryWithCacheCheckResult, QueryInfo, CompositeKey, DatasetItemFilterType, DatasetResultType, DatasetStatusResultType, IMetadataProvider, UserInfo } from '@memberjunction/core';
|
|
18
|
+
import { BaseEntity, DatabaseProviderBase, EntityInfo, EntityFieldInfo, EntitySaveOptions, EntityDeleteOptions, EntityPermissionType, ILocalStorageProvider, RunViewParams, RunViewResult, RunViewWithCacheCheckParams, RunViewsWithCacheCheckResponse, RunViewWithCacheCheckResult, RunQueryParams, RunQueryResult, RunQueryWithCacheCheckParams, RunQueriesWithCacheCheckResponse, RunQueryWithCacheCheckResult, QueryInfo, CompositeKey, DatasetItemFilterType, DatasetResultType, DatasetStatusResultType, IMetadataProvider, UserInfo, QueryExecutionSpec } from '@memberjunction/core';
|
|
19
19
|
import { SqlLoggingOptions, SqlLoggingSession } from './types.js';
|
|
20
|
+
import { SQLDialect } from '@memberjunction/sql-dialect';
|
|
20
21
|
import { MJEntityAIActionEntity, MJQueryEntity, MJUserViewEntityExtended } from '@memberjunction/core-entities';
|
|
21
22
|
import { EntityAIActionParams } from '@memberjunction/aiengine';
|
|
22
23
|
import { ActionResult } from '@memberjunction/actions-base';
|
|
@@ -40,6 +41,7 @@ export interface ExecuteSQLBatchOptions {
|
|
|
40
41
|
* to inherit these shared behaviors.
|
|
41
42
|
*/
|
|
42
43
|
export declare abstract class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
44
|
+
private _compositionEngine;
|
|
43
45
|
/**************************************************************************/
|
|
44
46
|
/**************************************************************************/
|
|
45
47
|
/**
|
|
@@ -255,6 +257,20 @@ export declare abstract class GenericDatabaseProvider extends DatabaseProviderBa
|
|
|
255
257
|
/**************************************************************************/
|
|
256
258
|
/**************************************************************************/
|
|
257
259
|
/**************************************************************************/
|
|
260
|
+
/**
|
|
261
|
+
* Returns the SQLDialect instance for this provider's platform.
|
|
262
|
+
* Subclasses override to return the appropriate dialect (e.g. SQLServerDialect, PostgreSQLDialect).
|
|
263
|
+
* Used by `PlatformBatchSeparator` to retrieve the correct batch separator token via
|
|
264
|
+
* `@memberjunction/sql-dialect` rather than hardcoding platform strings.
|
|
265
|
+
*/
|
|
266
|
+
protected getDialect(): SQLDialect | null;
|
|
267
|
+
/**
|
|
268
|
+
* Returns the batch separator token for the underlying database platform by delegating to
|
|
269
|
+
* the SQLDialect instance returned by `getDialect()`.
|
|
270
|
+
* SQL Server → `'GO'`, PostgreSQL → `''` (no separator needed).
|
|
271
|
+
* Auto-injected as the default `batchSeparator` in `CreateSqlLogger`.
|
|
272
|
+
*/
|
|
273
|
+
protected get PlatformBatchSeparator(): string;
|
|
258
274
|
/**
|
|
259
275
|
* Builds a platform-specific pagination clause.
|
|
260
276
|
* SQL Server: `OFFSET X ROWS FETCH NEXT Y ROWS ONLY`
|
|
@@ -464,11 +480,7 @@ export declare abstract class GenericDatabaseProvider extends DatabaseProviderBa
|
|
|
464
480
|
protected runFullQueryAndReturnForQuery<T = unknown>(params: RunQueryParams, queryIndex: number, status: 'stale' | 'no_validation', contextUser?: UserInfo, queryId?: string): Promise<RunQueryWithCacheCheckResult<T>>;
|
|
465
481
|
/**************************************************************************/
|
|
466
482
|
/**************************************************************************/
|
|
467
|
-
|
|
468
|
-
* Query cache manager wrapping LocalCacheManager for query result caching.
|
|
469
|
-
* Per-instance because it needs the connection string for fingerprinting.
|
|
470
|
-
*/
|
|
471
|
-
private _queryCacheManager;
|
|
483
|
+
private _queryCacheInitialized;
|
|
472
484
|
private get QueryCacheMgr();
|
|
473
485
|
/**
|
|
474
486
|
* Full query execution pipeline: resolve → validate → compose → template → cache check →
|
|
@@ -498,6 +510,30 @@ export declare abstract class GenericDatabaseProvider extends DatabaseProviderBa
|
|
|
498
510
|
finalSQL: string;
|
|
499
511
|
appliedParameters: Record<string, string>;
|
|
500
512
|
};
|
|
513
|
+
/**
|
|
514
|
+
* Lower-layer execution: resolves composition, processes templates, executes SQL.
|
|
515
|
+
* This is the single execution pathway used by both saved queries (via RunQuery upper layer)
|
|
516
|
+
* and transient test queries (via TestQuerySQL resolver).
|
|
517
|
+
*
|
|
518
|
+
* Processing order:
|
|
519
|
+
* 1. Resolve {{query:"..."}} composition tokens → CTEs (inline deps checked first, then Metadata)
|
|
520
|
+
* 2. Process {{ param }} Nunjucks templates (if UsesTemplate or any dependency uses templates)
|
|
521
|
+
* 3. Apply MaxRows safety limit (wrap with TOP/LIMIT if specified)
|
|
522
|
+
* 4. Execute the fully resolved SQL
|
|
523
|
+
* 5. Return results with execution metadata
|
|
524
|
+
*/
|
|
525
|
+
protected InternalExecuteQueryFromSpec(spec: QueryExecutionSpec, contextUser?: UserInfo): Promise<RunQueryResult>;
|
|
526
|
+
/**
|
|
527
|
+
* Resolves composition tokens and Nunjucks templates for a QueryExecutionSpec.
|
|
528
|
+
* Shared logic used by both `InternalExecuteQueryFromSpec` and can be reused
|
|
529
|
+
* if `processQueryParameters` is refactored in the future.
|
|
530
|
+
*/
|
|
531
|
+
private resolveSpecParameters;
|
|
532
|
+
/**
|
|
533
|
+
* Wraps SQL with a row limit for safety when testing transient queries.
|
|
534
|
+
* Uses platform-aware syntax: TOP N for SQL Server, LIMIT N for PostgreSQL.
|
|
535
|
+
*/
|
|
536
|
+
private wrapWithMaxRows;
|
|
501
537
|
/**
|
|
502
538
|
* Checks the query cache for existing results and returns them if valid.
|
|
503
539
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericDatabaseProvider.d.ts","sourceRoot":"","sources":["../src/GenericDatabaseProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GenericDatabaseProvider.d.ts","sourceRoot":"","sources":["../src/GenericDatabaseProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,11 +15,13 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @module @memberjunction/generic-database-provider
|
|
17
17
|
*/
|
|
18
|
-
import { DatabaseProviderBase, EntityFieldTSType, EntityPermissionType, InMemoryLocalStorageProvider, Metadata, QueryInfo, LocalCacheManager, LogError, LogStatus, LogStatusEx, StripStopWords, QueryCacheManager,
|
|
18
|
+
import { DatabaseProviderBase, EntityFieldTSType, EntityPermissionType, InMemoryLocalStorageProvider, Metadata, QueryInfo, LocalCacheManager, LogError, LogStatus, LogStatusEx, StripStopWords, QueryCacheManager, } from '@memberjunction/core';
|
|
19
19
|
import { MJGlobal, SQLExpressionValidator, UUIDsEqual } from '@memberjunction/global';
|
|
20
|
+
import { QueryPagingEngine } from './queryPagingEngine.js';
|
|
20
21
|
import { QueryParameterProcessor } from '@memberjunction/query-processor';
|
|
21
22
|
import { v4 as uuidv4 } from 'uuid';
|
|
22
23
|
import { SqlLoggingSessionImpl } from './SqlLogger.js';
|
|
24
|
+
import { QueryCompositionEngine } from './queryCompositionEngine.js';
|
|
23
25
|
import { QueryEngine, ViewInfo, } from '@memberjunction/core-entities';
|
|
24
26
|
import { AIEngine } from '@memberjunction/aiengine';
|
|
25
27
|
import { QueueManager } from '@memberjunction/queue';
|
|
@@ -34,18 +36,12 @@ import { EncryptionEngine } from '@memberjunction/encryption';
|
|
|
34
36
|
*/
|
|
35
37
|
export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
36
38
|
constructor() {
|
|
37
|
-
/**************************************************************************/
|
|
38
|
-
// Local Storage Provider — Server-Side Cache Backend
|
|
39
|
-
/**************************************************************************/
|
|
40
39
|
super(...arguments);
|
|
40
|
+
this._compositionEngine = new QueryCompositionEngine();
|
|
41
41
|
/**************************************************************************/
|
|
42
42
|
// InternalRunQuery — Shared Pipeline Implementation
|
|
43
43
|
/**************************************************************************/
|
|
44
|
-
|
|
45
|
-
* Query cache manager wrapping LocalCacheManager for query result caching.
|
|
46
|
-
* Per-instance because it needs the connection string for fingerprinting.
|
|
47
|
-
*/
|
|
48
|
-
this._queryCacheManager = null;
|
|
44
|
+
this._queryCacheInitialized = false;
|
|
49
45
|
}
|
|
50
46
|
/**
|
|
51
47
|
* Returns the active local storage provider, lazily creating an
|
|
@@ -132,8 +128,10 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
132
128
|
const mjCoreSchema = this.ConfigData.MJCoreSchemaName;
|
|
133
129
|
const session = new SqlLoggingSessionImpl(sessionId, filePath, {
|
|
134
130
|
defaultSchemaName: mjCoreSchema,
|
|
135
|
-
|
|
136
|
-
//
|
|
131
|
+
// Inject the platform's batch separator as the default so callers don't need to
|
|
132
|
+
// hardcode 'GO'. Callers can still override by passing batchSeparator explicitly.
|
|
133
|
+
batchSeparator: this.PlatformBatchSeparator || undefined,
|
|
134
|
+
...options
|
|
137
135
|
});
|
|
138
136
|
// Initialize the session (create file, write header)
|
|
139
137
|
await session.initialize();
|
|
@@ -501,6 +499,30 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
501
499
|
});
|
|
502
500
|
return Promise.all(promises);
|
|
503
501
|
}
|
|
502
|
+
/**************************************************************************/
|
|
503
|
+
// RenderViewWhereClause — View Template Rendering
|
|
504
|
+
/**************************************************************************/
|
|
505
|
+
/**************************************************************************/
|
|
506
|
+
// InternalRunView — Shared View Execution Engine
|
|
507
|
+
/**************************************************************************/
|
|
508
|
+
/**
|
|
509
|
+
* Returns the SQLDialect instance for this provider's platform.
|
|
510
|
+
* Subclasses override to return the appropriate dialect (e.g. SQLServerDialect, PostgreSQLDialect).
|
|
511
|
+
* Used by `PlatformBatchSeparator` to retrieve the correct batch separator token via
|
|
512
|
+
* `@memberjunction/sql-dialect` rather than hardcoding platform strings.
|
|
513
|
+
*/
|
|
514
|
+
getDialect() {
|
|
515
|
+
return null;
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
* Returns the batch separator token for the underlying database platform by delegating to
|
|
519
|
+
* the SQLDialect instance returned by `getDialect()`.
|
|
520
|
+
* SQL Server → `'GO'`, PostgreSQL → `''` (no separator needed).
|
|
521
|
+
* Auto-injected as the default `batchSeparator` in `CreateSqlLogger`.
|
|
522
|
+
*/
|
|
523
|
+
get PlatformBatchSeparator() {
|
|
524
|
+
return this.getDialect()?.BatchSeparator() ?? '';
|
|
525
|
+
}
|
|
504
526
|
/**
|
|
505
527
|
* Builds a platform-specific TOP/LIMIT clause for non-paginated row limits.
|
|
506
528
|
* SQL Server: `TOP N`; PostgreSQL returns empty (uses LIMIT via BuildPaginationSQL).
|
|
@@ -1578,10 +1600,11 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
1578
1600
|
};
|
|
1579
1601
|
}
|
|
1580
1602
|
get QueryCacheMgr() {
|
|
1581
|
-
if (!this.
|
|
1582
|
-
|
|
1603
|
+
if (!this._queryCacheInitialized) {
|
|
1604
|
+
QueryCacheManager.Instance.Init(this.InstanceConnectionString);
|
|
1605
|
+
this._queryCacheInitialized = true;
|
|
1583
1606
|
}
|
|
1584
|
-
return
|
|
1607
|
+
return QueryCacheManager.Instance;
|
|
1585
1608
|
}
|
|
1586
1609
|
/**
|
|
1587
1610
|
* Full query execution pipeline: resolve → validate → compose → template → cache check →
|
|
@@ -1808,10 +1831,16 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
1808
1831
|
let finalSQL = query.GetPlatformSQL(this.PlatformKey);
|
|
1809
1832
|
let appliedParameters = {};
|
|
1810
1833
|
// Step 1: Resolve {{query:"..."}} composition tokens BEFORE Nunjucks processing
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1834
|
+
const compositionResult = this._compositionEngine.HasCompositionTokens(finalSQL) && contextUser
|
|
1835
|
+
? this._compositionEngine.ResolveComposition(finalSQL, this.PlatformKey, contextUser, parameters)
|
|
1836
|
+
: { ResolvedSQL: finalSQL, CTEs: [], DependencyGraph: new Map(), HasCompositions: false, AnyDependencyUsesTemplates: false };
|
|
1837
|
+
finalSQL = compositionResult.ResolvedSQL;
|
|
1838
|
+
// Step 2: Process Nunjucks template parameters.
|
|
1839
|
+
// UsesTemplate is transitive: if ANY dependency uses templates, we must run Nunjucks
|
|
1840
|
+
// even if the outer query itself has UsesTemplate = false.
|
|
1841
|
+
const needsTemplateProcessing = query.UsesTemplate || compositionResult.AnyDependencyUsesTemplates;
|
|
1842
|
+
if (needsTemplateProcessing) {
|
|
1843
|
+
const processingResult = QueryParameterProcessor.processQueryTemplate(query, parameters, finalSQL, compositionResult.AnyDependencyUsesTemplates);
|
|
1815
1844
|
if (!processingResult.success) {
|
|
1816
1845
|
throw new Error(processingResult.error);
|
|
1817
1846
|
}
|
|
@@ -1823,6 +1852,110 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
1823
1852
|
}
|
|
1824
1853
|
return { finalSQL, appliedParameters };
|
|
1825
1854
|
}
|
|
1855
|
+
/**
|
|
1856
|
+
* Lower-layer execution: resolves composition, processes templates, executes SQL.
|
|
1857
|
+
* This is the single execution pathway used by both saved queries (via RunQuery upper layer)
|
|
1858
|
+
* and transient test queries (via TestQuerySQL resolver).
|
|
1859
|
+
*
|
|
1860
|
+
* Processing order:
|
|
1861
|
+
* 1. Resolve {{query:"..."}} composition tokens → CTEs (inline deps checked first, then Metadata)
|
|
1862
|
+
* 2. Process {{ param }} Nunjucks templates (if UsesTemplate or any dependency uses templates)
|
|
1863
|
+
* 3. Apply MaxRows safety limit (wrap with TOP/LIMIT if specified)
|
|
1864
|
+
* 4. Execute the fully resolved SQL
|
|
1865
|
+
* 5. Return results with execution metadata
|
|
1866
|
+
*/
|
|
1867
|
+
async InternalExecuteQueryFromSpec(spec, contextUser) {
|
|
1868
|
+
try {
|
|
1869
|
+
const { finalSQL, appliedParameters } = this.resolveSpecParameters(spec, contextUser);
|
|
1870
|
+
// Execute
|
|
1871
|
+
const { result, executionTime } = await this.executeQueryWithTiming(finalSQL, contextUser);
|
|
1872
|
+
return {
|
|
1873
|
+
Success: true,
|
|
1874
|
+
QueryID: '',
|
|
1875
|
+
QueryName: '',
|
|
1876
|
+
Results: result ?? [],
|
|
1877
|
+
RowCount: result?.length ?? 0,
|
|
1878
|
+
TotalRowCount: result?.length ?? 0,
|
|
1879
|
+
ExecutionTime: executionTime,
|
|
1880
|
+
ErrorMessage: '',
|
|
1881
|
+
AppliedParameters: appliedParameters,
|
|
1882
|
+
};
|
|
1883
|
+
}
|
|
1884
|
+
catch (e) {
|
|
1885
|
+
LogError(e);
|
|
1886
|
+
const errorMessage = e instanceof Error ? e.message : String(e);
|
|
1887
|
+
return {
|
|
1888
|
+
Success: false,
|
|
1889
|
+
QueryID: '',
|
|
1890
|
+
QueryName: '',
|
|
1891
|
+
Results: [],
|
|
1892
|
+
RowCount: 0,
|
|
1893
|
+
TotalRowCount: 0,
|
|
1894
|
+
ExecutionTime: 0,
|
|
1895
|
+
ErrorMessage: errorMessage,
|
|
1896
|
+
};
|
|
1897
|
+
}
|
|
1898
|
+
}
|
|
1899
|
+
/**
|
|
1900
|
+
* Resolves composition tokens and Nunjucks templates for a QueryExecutionSpec.
|
|
1901
|
+
* Shared logic used by both `InternalExecuteQueryFromSpec` and can be reused
|
|
1902
|
+
* if `processQueryParameters` is refactored in the future.
|
|
1903
|
+
*/
|
|
1904
|
+
resolveSpecParameters(spec, contextUser) {
|
|
1905
|
+
let finalSQL = spec.SQL;
|
|
1906
|
+
let appliedParameters = {};
|
|
1907
|
+
// Step 1: Resolve {{query:"..."}} composition tokens (with inline deps support)
|
|
1908
|
+
const compositionResult = this._compositionEngine.HasCompositionTokens(finalSQL) && contextUser
|
|
1909
|
+
? this._compositionEngine.ResolveComposition(finalSQL, this.PlatformKey, contextUser, spec.Parameters, spec.Dependencies)
|
|
1910
|
+
: { ResolvedSQL: finalSQL, CTEs: [], DependencyGraph: new Map(), HasCompositions: false, AnyDependencyUsesTemplates: false };
|
|
1911
|
+
finalSQL = compositionResult.ResolvedSQL;
|
|
1912
|
+
// Step 2: Process Nunjucks templates
|
|
1913
|
+
const needsTemplateProcessing = spec.UsesTemplate || compositionResult.AnyDependencyUsesTemplates;
|
|
1914
|
+
if (needsTemplateProcessing) {
|
|
1915
|
+
const templateInput = {
|
|
1916
|
+
SQL: spec.SQL,
|
|
1917
|
+
UsesTemplate: spec.UsesTemplate ?? false,
|
|
1918
|
+
Parameters: spec.ParameterDefinitions ?? [],
|
|
1919
|
+
};
|
|
1920
|
+
// Skip unknown-parameter validation when a dependency uses templates (existing behavior)
|
|
1921
|
+
// OR when no formal ParameterDefinitions were provided (transient specs from TestQuerySQL
|
|
1922
|
+
// don't have definitions — parameters should pass through to Nunjucks without validation).
|
|
1923
|
+
const skipUnknownParamCheck = compositionResult.AnyDependencyUsesTemplates || !spec.ParameterDefinitions;
|
|
1924
|
+
const processingResult = QueryParameterProcessor.processQueryTemplate(templateInput, spec.Parameters, finalSQL, skipUnknownParamCheck);
|
|
1925
|
+
if (!processingResult.success) {
|
|
1926
|
+
throw new Error(processingResult.error);
|
|
1927
|
+
}
|
|
1928
|
+
finalSQL = processingResult.processedSQL;
|
|
1929
|
+
appliedParameters = (processingResult.appliedParameters || {});
|
|
1930
|
+
}
|
|
1931
|
+
else if (spec.Parameters && Object.keys(spec.Parameters).length > 0) {
|
|
1932
|
+
LogStatus('Warning: Parameters provided but query does not use templates. Parameters will be ignored.');
|
|
1933
|
+
}
|
|
1934
|
+
// Step 3: Apply MaxRows safety limit
|
|
1935
|
+
if (spec.MaxRows != null && spec.MaxRows > 0) {
|
|
1936
|
+
finalSQL = this.wrapWithMaxRows(finalSQL, spec.MaxRows);
|
|
1937
|
+
}
|
|
1938
|
+
return { finalSQL, appliedParameters };
|
|
1939
|
+
}
|
|
1940
|
+
/**
|
|
1941
|
+
* Wraps SQL with a row limit for safety when testing transient queries.
|
|
1942
|
+
* Uses platform-aware syntax: TOP N for SQL Server, LIMIT N for PostgreSQL.
|
|
1943
|
+
*/
|
|
1944
|
+
wrapWithMaxRows(sql, maxRows) {
|
|
1945
|
+
const platform = this.PlatformKey;
|
|
1946
|
+
const trimmed = sql.trim();
|
|
1947
|
+
// Don't wrap if already has a TOP or LIMIT clause
|
|
1948
|
+
if (/\bTOP\s+\d/i.test(trimmed) || /\bLIMIT\s+\d/i.test(trimmed)) {
|
|
1949
|
+
return sql;
|
|
1950
|
+
}
|
|
1951
|
+
if (platform === 'postgresql') {
|
|
1952
|
+
// Append LIMIT N — handle trailing semicolons
|
|
1953
|
+
const withoutSemicolon = trimmed.replace(/;\s*$/, '');
|
|
1954
|
+
return `${withoutSemicolon}\nLIMIT ${maxRows}`;
|
|
1955
|
+
}
|
|
1956
|
+
// SQL Server: inject TOP N after SELECT (handling SELECT DISTINCT)
|
|
1957
|
+
return trimmed.replace(/^(SELECT\s+(?:DISTINCT\s+)?)/i, `$1TOP ${maxRows} `);
|
|
1958
|
+
}
|
|
1826
1959
|
/**
|
|
1827
1960
|
* Checks the query cache for existing results and returns them if valid.
|
|
1828
1961
|
*/
|