@memberjunction/codegen-lib 6.2.0-edge.0 → 6.2.0-edge.1
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/Angular/angular-codegen.d.ts +6 -0
- package/dist/Angular/angular-codegen.d.ts.map +1 -1
- package/dist/Angular/angular-codegen.js +26 -14
- package/dist/Angular/angular-codegen.js.map +1 -1
- package/dist/Config/config.d.ts +45 -2
- package/dist/Config/config.d.ts.map +1 -1
- package/dist/Config/config.js +116 -39
- package/dist/Config/config.js.map +1 -1
- package/dist/Config/db-connection.d.ts +4 -0
- package/dist/Config/db-connection.d.ts.map +1 -1
- package/dist/Config/db-connection.js +11 -3
- package/dist/Config/db-connection.js.map +1 -1
- package/dist/Config/pg-connection.d.ts +2 -0
- package/dist/Config/pg-connection.d.ts.map +1 -1
- package/dist/Config/pg-connection.js +5 -1
- package/dist/Config/pg-connection.js.map +1 -1
- package/dist/Config/schema-output.d.ts +8 -0
- package/dist/Config/schema-output.d.ts.map +1 -1
- package/dist/Config/schema-output.js +19 -7
- package/dist/Config/schema-output.js.map +1 -1
- package/dist/Database/__tests__/exclude-schema-permissions.test.js +3 -3
- package/dist/Database/codeGenDatabaseProvider.d.ts +16 -1
- package/dist/Database/codeGenDatabaseProvider.d.ts.map +1 -1
- package/dist/Database/codeGenDatabaseProvider.js +37 -9
- package/dist/Database/codeGenDatabaseProvider.js.map +1 -1
- package/dist/Database/dbSchema.d.ts +4 -0
- package/dist/Database/dbSchema.d.ts.map +1 -1
- package/dist/Database/dbSchema.js +17 -9
- package/dist/Database/dbSchema.js.map +1 -1
- package/dist/Database/entity-field-change-tracking.d.ts +4 -0
- package/dist/Database/entity-field-change-tracking.d.ts.map +1 -1
- package/dist/Database/entity-field-change-tracking.js +12 -4
- package/dist/Database/entity-field-change-tracking.js.map +1 -1
- package/dist/Database/exclude-tables.d.ts +2 -0
- package/dist/Database/exclude-tables.d.ts.map +1 -1
- package/dist/Database/exclude-tables.js +5 -1
- package/dist/Database/exclude-tables.js.map +1 -1
- package/dist/Database/field-metadata-lock.d.ts +8 -6
- package/dist/Database/field-metadata-lock.d.ts.map +1 -1
- package/dist/Database/field-metadata-lock.js +29 -25
- package/dist/Database/field-metadata-lock.js.map +1 -1
- package/dist/Database/heal-schema-params.d.ts +14 -2
- package/dist/Database/heal-schema-params.d.ts.map +1 -1
- package/dist/Database/heal-schema-params.js +21 -5
- package/dist/Database/heal-schema-params.js.map +1 -1
- package/dist/Database/manage-metadata.d.ts +119 -3
- package/dist/Database/manage-metadata.d.ts.map +1 -1
- package/dist/Database/manage-metadata.js +529 -364
- package/dist/Database/manage-metadata.js.map +1 -1
- package/dist/Database/materializationAnalysis.d.ts +61 -2
- package/dist/Database/materializationAnalysis.d.ts.map +1 -1
- package/dist/Database/materializationAnalysis.js +43 -23
- package/dist/Database/materializationAnalysis.js.map +1 -1
- package/dist/Database/materializationBroadRender.d.ts +5 -3
- package/dist/Database/materializationBroadRender.d.ts.map +1 -1
- package/dist/Database/materializationBroadRender.js +17 -13
- package/dist/Database/materializationBroadRender.js.map +1 -1
- package/dist/Database/materializationDrift.d.ts +2 -0
- package/dist/Database/materializationDrift.d.ts.map +1 -1
- package/dist/Database/materializationDrift.js +5 -1
- package/dist/Database/materializationDrift.js.map +1 -1
- package/dist/Database/materializationParamClassifier.d.ts +17 -2
- package/dist/Database/materializationParamClassifier.d.ts.map +1 -1
- package/dist/Database/materializationParamClassifier.js +22 -10
- package/dist/Database/materializationParamClassifier.js.map +1 -1
- package/dist/Database/materializationParamVerifier.d.ts +2 -0
- package/dist/Database/materializationParamVerifier.d.ts.map +1 -1
- package/dist/Database/materializationParamVerifier.js +18 -14
- package/dist/Database/materializationParamVerifier.js.map +1 -1
- package/dist/Database/materializationSqlAst.d.ts +19 -1
- package/dist/Database/materializationSqlAst.d.ts.map +1 -1
- package/dist/Database/materializationSqlAst.js +53 -17
- package/dist/Database/materializationSqlAst.js.map +1 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js +30 -30
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js.map +1 -1
- package/dist/Database/providers/postgresql/metadataSupportObjects.d.ts +2 -0
- package/dist/Database/providers/postgresql/metadataSupportObjects.d.ts.map +1 -1
- package/dist/Database/providers/postgresql/metadataSupportObjects.js +5 -1
- package/dist/Database/providers/postgresql/metadataSupportObjects.js.map +1 -1
- package/dist/Database/providers/postgresql/viewDependencyCapture.d.ts +10 -0
- package/dist/Database/providers/postgresql/viewDependencyCapture.d.ts.map +1 -1
- package/dist/Database/providers/postgresql/viewDependencyCapture.js +25 -5
- package/dist/Database/providers/postgresql/viewDependencyCapture.js.map +1 -1
- package/dist/Database/providers/postgresql/viewFallback.d.ts +11 -7
- package/dist/Database/providers/postgresql/viewFallback.d.ts.map +1 -1
- package/dist/Database/providers/postgresql/viewFallback.js +18 -12
- package/dist/Database/providers/postgresql/viewFallback.js.map +1 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js +13 -13
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js.map +1 -1
- package/dist/Database/reconcileFieldLevelSecurity.d.ts +2 -0
- package/dist/Database/reconcileFieldLevelSecurity.d.ts.map +1 -1
- package/dist/Database/reconcileFieldLevelSecurity.js +5 -1
- package/dist/Database/reconcileFieldLevelSecurity.js.map +1 -1
- package/dist/Database/reorder-columns.d.ts +2 -0
- package/dist/Database/reorder-columns.d.ts.map +1 -1
- package/dist/Database/reorder-columns.js +5 -1
- package/dist/Database/reorder-columns.js.map +1 -1
- package/dist/Database/schema-filters.d.ts +6 -0
- package/dist/Database/schema-filters.d.ts.map +1 -1
- package/dist/Database/schema-filters.js +17 -5
- package/dist/Database/schema-filters.js.map +1 -1
- package/dist/Database/schema-scope.d.ts +4 -0
- package/dist/Database/schema-scope.d.ts.map +1 -1
- package/dist/Database/schema-scope.js +13 -5
- package/dist/Database/schema-scope.js.map +1 -1
- package/dist/Database/search-guardrails.d.ts +42 -0
- package/dist/Database/search-guardrails.d.ts.map +1 -1
- package/dist/Database/search-guardrails.js +57 -17
- package/dist/Database/search-guardrails.js.map +1 -1
- package/dist/Database/sql.d.ts +20 -0
- package/dist/Database/sql.d.ts.map +1 -1
- package/dist/Database/sql.js +72 -32
- package/dist/Database/sql.js.map +1 -1
- package/dist/Database/sql_codegen.d.ts +92 -0
- package/dist/Database/sql_codegen.d.ts.map +1 -1
- package/dist/Database/sql_codegen.js +197 -113
- package/dist/Database/sql_codegen.js.map +1 -1
- package/dist/EntityNameScanner/EntityNameScanner.d.ts +16 -0
- package/dist/EntityNameScanner/EntityNameScanner.d.ts.map +1 -1
- package/dist/EntityNameScanner/EntityNameScanner.js +47 -15
- package/dist/EntityNameScanner/EntityNameScanner.js.map +1 -1
- package/dist/EntityNameScanner/HtmlEntityNameScanner.d.ts +6 -0
- package/dist/EntityNameScanner/HtmlEntityNameScanner.d.ts.map +1 -1
- package/dist/EntityNameScanner/HtmlEntityNameScanner.js +19 -7
- package/dist/EntityNameScanner/HtmlEntityNameScanner.js.map +1 -1
- package/dist/EntityNameScanner/MetadataNameScanner.d.ts +6 -0
- package/dist/EntityNameScanner/MetadataNameScanner.d.ts.map +1 -1
- package/dist/EntityNameScanner/MetadataNameScanner.js +19 -7
- package/dist/EntityNameScanner/MetadataNameScanner.js.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.d.ts +6 -0
- package/dist/Manifest/GenerateClassRegistrationsManifest.d.ts.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.js +16 -4
- package/dist/Manifest/GenerateClassRegistrationsManifest.js.map +1 -1
- package/dist/Misc/action_subclasses_codegen.d.ts +4 -0
- package/dist/Misc/action_subclasses_codegen.d.ts.map +1 -1
- package/dist/Misc/action_subclasses_codegen.js +11 -3
- package/dist/Misc/action_subclasses_codegen.js.map +1 -1
- package/dist/Misc/advanced_generation.d.ts +48 -2
- package/dist/Misc/advanced_generation.d.ts.map +1 -1
- package/dist/Misc/advanced_generation.js +53 -15
- package/dist/Misc/advanced_generation.js.map +1 -1
- package/dist/Misc/codegen-reporter.d.ts +53 -0
- package/dist/Misc/codegen-reporter.d.ts.map +1 -1
- package/dist/Misc/codegen-reporter.js +106 -22
- package/dist/Misc/codegen-reporter.js.map +1 -1
- package/dist/Misc/createNewUser.d.ts +6 -0
- package/dist/Misc/createNewUser.d.ts.map +1 -1
- package/dist/Misc/createNewUser.js +5 -1
- package/dist/Misc/createNewUser.js.map +1 -1
- package/dist/Misc/entity_subclasses_codegen.d.ts +8 -0
- package/dist/Misc/entity_subclasses_codegen.d.ts.map +1 -1
- package/dist/Misc/entity_subclasses_codegen.js +52 -36
- package/dist/Misc/entity_subclasses_codegen.js.map +1 -1
- package/dist/Misc/externalTypeMapping.d.ts +2 -0
- package/dist/Misc/externalTypeMapping.d.ts.map +1 -1
- package/dist/Misc/externalTypeMapping.js +5 -1
- package/dist/Misc/externalTypeMapping.js.map +1 -1
- package/dist/Misc/file-write.d.ts +2 -0
- package/dist/Misc/file-write.d.ts.map +1 -1
- package/dist/Misc/file-write.js +5 -1
- package/dist/Misc/file-write.js.map +1 -1
- package/dist/Misc/graphql_server_codegen.d.ts +10 -0
- package/dist/Misc/graphql_server_codegen.d.ts.map +1 -1
- package/dist/Misc/graphql_server_codegen.js +46 -26
- package/dist/Misc/graphql_server_codegen.js.map +1 -1
- package/dist/Misc/remote_operations_codegen.d.ts +12 -0
- package/dist/Misc/remote_operations_codegen.d.ts.map +1 -1
- package/dist/Misc/remote_operations_codegen.js +21 -5
- package/dist/Misc/remote_operations_codegen.js.map +1 -1
- package/dist/Misc/runCommand.d.ts +6 -0
- package/dist/Misc/runCommand.d.ts.map +1 -1
- package/dist/Misc/runCommand.js +16 -4
- package/dist/Misc/runCommand.js.map +1 -1
- package/dist/Misc/schema-emit.d.ts +28 -0
- package/dist/Misc/schema-emit.d.ts.map +1 -1
- package/dist/Misc/schema-emit.js +75 -23
- package/dist/Misc/schema-emit.js.map +1 -1
- package/dist/Misc/sql_logging.d.ts +31 -9
- package/dist/Misc/sql_logging.d.ts.map +1 -1
- package/dist/Misc/sql_logging.js +95 -51
- package/dist/Misc/sql_logging.js.map +1 -1
- package/dist/Misc/sql_text.d.ts +4 -0
- package/dist/Misc/sql_text.d.ts.map +1 -1
- package/dist/Misc/sql_text.js +10 -2
- package/dist/Misc/sql_text.js.map +1 -1
- package/dist/Misc/status_logging.d.ts +36 -0
- package/dist/Misc/status_logging.d.ts.map +1 -1
- package/dist/Misc/status_logging.js +95 -23
- package/dist/Misc/status_logging.js.map +1 -1
- package/dist/Misc/system_integrity.js +4 -4
- package/dist/Misc/system_integrity.js.map +1 -1
- package/dist/Misc/temp_batch_file.d.ts +12 -0
- package/dist/Misc/temp_batch_file.d.ts.map +1 -1
- package/dist/Misc/temp_batch_file.js +35 -11
- package/dist/Misc/temp_batch_file.js.map +1 -1
- package/dist/Misc/util.d.ts +33 -0
- package/dist/Misc/util.d.ts.map +1 -1
- package/dist/Misc/util.js +53 -13
- package/dist/Misc/util.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/index.d.ts +11 -1
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +9 -1
- package/dist/plugins/index.js.map +1 -1
- package/dist/runCodeGen.d.ts +6 -0
- package/dist/runCodeGen.d.ts.map +1 -1
- package/dist/runCodeGen.js +150 -138
- package/dist/runCodeGen.js.map +1 -1
- package/package.json +29 -29
|
@@ -29,9 +29,9 @@ export interface MaterializationAnalysis {
|
|
|
29
29
|
/** When `qualifies` is false, a human-readable reason (logged, never guessed-past). */
|
|
30
30
|
reason?: string;
|
|
31
31
|
/** Physical column spec for the materialized table (surrogate PK first, then the query's output columns). */
|
|
32
|
-
|
|
32
|
+
Columns: MaterializedColumnSpec[];
|
|
33
33
|
/** Name of the synthetic surrogate primary-key column. */
|
|
34
|
-
|
|
34
|
+
SurrogateColumnName: string;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* Name of the synthetic surrogate key column added to every query-materialized table in v1.
|
|
@@ -52,6 +52,14 @@ export declare const DEFAULT_SURROGATE_SQL_TYPE = "int IDENTITY(1,1)";
|
|
|
52
52
|
* On success, returns the column spec with a synthetic surrogate PK prepended; the query's
|
|
53
53
|
* own output columns are emitted as nullable snapshot columns (a snapshot may contain NULLs).
|
|
54
54
|
*/
|
|
55
|
+
export declare function AnalyzeQueryForMaterialization(opts: {
|
|
56
|
+
queryName: string;
|
|
57
|
+
isParameterized: boolean;
|
|
58
|
+
fields: QueryFieldShape[];
|
|
59
|
+
/** Engine-specific surrogate column type; defaults to SQL Server's identity. */
|
|
60
|
+
surrogateSQLType?: string;
|
|
61
|
+
}): MaterializationAnalysis;
|
|
62
|
+
/** @deprecated Use {@link AnalyzeQueryForMaterialization}. */
|
|
55
63
|
export declare function analyzeQueryForMaterialization(opts: {
|
|
56
64
|
queryName: string;
|
|
57
65
|
isParameterized: boolean;
|
|
@@ -137,6 +145,37 @@ export interface ParamQualification {
|
|
|
137
145
|
* the domain; otherwise refuse (recompute live). Open decision §17 — defaults OFF.
|
|
138
146
|
* - a mix of row-filter and structural params is not modeled in v1 → refuse.
|
|
139
147
|
*/
|
|
148
|
+
export declare function QualifyParameterizedQuery(opts: {
|
|
149
|
+
queryName: string;
|
|
150
|
+
params: ParamClassification[];
|
|
151
|
+
/** The query's materialized output column names (for the Bucket-1 column-presence check). */
|
|
152
|
+
outputColumns: string[];
|
|
153
|
+
/** Whether Bucket-2 per-value cache is supported in this build (default false → structural recomputes). */
|
|
154
|
+
allowPerValueCache?: boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Whether Bucket-1 row-filter broad materialization is enabled in this build (default false).
|
|
157
|
+
* Phase 2 is not shipped: the read-time row-filter predicate is NOT auto-injected by the provider,
|
|
158
|
+
* so a caller reading a RowFilterBroad materialization must supply the filter themselves (via
|
|
159
|
+
* ExtraFilter) or they get the broad/unfiltered set. To avoid that footgun, parameterized row-filter
|
|
160
|
+
* queries are refused (stay live-only) unless a build explicitly opts in. Flipping this to true is the
|
|
161
|
+
* Phase-2 enablement switch (finalize the read-time predicate injection first).
|
|
162
|
+
*/
|
|
163
|
+
allowRowFilterBroad?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* The query's **rendered** SQL (a concrete instance — parameters already substituted). REQUIRED to
|
|
166
|
+
* qualify a `RowFilter` param: the verifier reports `filterColumn` as a BARE column name, and matching
|
|
167
|
+
* that name against the output-column list alone cannot tell `o.Status` (the predicate) apart from
|
|
168
|
+
* `c.Status` (the projected output) in a join, nor `BillRegion` (an alias over `ShipRegion`) apart from
|
|
169
|
+
* a real `BillRegion` column. Both mis-matches produce a materialized read that filters on a DIFFERENT
|
|
170
|
+
* column than the live query, with no error and no count-guard signal. See
|
|
171
|
+
* {@link proveFilterColumnBinding}. When omitted, RowFilter params are REFUSED (fail closed, §10) —
|
|
172
|
+
* the query stays live-only, which is always correct.
|
|
173
|
+
*/
|
|
174
|
+
sql?: string;
|
|
175
|
+
/** Dialect used to parse {@link sql}. Required alongside it; RowFilter params refuse without both. */
|
|
176
|
+
dialect?: SQLParserDialect;
|
|
177
|
+
}): ParamQualification;
|
|
178
|
+
/** @deprecated Use {@link QualifyParameterizedQuery}. */
|
|
140
179
|
export declare function qualifyParameterizedQuery(opts: {
|
|
141
180
|
queryName: string;
|
|
142
181
|
params: ParamClassification[];
|
|
@@ -202,6 +241,15 @@ export interface FilterColumnBindingProof {
|
|
|
202
241
|
*
|
|
203
242
|
* Pure — no DB/IO.
|
|
204
243
|
*/
|
|
244
|
+
export declare function ProveFilterColumnBinding(opts: {
|
|
245
|
+
/** The query's RENDERED SQL (parameters substituted), still carrying the row-filter predicate. */
|
|
246
|
+
sql: string;
|
|
247
|
+
/** Dialect to parse with. */
|
|
248
|
+
dialect: SQLParserDialect;
|
|
249
|
+
/** The verifier-reported bare filter column name. */
|
|
250
|
+
filterColumn: string;
|
|
251
|
+
}): FilterColumnBindingProof;
|
|
252
|
+
/** @deprecated Use {@link ProveFilterColumnBinding}. */
|
|
205
253
|
export declare function proveFilterColumnBinding(opts: {
|
|
206
254
|
/** The query's RENDERED SQL (parameters substituted), still carrying the row-filter predicate. */
|
|
207
255
|
sql: string;
|
|
@@ -219,6 +267,15 @@ export declare function proveFilterColumnBinding(opts: {
|
|
|
219
267
|
* the key is built from the AST GROUP BY terms (not a SELECT-list split), so grouping expressions and
|
|
220
268
|
* grouped-but-unprojected columns both refuse rather than silently producing a too-narrow key.
|
|
221
269
|
*/
|
|
270
|
+
export declare function DetectAggregationKeyColumns(opts: {
|
|
271
|
+
sql: string;
|
|
272
|
+
dialect: SQLParserDialect;
|
|
273
|
+
fields: QueryFieldShape[];
|
|
274
|
+
}): {
|
|
275
|
+
name: string;
|
|
276
|
+
type: string;
|
|
277
|
+
}[] | null;
|
|
278
|
+
/** @deprecated Use {@link DetectAggregationKeyColumns}. */
|
|
222
279
|
export declare function detectAggregationKeyColumns(opts: {
|
|
223
280
|
sql: string;
|
|
224
281
|
dialect: SQLParserDialect;
|
|
@@ -237,5 +294,7 @@ export declare function detectAggregationKeyColumns(opts: {
|
|
|
237
294
|
* then uses DirtyGroupRecompute, which is correct for all measure types). Regex-based because the SQL
|
|
238
295
|
* parser doesn't expose per-measure expression text; the bias is toward the safe (non-additive) answer.
|
|
239
296
|
*/
|
|
297
|
+
export declare function DetectAdditiveMeasures(sql: string): boolean;
|
|
298
|
+
/** @deprecated Use {@link DetectAdditiveMeasures}. */
|
|
240
299
|
export declare function detectAdditiveMeasures(sql: string): boolean;
|
|
241
300
|
//# sourceMappingURL=materializationAnalysis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materializationAnalysis.d.ts","sourceRoot":"","sources":["../../src/Database/materializationAnalysis.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"materializationAnalysis.d.ts","sourceRoot":"","sources":["../../src/Database/materializationAnalysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAMpE;;;;;;;;;;;;GAYG;AAEH,6FAA6F;AAC7F,MAAM,WAAW,eAAe;IAC5B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,8GAA8G;IAC9G,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,4DAA4D;AAC5D,MAAM,WAAW,uBAAuB;IACpC,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAC;IACnB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6GAA6G;IAC7G,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,0DAA0D;IAC1D,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,2BAA2B,CAAC;AAEzE,+FAA+F;AAC/F,eAAO,MAAM,0BAA0B,sBAAsB,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,uBAAuB,CA8B1B;AAED,8DAA8D;AAC9D,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,uBAAuB,CAE1B;AAID;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;AAEjE,iGAAiG;AACjG,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,gBAAgB,GAAG,eAAe,GAAG,YAAY,CAAC;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAEzD,CAAC;AAEH;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAChC,+FAA+F;IAC/F,MAAM,EAAE,MAAM,CAAC;IACf,sGAAsG;IACtG,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC3B;AAED,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAChC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,mGAAmG;IACnG,IAAI,EAAE,SAAS,CAAC;IAChB,qGAAqG;IACrG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+GAA+G;IAC/G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,6GAA6G;IAC7G,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IAC/B,qEAAqE;IACrE,SAAS,EAAE,OAAO,CAAC;IACnB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,SAAS,EAAE,SAAS,CAAC;IACrB,gHAAgH;IAChH,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;;OAGG;IACH,cAAc,EAAE,mBAAmB,EAAE,CAAC;CACzC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,6FAA6F;IAC7F,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,2GAA2G;IAC3G,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;OASG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sGAAsG;IACtG,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC9B,GAAG,kBAAkB,CA6ErB;AAED,yDAAyD;AACzD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,6FAA6F;IAC7F,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,2GAA2G;IAC3G,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;OASG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sGAAsG;IACtG,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC9B,GAAG,kBAAkB,CAErB;AA0DD,iGAAiG;AACjG,MAAM,WAAW,wBAAwB;IACrC,4GAA4G;IAC5G,QAAQ,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC3C,kGAAkG;IAClG,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;CACxB,GAAG,wBAAwB,CAuC3B;AAED,wDAAwD;AACxD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC3C,kGAAkG;IAClG,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;CACxB,GAAG,wBAAwB,CAE3B;AAqCD;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,IAAI,CA+C1C;AAED,2DAA2D;AAC3D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,IAAI,CAE1C;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAY3D;AAED,sDAAsD;AACtD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SQLParser } from '@memberjunction/sql-parser';
|
|
2
|
-
import {
|
|
2
|
+
import { IsObject, NodeType, qualifiedColumn, IdentifiersEqual, IsSetOperationRoot, SoleStatement, } from './materializationSqlAst.js';
|
|
3
3
|
/**
|
|
4
4
|
* Name of the synthetic surrogate key column added to every query-materialized table in v1.
|
|
5
5
|
* Namespaced to avoid colliding with a query's own output columns.
|
|
@@ -19,10 +19,10 @@ export const DEFAULT_SURROGATE_SQL_TYPE = 'int IDENTITY(1,1)';
|
|
|
19
19
|
* On success, returns the column spec with a synthetic surrogate PK prepended; the query's
|
|
20
20
|
* own output columns are emitted as nullable snapshot columns (a snapshot may contain NULLs).
|
|
21
21
|
*/
|
|
22
|
-
export function
|
|
22
|
+
export function AnalyzeQueryForMaterialization(opts) {
|
|
23
23
|
const surrogateColumnName = MATERIALIZATION_SURROGATE_COLUMN;
|
|
24
24
|
const surrogateSQLType = opts.surrogateSQLType ?? DEFAULT_SURROGATE_SQL_TYPE;
|
|
25
|
-
const fail = (reason) => ({ qualifies: false, reason,
|
|
25
|
+
const fail = (reason) => ({ qualifies: false, reason, Columns: [], SurrogateColumnName: surrogateColumnName });
|
|
26
26
|
if (opts.isParameterized) {
|
|
27
27
|
return fail(`query "${opts.queryName}" is parameterized — not materializable in v1 (deferred to Phase 2)`);
|
|
28
28
|
}
|
|
@@ -45,7 +45,11 @@ export function analyzeQueryForMaterialization(opts) {
|
|
|
45
45
|
Nullable: true,
|
|
46
46
|
IsPrimaryKey: false,
|
|
47
47
|
}));
|
|
48
|
-
return { qualifies: true,
|
|
48
|
+
return { qualifies: true, Columns: [surrogate, ...dataColumns], SurrogateColumnName: surrogateColumnName };
|
|
49
|
+
}
|
|
50
|
+
/** @deprecated Use {@link AnalyzeQueryForMaterialization}. */
|
|
51
|
+
export function analyzeQueryForMaterialization(opts) {
|
|
52
|
+
return AnalyzeQueryForMaterialization(opts);
|
|
49
53
|
}
|
|
50
54
|
/**
|
|
51
55
|
* Phase 2 read-time-injectable operators — the SAFE whitelist. A `column <op> value` predicate in this
|
|
@@ -71,7 +75,7 @@ export const SAFE_READ_FILTER_OPERATORS = new Set([
|
|
|
71
75
|
* the domain; otherwise refuse (recompute live). Open decision §17 — defaults OFF.
|
|
72
76
|
* - a mix of row-filter and structural params is not modeled in v1 → refuse.
|
|
73
77
|
*/
|
|
74
|
-
export function
|
|
78
|
+
export function QualifyParameterizedQuery(opts) {
|
|
75
79
|
const { queryName, params, outputColumns } = opts;
|
|
76
80
|
const allowPerValueCache = opts.allowPerValueCache ?? false;
|
|
77
81
|
const allowRowFilterBroad = opts.allowRowFilterBroad ?? false;
|
|
@@ -125,7 +129,7 @@ export function qualifyParameterizedQuery(opts) {
|
|
|
125
129
|
if (!opts.sql || !opts.dialect) {
|
|
126
130
|
return refuse(`query "${queryName}" param "${p.name}" filters on "${p.filterColumn}" but no rendered SQL was supplied to prove that predicate binds to the materialized output column of the same name — refusing under uncertainty (the query stays live-only)`);
|
|
127
131
|
}
|
|
128
|
-
const binding =
|
|
132
|
+
const binding = ProveFilterColumnBinding({ sql: opts.sql, dialect: opts.dialect, filterColumn: p.filterColumn });
|
|
129
133
|
if (!binding.provable) {
|
|
130
134
|
return refuse(`query "${queryName}" param "${p.name}" filters on "${p.filterColumn}" but that predicate cannot be proven to bind to the materialized output column of the same name: ${binding.reason} — a materialized read would filter a different column than the live query. Refusing (the query stays live-only).`);
|
|
131
135
|
}
|
|
@@ -145,6 +149,10 @@ export function qualifyParameterizedQuery(opts) {
|
|
|
145
149
|
}
|
|
146
150
|
return { qualifies: true, paramMode: 'RowFilterBroad', rowFilterColumns, readFilterSpec };
|
|
147
151
|
}
|
|
152
|
+
/** @deprecated Use {@link QualifyParameterizedQuery}. */
|
|
153
|
+
export function qualifyParameterizedQuery(opts) {
|
|
154
|
+
return QualifyParameterizedQuery(opts);
|
|
155
|
+
}
|
|
148
156
|
// AST-walking primitives are shared with the param verifier + broad-render via ./materializationSqlAst
|
|
149
157
|
// (single source of truth — see that module's header). extractGroupByTerms is GROUP-BY-specific and stays here.
|
|
150
158
|
/**
|
|
@@ -161,11 +169,11 @@ export function qualifyParameterizedQuery(opts) {
|
|
|
161
169
|
*/
|
|
162
170
|
function extractGroupByTerms(stmt) {
|
|
163
171
|
const gb = stmt.groupby;
|
|
164
|
-
if (
|
|
172
|
+
if (IsObject(gb) && Array.isArray(gb.columns))
|
|
165
173
|
return gb.columns; // observed shape: { columns: [...] }
|
|
166
174
|
if (Array.isArray(gb))
|
|
167
175
|
return gb; // some dialects emit a bare array
|
|
168
|
-
if (
|
|
176
|
+
if (IsObject(gb) && Array.isArray(gb.value))
|
|
169
177
|
return gb.value; // …or { value: [...] }
|
|
170
178
|
return [];
|
|
171
179
|
}
|
|
@@ -179,10 +187,10 @@ function parseSoleSelectRoot(sql, dialect) {
|
|
|
179
187
|
const parsed = SQLParser.Astify(sql, dialect);
|
|
180
188
|
if (!parsed.astParsed || parsed.ast == null)
|
|
181
189
|
return null;
|
|
182
|
-
const stmt =
|
|
183
|
-
if (!
|
|
190
|
+
const stmt = SoleStatement(parsed.ast);
|
|
191
|
+
if (!IsObject(stmt) || NodeType(stmt) !== 'select')
|
|
184
192
|
return null;
|
|
185
|
-
if (
|
|
193
|
+
if (IsSetOperationRoot(stmt))
|
|
186
194
|
return null;
|
|
187
195
|
return stmt;
|
|
188
196
|
}
|
|
@@ -202,7 +210,7 @@ function fromSourceCount(stmt) {
|
|
|
202
210
|
function sourceRefsMatch(selectQualifier, refQualifier, singleSource) {
|
|
203
211
|
if (singleSource)
|
|
204
212
|
return true;
|
|
205
|
-
return
|
|
213
|
+
return IdentifiersEqual(selectQualifier, refQualifier);
|
|
206
214
|
}
|
|
207
215
|
/**
|
|
208
216
|
* Collects the table qualifiers of every reference to `column` inside an AST subtree, in encounter order.
|
|
@@ -214,12 +222,12 @@ function collectColumnQualifiers(node, column, found) {
|
|
|
214
222
|
collectColumnQualifiers(child, column, found);
|
|
215
223
|
return;
|
|
216
224
|
}
|
|
217
|
-
if (!
|
|
225
|
+
if (!IsObject(node))
|
|
218
226
|
return;
|
|
219
227
|
const qc = qualifiedColumn(node);
|
|
220
228
|
if (qc != null) {
|
|
221
|
-
if (
|
|
222
|
-
found.push(qc.
|
|
229
|
+
if (IdentifiersEqual(qc.column, column))
|
|
230
|
+
found.push(qc.Qualifier);
|
|
223
231
|
return; // a column_ref has no further column_ref descendants
|
|
224
232
|
}
|
|
225
233
|
for (const [k, v] of Object.entries(node)) {
|
|
@@ -255,7 +263,7 @@ function collectColumnQualifiers(node, column, found) {
|
|
|
255
263
|
*
|
|
256
264
|
* Pure — no DB/IO.
|
|
257
265
|
*/
|
|
258
|
-
export function
|
|
266
|
+
export function ProveFilterColumnBinding(opts) {
|
|
259
267
|
const { sql, dialect, filterColumn } = opts;
|
|
260
268
|
const refuse = (reason) => ({ provable: false, reason });
|
|
261
269
|
if (!sql || sql.trim().length === 0)
|
|
@@ -295,6 +303,10 @@ export function proveFilterColumnBinding(opts) {
|
|
|
295
303
|
}
|
|
296
304
|
return { provable: true };
|
|
297
305
|
}
|
|
306
|
+
/** @deprecated Use {@link ProveFilterColumnBinding}. */
|
|
307
|
+
export function proveFilterColumnBinding(opts) {
|
|
308
|
+
return ProveFilterColumnBinding(opts);
|
|
309
|
+
}
|
|
298
310
|
/**
|
|
299
311
|
* Resolves the single SELECT-list output column that a read-time filter on `filterColumn` would target,
|
|
300
312
|
* or the reason it is not provably that source column (wildcard projection, duplicate/absent name,
|
|
@@ -308,7 +320,7 @@ function resolveProvableOutputColumn(selectCols, filterColumn) {
|
|
|
308
320
|
if (selectCols.some((c) => c.OutputName === '*')) {
|
|
309
321
|
return no('the query projects a wildcard (SELECT *), so the output-to-source column mapping is unknown');
|
|
310
322
|
}
|
|
311
|
-
const matches = selectCols.filter((c) =>
|
|
323
|
+
const matches = selectCols.filter((c) => IdentifiersEqual(c.OutputName, filterColumn));
|
|
312
324
|
if (matches.length === 0) {
|
|
313
325
|
return no(`no SELECT-list output column is named "${filterColumn}"`);
|
|
314
326
|
}
|
|
@@ -319,7 +331,7 @@ function resolveProvableOutputColumn(selectCols, filterColumn) {
|
|
|
319
331
|
if (output.IsExpression) {
|
|
320
332
|
return no(`the output column "${filterColumn}" is a computed expression, not a plain projection of a source column`);
|
|
321
333
|
}
|
|
322
|
-
if (!
|
|
334
|
+
if (!IdentifiersEqual(output.SourceColumn, filterColumn)) {
|
|
323
335
|
return no(`the output column "${filterColumn}" is an ALIAS over source column "${output.SourceColumn}", so filtering the materialized "${filterColumn}" is not the same predicate as the live "${filterColumn}"`);
|
|
324
336
|
}
|
|
325
337
|
return { provable: true, column: output };
|
|
@@ -333,7 +345,7 @@ function resolveProvableOutputColumn(selectCols, filterColumn) {
|
|
|
333
345
|
* the key is built from the AST GROUP BY terms (not a SELECT-list split), so grouping expressions and
|
|
334
346
|
* grouped-but-unprojected columns both refuse rather than silently producing a too-narrow key.
|
|
335
347
|
*/
|
|
336
|
-
export function
|
|
348
|
+
export function DetectAggregationKeyColumns(opts) {
|
|
337
349
|
const { sql, dialect, fields } = opts;
|
|
338
350
|
if (!/\bgroup\s+by\b/i.test(sql))
|
|
339
351
|
return null; // no GROUP BY → not an aggregation key
|
|
@@ -359,7 +371,7 @@ export function detectAggregationKeyColumns(opts) {
|
|
|
359
371
|
const groupByTerms = extractGroupByTerms(root);
|
|
360
372
|
if (groupByTerms.length === 0 || !selectCols || selectCols.length === 0)
|
|
361
373
|
return null;
|
|
362
|
-
if (groupByTerms.some((t) =>
|
|
374
|
+
if (groupByTerms.some((t) => NodeType(t) !== 'column_ref'))
|
|
363
375
|
return null; // expression grouping → bail
|
|
364
376
|
if (!selectCols.some((c) => c.IsExpression))
|
|
365
377
|
return null; // no aggregate measure → not an aggregation
|
|
@@ -375,8 +387,8 @@ export function detectAggregationKeyColumns(opts) {
|
|
|
375
387
|
return null;
|
|
376
388
|
// The projected (non-expression) SELECT column whose pre-alias source column IS this grouping column.
|
|
377
389
|
const projected = selectCols.filter((c) => !c.IsExpression
|
|
378
|
-
&&
|
|
379
|
-
&& sourceRefsMatch(c.TableQualifier, gb.
|
|
390
|
+
&& IdentifiersEqual(c.SourceColumn, gb.column)
|
|
391
|
+
&& sourceRefsMatch(c.TableQualifier, gb.Qualifier, singleSource));
|
|
380
392
|
if (projected.length !== 1)
|
|
381
393
|
return null; // unprojected (0) or ambiguous (>1) → bail
|
|
382
394
|
const f = fieldByOutput.get(projected[0].OutputName.trim().toLowerCase());
|
|
@@ -386,6 +398,10 @@ export function detectAggregationKeyColumns(opts) {
|
|
|
386
398
|
}
|
|
387
399
|
return key.length > 0 ? key : null;
|
|
388
400
|
}
|
|
401
|
+
/** @deprecated Use {@link DetectAggregationKeyColumns}. */
|
|
402
|
+
export function detectAggregationKeyColumns(opts) {
|
|
403
|
+
return DetectAggregationKeyColumns(opts);
|
|
404
|
+
}
|
|
389
405
|
/**
|
|
390
406
|
* Phase 4: is an aggregation's measure set PURELY ADDITIVE (only SUM / plain COUNT)? Drives the
|
|
391
407
|
* refresh-strategy choice: additive keyed aggregations use the MERGE-upsert `Incremental` path
|
|
@@ -396,7 +412,7 @@ export function detectAggregationKeyColumns(opts) {
|
|
|
396
412
|
* then uses DirtyGroupRecompute, which is correct for all measure types). Regex-based because the SQL
|
|
397
413
|
* parser doesn't expose per-measure expression text; the bias is toward the safe (non-additive) answer.
|
|
398
414
|
*/
|
|
399
|
-
export function
|
|
415
|
+
export function DetectAdditiveMeasures(sql) {
|
|
400
416
|
if (!sql)
|
|
401
417
|
return false;
|
|
402
418
|
const s = sql.replace(/\s+/g, ' ');
|
|
@@ -412,4 +428,8 @@ export function detectAdditiveMeasures(sql) {
|
|
|
412
428
|
// Require at least one genuinely additive aggregate.
|
|
413
429
|
return /\b(SUM|COUNT)\s*\(/i.test(s);
|
|
414
430
|
}
|
|
431
|
+
/** @deprecated Use {@link DetectAdditiveMeasures}. */
|
|
432
|
+
export function detectAdditiveMeasures(sql) {
|
|
433
|
+
return DetectAdditiveMeasures(sql);
|
|
434
|
+
}
|
|
415
435
|
//# sourceMappingURL=materializationAnalysis.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materializationAnalysis.js","sourceRoot":"","sources":["../../src/Database/materializationAnalysis.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"materializationAnalysis.js","sourceRoot":"","sources":["../../src/Database/materializationAnalysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,9 +30,9 @@ import type { SQLParserDialect } from '@memberjunction/sql-dialect';
|
|
|
30
30
|
/** Outcome of stripping row-filter predicates from a rendered query. */
|
|
31
31
|
export interface BroadRenderResult {
|
|
32
32
|
/** The broad SQL (row-filter predicates removed). Equals the input when nothing was removed. */
|
|
33
|
-
|
|
33
|
+
Sql: string;
|
|
34
34
|
/** How many top-level conjunctive predicates on the row-filter columns were removed. */
|
|
35
|
-
|
|
35
|
+
RemovedCount: number;
|
|
36
36
|
/**
|
|
37
37
|
* True when `removedCount` does NOT equal the caller-supplied `expectedRemovals` (the number of
|
|
38
38
|
* row-filter *parameter* predicates the classifier identified). This means broad-render either
|
|
@@ -43,7 +43,7 @@ export interface BroadRenderResult {
|
|
|
43
43
|
* never would — the caller MUST refuse to materialize. Always false when `expectedRemovals` is
|
|
44
44
|
* omitted (the matcher makes no exact-count claim).
|
|
45
45
|
*/
|
|
46
|
-
|
|
46
|
+
Ambiguous: boolean;
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* Produces the broad source SQL for a row-filter materialization by removing the top-level
|
|
@@ -63,5 +63,7 @@ export interface BroadRenderResult {
|
|
|
63
63
|
* than silently broadened). Omit `expectedRemovals` to keep the legacy "strip all matches" behavior
|
|
64
64
|
* with `ambiguous` always false.
|
|
65
65
|
*/
|
|
66
|
+
export declare function BuildBroadRowFilterSQL(renderedSQL: string, rowFilterColumns: string[], dialect: SQLParserDialect, expectedRemovals?: number): BroadRenderResult;
|
|
67
|
+
/** @deprecated Use {@link BuildBroadRowFilterSQL}. */
|
|
66
68
|
export declare function buildBroadRowFilterSQL(renderedSQL: string, rowFilterColumns: string[], dialect: SQLParserDialect, expectedRemovals?: number): BroadRenderResult;
|
|
67
69
|
//# sourceMappingURL=materializationBroadRender.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materializationBroadRender.d.ts","sourceRoot":"","sources":["../../src/Database/materializationBroadRender.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAMpE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAC9B,gGAAgG;IAChG,GAAG,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;;;OASG;IACH,SAAS,EAAE,OAAO,CAAC;CACtB;AAsDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAClC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,CAAC,EAAE,MAAM,GAC1B,iBAAiB,CAoCnB"}
|
|
1
|
+
{"version":3,"file":"materializationBroadRender.d.ts","sourceRoot":"","sources":["../../src/Database/materializationBroadRender.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAMpE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAC9B,gGAAgG;IAChG,GAAG,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;;;OASG;IACH,SAAS,EAAE,OAAO,CAAC;CACtB;AAsDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAClC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,CAAC,EAAE,MAAM,GAC1B,iBAAiB,CAoCnB;AAED,sDAAsD;AACtD,wBAAgB,sBAAsB,CAClC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,CAAC,EAAE,MAAM,GAC1B,iBAAiB,CAEnB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SQLParser } from '@memberjunction/sql-parser';
|
|
2
|
-
import { COMPARISON_OPS,
|
|
2
|
+
import { COMPARISON_OPS, IsObject, NodeType, IsLiteralNode, ColumnName, IsAllLiteralBag, } from './materializationSqlAst.js';
|
|
3
3
|
/** Flattens a top-level AND-chain into its individual conjuncts (non-AND leaves). */
|
|
4
4
|
function collectConjuncts(node) {
|
|
5
|
-
if (
|
|
5
|
+
if (NodeType(node) === 'binary_expr' && IsObject(node) && node.operator === 'AND') {
|
|
6
6
|
return [...collectConjuncts(node.left), ...collectConjuncts(node.right)];
|
|
7
7
|
}
|
|
8
8
|
return [node];
|
|
@@ -13,22 +13,22 @@ function collectConjuncts(node) {
|
|
|
13
13
|
* literal / all-literal bag. Anything else (OR-expr, function, column=column, subquery) is kept.
|
|
14
14
|
*/
|
|
15
15
|
function isRemovablePredicate(conjunct, cols) {
|
|
16
|
-
if (
|
|
16
|
+
if (NodeType(conjunct) !== 'binary_expr' || !IsObject(conjunct)) {
|
|
17
17
|
return false;
|
|
18
18
|
}
|
|
19
19
|
const op = conjunct.operator;
|
|
20
20
|
if (typeof op !== 'string' || !COMPARISON_OPS.has(op)) {
|
|
21
21
|
return false;
|
|
22
22
|
}
|
|
23
|
-
const leftCol =
|
|
24
|
-
const rightCol =
|
|
23
|
+
const leftCol = ColumnName(conjunct.left);
|
|
24
|
+
const rightCol = ColumnName(conjunct.right);
|
|
25
25
|
const leftMatches = leftCol != null && cols.has(leftCol.trim().toLowerCase());
|
|
26
26
|
const rightMatches = rightCol != null && cols.has(rightCol.trim().toLowerCase());
|
|
27
27
|
if (leftMatches && !rightMatches) {
|
|
28
|
-
return
|
|
28
|
+
return IsLiteralNode(conjunct.right) || IsAllLiteralBag(conjunct.right);
|
|
29
29
|
}
|
|
30
30
|
if (rightMatches && !leftMatches) {
|
|
31
|
-
return
|
|
31
|
+
return IsLiteralNode(conjunct.left) || IsAllLiteralBag(conjunct.left);
|
|
32
32
|
}
|
|
33
33
|
return false;
|
|
34
34
|
}
|
|
@@ -46,7 +46,7 @@ function rebuildWhere(kept) {
|
|
|
46
46
|
/** Returns the sole statement of an AST, or null if it is not exactly one statement. */
|
|
47
47
|
function soleStatement(ast) {
|
|
48
48
|
const node = Array.isArray(ast) ? (ast.length === 1 ? ast[0] : null) : ast;
|
|
49
|
-
return
|
|
49
|
+
return IsObject(node) ? node : null;
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
52
|
* Produces the broad source SQL for a row-filter materialization by removing the top-level
|
|
@@ -66,12 +66,12 @@ function soleStatement(ast) {
|
|
|
66
66
|
* than silently broadened). Omit `expectedRemovals` to keep the legacy "strip all matches" behavior
|
|
67
67
|
* with `ambiguous` always false.
|
|
68
68
|
*/
|
|
69
|
-
export function
|
|
69
|
+
export function BuildBroadRowFilterSQL(renderedSQL, rowFilterColumns, dialect, expectedRemovals) {
|
|
70
70
|
// ambiguous is only ever asserted when the caller told us how many parameter predicates to expect.
|
|
71
71
|
const verdict = (sql, removedCount) => ({
|
|
72
|
-
sql,
|
|
73
|
-
removedCount,
|
|
74
|
-
|
|
72
|
+
Sql: sql,
|
|
73
|
+
RemovedCount: removedCount,
|
|
74
|
+
Ambiguous: expectedRemovals != null && removedCount !== expectedRemovals,
|
|
75
75
|
});
|
|
76
76
|
if (!rowFilterColumns || rowFilterColumns.length === 0) {
|
|
77
77
|
return verdict(renderedSQL, 0);
|
|
@@ -81,7 +81,7 @@ export function buildBroadRowFilterSQL(renderedSQL, rowFilterColumns, dialect, e
|
|
|
81
81
|
return verdict(renderedSQL, 0);
|
|
82
82
|
}
|
|
83
83
|
const stmt = soleStatement(parsed.ast);
|
|
84
|
-
if (stmt == null ||
|
|
84
|
+
if (stmt == null || NodeType(stmt) !== 'select' || stmt.where == null) {
|
|
85
85
|
return verdict(renderedSQL, 0);
|
|
86
86
|
}
|
|
87
87
|
const cols = new Set(rowFilterColumns.map((c) => c.trim().toLowerCase()));
|
|
@@ -101,4 +101,8 @@ export function buildBroadRowFilterSQL(renderedSQL, rowFilterColumns, dialect, e
|
|
|
101
101
|
const sql = SQLParser.SqlifyAST(parsed.ast, dialect);
|
|
102
102
|
return verdict(sql, removedCount);
|
|
103
103
|
}
|
|
104
|
+
/** @deprecated Use {@link BuildBroadRowFilterSQL}. */
|
|
105
|
+
export function buildBroadRowFilterSQL(renderedSQL, rowFilterColumns, dialect, expectedRemovals) {
|
|
106
|
+
return BuildBroadRowFilterSQL(renderedSQL, rowFilterColumns, dialect, expectedRemovals);
|
|
107
|
+
}
|
|
104
108
|
//# sourceMappingURL=materializationBroadRender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materializationBroadRender.js","sourceRoot":"","sources":["../../src/Database/materializationBroadRender.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"materializationBroadRender.js","sourceRoot":"","sources":["../../src/Database/materializationBroadRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EACH,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,GAEjF,MAAM,yBAAyB,CAAC;AAkDjC,qFAAqF;AACrF,SAAS,gBAAgB,CAAC,IAAa;IACnC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,aAAa,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAChF,OAAO,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,QAAiB,EAAE,IAAiB;IAC9D,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,aAAa,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAC7B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACjF,IAAI,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,OAAO,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,oFAAoF;AACpF,SAAS,YAAY,CAAC,IAAe;IACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAe,CAAC;IAC7F,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,wFAAwF;AACxF,SAAS,aAAa,CAAC,GAAY;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3E,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CAClC,WAAmB,EACnB,gBAA0B,EAC1B,OAAyB,EACzB,gBAAyB;IAEzB,mGAAmG;IACnG,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,YAAoB,EAAqB,EAAE,CAAC,CAAC;QACvE,GAAG,EAAE,GAAG;QACR,YAAY,EAAE,YAAY;QAC1B,SAAS,EAAE,gBAAgB,IAAI,IAAI,IAAI,YAAY,KAAK,gBAAgB;KAC3E,CAAC,CAAC;IACH,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QACpE,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACpD,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,4FAA4F;IAC5F,gGAAgG;IAChG,kGAAkG;IAClG,IAAI,gBAAgB,IAAI,IAAI,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;QAChE,OAAO,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAgD,EAAE,OAAO,CAAC,CAAC;IAClG,OAAO,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AACtC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,sBAAsB,CAClC,WAAmB,EACnB,gBAA0B,EAC1B,OAAyB,EACzB,gBAAyB;IAEzB,OAAO,sBAAsB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAC5F,CAAC"}
|
|
@@ -55,5 +55,7 @@ export interface MaterializationDriftVerdict {
|
|
|
55
55
|
* positives from incomplete provenance — the §10 bias runs the other way for drift (only flag on a
|
|
56
56
|
* definite broken dependency).
|
|
57
57
|
*/
|
|
58
|
+
export declare function EvaluateMaterializationDrift(facts: MaterializationDriftFacts): MaterializationDriftVerdict;
|
|
59
|
+
/** @deprecated Use {@link EvaluateMaterializationDrift}. */
|
|
58
60
|
export declare function evaluateMaterializationDrift(facts: MaterializationDriftFacts): MaterializationDriftVerdict;
|
|
59
61
|
//# sourceMappingURL=materializationDrift.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materializationDrift.d.ts","sourceRoot":"","sources":["../../src/Database/materializationDrift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,iGAAiG;AACjG,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,OAAO,GAAG,gBAAgB,CAAC;IACvC,yDAAyD;IACzD,QAAQ,CAAC,EAAE;QACP,6EAA6E;QAC7E,kBAAkB,EAAE,OAAO,CAAC;QAC5B,gDAAgD;QAChD,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,4FAA4F;QAC5F,mBAAmB,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC;IACF,8EAA8E;IAC9E,KAAK,CAAC,EAAE;QACJ,qEAAqE;QACrE,qBAAqB,EAAE,MAAM,EAAE,CAAC;QAChC,yGAAyG;QACzG,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,sFAAsF;QACtF,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC;kGAC0F;QAC1F,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B;iHACyG;QACzG,mBAAmB,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC;CACL;AAED,iDAAiD;AACjD,MAAM,WAAW,2BAA2B;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,yBAAyB,GAAG,2BAA2B,CA4D1G"}
|
|
1
|
+
{"version":3,"file":"materializationDrift.d.ts","sourceRoot":"","sources":["../../src/Database/materializationDrift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,iGAAiG;AACjG,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,OAAO,GAAG,gBAAgB,CAAC;IACvC,yDAAyD;IACzD,QAAQ,CAAC,EAAE;QACP,6EAA6E;QAC7E,kBAAkB,EAAE,OAAO,CAAC;QAC5B,gDAAgD;QAChD,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,4FAA4F;QAC5F,mBAAmB,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC;IACF,8EAA8E;IAC9E,KAAK,CAAC,EAAE;QACJ,qEAAqE;QACrE,qBAAqB,EAAE,MAAM,EAAE,CAAC;QAChC,yGAAyG;QACzG,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,sFAAsF;QACtF,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC;kGAC0F;QAC1F,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B;iHACyG;QACzG,mBAAmB,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC;CACL;AAED,iDAAiD;AACjD,MAAM,WAAW,2BAA2B;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,yBAAyB,GAAG,2BAA2B,CA4D1G;AAED,4DAA4D;AAC5D,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,yBAAyB,GAAG,2BAA2B,CAE1G"}
|
|
@@ -23,7 +23,7 @@ const lc = (s) => s.trim().toLowerCase();
|
|
|
23
23
|
* positives from incomplete provenance — the §10 bias runs the other way for drift (only flag on a
|
|
24
24
|
* definite broken dependency).
|
|
25
25
|
*/
|
|
26
|
-
export function
|
|
26
|
+
export function EvaluateMaterializationDrift(facts) {
|
|
27
27
|
if (facts.sourceType === 'EntityBaseView' && facts.baseView) {
|
|
28
28
|
const bv = facts.baseView;
|
|
29
29
|
if (!bv.sourceEntityExists) {
|
|
@@ -82,4 +82,8 @@ export function evaluateMaterializationDrift(facts) {
|
|
|
82
82
|
}
|
|
83
83
|
return { drift: false };
|
|
84
84
|
}
|
|
85
|
+
/** @deprecated Use {@link EvaluateMaterializationDrift}. */
|
|
86
|
+
export function evaluateMaterializationDrift(facts) {
|
|
87
|
+
return EvaluateMaterializationDrift(facts);
|
|
88
|
+
}
|
|
85
89
|
//# sourceMappingURL=materializationDrift.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materializationDrift.js","sourceRoot":"","sources":["../../src/Database/materializationDrift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAqCH,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAgC;IACzE,IAAI,KAAK,CAAC,UAAU,KAAK,gBAAgB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;YACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;QACrE,CAAC;QACD,0FAA0F;QAC1F,mGAAmG;QACnG,kGAAkG;QAClG,+FAA+F;QAC/F,2GAA2G;QAC3G,IAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO;gBACH,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,2DAA2D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;aAC1I,CAAC;QACN,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACzJ,CAAC;QACD,IAAI,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1J,CAAC;QACD,IAAI,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAClK,CAAC;QACD,wGAAwG;QACxG,sGAAsG;QACtG,mGAAmG;QACnG,uGAAuG;QACvG,yGAAyG;QACzG,sDAAsD;QACtD,IAAI,CAAC,CAAC,oBAAoB,CAAC,MAAM,IAAI,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO;oBACH,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,6DAA6D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD;iBACzL,CAAC;YACN,CAAC;QACL,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"materializationDrift.js","sourceRoot":"","sources":["../../src/Database/materializationDrift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAqCH,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAgC;IACzE,IAAI,KAAK,CAAC,UAAU,KAAK,gBAAgB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;YACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;QACrE,CAAC;QACD,0FAA0F;QAC1F,mGAAmG;QACnG,kGAAkG;QAClG,+FAA+F;QAC/F,2GAA2G;QAC3G,IAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO;gBACH,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,2DAA2D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;aAC1I,CAAC;QACN,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACzJ,CAAC;QACD,IAAI,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1J,CAAC;QACD,IAAI,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAClK,CAAC;QACD,wGAAwG;QACxG,sGAAsG;QACtG,mGAAmG;QACnG,uGAAuG;QACvG,yGAAyG;QACzG,sDAAsD;QACtD,IAAI,CAAC,CAAC,oBAAoB,CAAC,MAAM,IAAI,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO;oBACH,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,6DAA6D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD;iBACzL,CAAC;YACN,CAAC;QACL,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,4BAA4B,CAAC,KAAgC;IACzE,OAAO,4BAA4B,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -44,9 +44,9 @@ export interface ParamVerdict {
|
|
|
44
44
|
/** Result of classifying all of a query's parameters. */
|
|
45
45
|
export interface QueryParamClassification {
|
|
46
46
|
/** The overall qualification (drives whether/how the query materializes). */
|
|
47
|
-
|
|
47
|
+
Qualification: ParamQualification;
|
|
48
48
|
/** Per-parameter verdicts, in declaration order (for precise logs). */
|
|
49
|
-
|
|
49
|
+
PerParam: ParamVerdict[];
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
52
|
* Generates ≥2 distinct probe values for a parameter type. Booleans have `[true, false]`. String/number/date
|
|
@@ -65,8 +65,12 @@ export interface QueryParamClassification {
|
|
|
65
65
|
* covered by this structural probe. A falsy value that breaks the template render fails safe (→ Unbounded →
|
|
66
66
|
* refused). Truthy values are kept FIRST so the held baseline is unaffected (holdValue is independent).
|
|
67
67
|
*/
|
|
68
|
+
export declare function ProbeValues(type: QueryParamType): unknown[];
|
|
69
|
+
/** @deprecated Use {@link ProbeValues}. */
|
|
68
70
|
export declare function probeValues(type: QueryParamType): unknown[];
|
|
69
71
|
/** Builds the base value map with every parameter held at its stable value. */
|
|
72
|
+
export declare function BuildHeldValues(params: QueryParamDef[]): Record<string, unknown>;
|
|
73
|
+
/** @deprecated Use {@link BuildHeldValues}. */
|
|
70
74
|
export declare function buildHeldValues(params: QueryParamDef[]): Record<string, unknown>;
|
|
71
75
|
/**
|
|
72
76
|
* Classifies every parameter of a query and folds the verdicts into the overall qualification.
|
|
@@ -79,6 +83,17 @@ export declare function buildHeldValues(params: QueryParamDef[]): Record<string,
|
|
|
79
83
|
* (off by default) *and* a domain is supplied, which it never is here → structural ⇒ refuse. This is
|
|
80
84
|
* intentional: per-value caching is a later phase.
|
|
81
85
|
*/
|
|
86
|
+
export declare function ClassifyQueryParameters(opts: {
|
|
87
|
+
queryName: string;
|
|
88
|
+
params: QueryParamDef[];
|
|
89
|
+
outputColumns: string[];
|
|
90
|
+
dialect: SQLParserDialect;
|
|
91
|
+
render: VariantRenderer;
|
|
92
|
+
allowPerValueCache?: boolean;
|
|
93
|
+
/** Phase-2 enablement for Bucket-1 row-filter broad materialization (default false → refuse, stay live-only). */
|
|
94
|
+
allowRowFilterBroad?: boolean;
|
|
95
|
+
}): QueryParamClassification;
|
|
96
|
+
/** @deprecated Use {@link ClassifyQueryParameters}. */
|
|
82
97
|
export declare function classifyQueryParameters(opts: {
|
|
83
98
|
queryName: string;
|
|
84
99
|
params: QueryParamDef[];
|