@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.
@@ -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, QueryPagingEngine, } from '@memberjunction/core';
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
- ...options // if defaultSchemaName is not provided, it will use the MJCoreSchemaName, otherwise
136
- // the caller's defaultSchemaName will be used
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._queryCacheManager) {
1582
- this._queryCacheManager = new QueryCacheManager(this.InstanceConnectionString);
1603
+ if (!this._queryCacheInitialized) {
1604
+ QueryCacheManager.Instance.Init(this.InstanceConnectionString);
1605
+ this._queryCacheInitialized = true;
1583
1606
  }
1584
- return this._queryCacheManager;
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
- finalSQL = this.ResolveQueryComposition(finalSQL, contextUser, parameters);
1812
- // Step 2: Process Nunjucks template parameters
1813
- if (query.UsesTemplate) {
1814
- const processingResult = QueryParameterProcessor.processQueryTemplate(query, parameters, finalSQL);
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
  */