@powersync/service-sync-rules 0.29.9 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/dist/BaseSqlDataQuery.d.ts +3 -9
  2. package/dist/BaseSqlDataQuery.js +11 -21
  3. package/dist/BaseSqlDataQuery.js.map +1 -1
  4. package/dist/BucketParameterQuerier.d.ts +42 -9
  5. package/dist/BucketParameterQuerier.js +30 -7
  6. package/dist/BucketParameterQuerier.js.map +1 -1
  7. package/dist/BucketSource.d.ts +94 -25
  8. package/dist/BucketSource.js +67 -0
  9. package/dist/BucketSource.js.map +1 -1
  10. package/dist/ExpressionType.d.ts +4 -2
  11. package/dist/ExpressionType.js.map +1 -1
  12. package/dist/HydratedSyncRules.d.ts +46 -0
  13. package/dist/HydratedSyncRules.js +88 -0
  14. package/dist/HydratedSyncRules.js.map +1 -0
  15. package/dist/HydrationState.d.ts +45 -0
  16. package/dist/HydrationState.js +41 -0
  17. package/dist/HydrationState.js.map +1 -0
  18. package/dist/SqlBucketDescriptor.d.ts +31 -28
  19. package/dist/SqlBucketDescriptor.js +89 -112
  20. package/dist/SqlBucketDescriptor.js.map +1 -1
  21. package/dist/SqlDataQuery.d.ts +4 -4
  22. package/dist/SqlDataQuery.js +5 -6
  23. package/dist/SqlDataQuery.js.map +1 -1
  24. package/dist/SqlParameterQuery.d.ts +17 -9
  25. package/dist/SqlParameterQuery.js +49 -23
  26. package/dist/SqlParameterQuery.js.map +1 -1
  27. package/dist/SqlSyncRules.d.ts +13 -29
  28. package/dist/SqlSyncRules.js +48 -77
  29. package/dist/SqlSyncRules.js.map +1 -1
  30. package/dist/StaticSqlParameterQuery.d.ts +13 -3
  31. package/dist/StaticSqlParameterQuery.js +38 -4
  32. package/dist/StaticSqlParameterQuery.js.map +1 -1
  33. package/dist/TablePattern.d.ts +4 -1
  34. package/dist/TablePattern.js +11 -0
  35. package/dist/TablePattern.js.map +1 -1
  36. package/dist/TableValuedFunctionSqlParameterQuery.d.ts +14 -4
  37. package/dist/TableValuedFunctionSqlParameterQuery.js +41 -7
  38. package/dist/TableValuedFunctionSqlParameterQuery.js.map +1 -1
  39. package/dist/compatibility.d.ts +23 -1
  40. package/dist/compatibility.js +32 -4
  41. package/dist/compatibility.js.map +1 -1
  42. package/dist/compiler/bucket_resolver.d.ts +70 -0
  43. package/dist/compiler/bucket_resolver.js +131 -0
  44. package/dist/compiler/bucket_resolver.js.map +1 -0
  45. package/dist/compiler/compatibility.d.ts +16 -0
  46. package/dist/compiler/compatibility.js +12 -0
  47. package/dist/compiler/compatibility.js.map +1 -0
  48. package/dist/compiler/compiler.d.ts +104 -0
  49. package/dist/compiler/compiler.js +113 -0
  50. package/dist/compiler/compiler.js.map +1 -0
  51. package/dist/compiler/equality.d.ts +99 -0
  52. package/dist/compiler/equality.js +284 -0
  53. package/dist/compiler/equality.js.map +1 -0
  54. package/dist/compiler/expression.d.ts +77 -0
  55. package/dist/compiler/expression.js +122 -0
  56. package/dist/compiler/expression.js.map +1 -0
  57. package/dist/compiler/filter.d.ts +71 -0
  58. package/dist/compiler/filter.js +110 -0
  59. package/dist/compiler/filter.js.map +1 -0
  60. package/dist/compiler/filter_simplifier.d.ts +26 -0
  61. package/dist/compiler/filter_simplifier.js +119 -0
  62. package/dist/compiler/filter_simplifier.js.map +1 -0
  63. package/dist/compiler/ir_to_sync_plan.d.ts +37 -0
  64. package/dist/compiler/ir_to_sync_plan.js +163 -0
  65. package/dist/compiler/ir_to_sync_plan.js.map +1 -0
  66. package/dist/compiler/parser.d.ts +99 -0
  67. package/dist/compiler/parser.js +556 -0
  68. package/dist/compiler/parser.js.map +1 -0
  69. package/dist/compiler/querier_graph.d.ts +42 -0
  70. package/dist/compiler/querier_graph.js +365 -0
  71. package/dist/compiler/querier_graph.js.map +1 -0
  72. package/dist/compiler/rows.d.ts +113 -0
  73. package/dist/compiler/rows.js +156 -0
  74. package/dist/compiler/rows.js.map +1 -0
  75. package/dist/compiler/scope.d.ts +22 -0
  76. package/dist/compiler/scope.js +47 -0
  77. package/dist/compiler/scope.js.map +1 -0
  78. package/dist/compiler/sqlite.d.ts +77 -0
  79. package/dist/compiler/sqlite.js +412 -0
  80. package/dist/compiler/sqlite.js.map +1 -0
  81. package/dist/compiler/table.d.ts +67 -0
  82. package/dist/compiler/table.js +67 -0
  83. package/dist/compiler/table.js.map +1 -0
  84. package/dist/errors.d.ts +4 -2
  85. package/dist/errors.js +16 -1
  86. package/dist/errors.js.map +1 -1
  87. package/dist/events/SqlEventDescriptor.js +1 -1
  88. package/dist/events/SqlEventDescriptor.js.map +1 -1
  89. package/dist/events/SqlEventSourceQuery.d.ts +1 -1
  90. package/dist/events/SqlEventSourceQuery.js +1 -2
  91. package/dist/events/SqlEventSourceQuery.js.map +1 -1
  92. package/dist/index.d.ts +8 -0
  93. package/dist/index.js +8 -0
  94. package/dist/index.js.map +1 -1
  95. package/dist/json_schema.js +5 -1
  96. package/dist/json_schema.js.map +1 -1
  97. package/dist/request_functions.js +1 -1
  98. package/dist/request_functions.js.map +1 -1
  99. package/dist/schema-generators/SchemaGenerator.d.ts +5 -0
  100. package/dist/schema-generators/SchemaGenerator.js +21 -14
  101. package/dist/schema-generators/SchemaGenerator.js.map +1 -1
  102. package/dist/sql_functions.d.ts +2 -1
  103. package/dist/sql_functions.js +1 -1
  104. package/dist/sql_functions.js.map +1 -1
  105. package/dist/streams/filter.d.ts +34 -4
  106. package/dist/streams/filter.js +93 -23
  107. package/dist/streams/filter.js.map +1 -1
  108. package/dist/streams/from_sql.js +2 -5
  109. package/dist/streams/from_sql.js.map +1 -1
  110. package/dist/streams/parameter.d.ts +7 -6
  111. package/dist/streams/stream.d.ts +25 -15
  112. package/dist/streams/stream.js +59 -87
  113. package/dist/streams/stream.js.map +1 -1
  114. package/dist/streams/variant.d.ts +14 -21
  115. package/dist/streams/variant.js +68 -46
  116. package/dist/streams/variant.js.map +1 -1
  117. package/dist/sync_plan/engine/javascript.d.ts +6 -0
  118. package/dist/sync_plan/engine/javascript.js +208 -0
  119. package/dist/sync_plan/engine/javascript.js.map +1 -0
  120. package/dist/sync_plan/engine/scalar_expression_engine.d.ts +48 -0
  121. package/dist/sync_plan/engine/scalar_expression_engine.js +99 -0
  122. package/dist/sync_plan/engine/scalar_expression_engine.js.map +1 -0
  123. package/dist/sync_plan/engine/sqlite.d.ts +12 -0
  124. package/dist/sync_plan/engine/sqlite.js +53 -0
  125. package/dist/sync_plan/engine/sqlite.js.map +1 -0
  126. package/dist/sync_plan/evaluator/bucket_data_source.d.ts +23 -0
  127. package/dist/sync_plan/evaluator/bucket_data_source.js +137 -0
  128. package/dist/sync_plan/evaluator/bucket_data_source.js.map +1 -0
  129. package/dist/sync_plan/evaluator/bucket_source.d.ts +19 -0
  130. package/dist/sync_plan/evaluator/bucket_source.js +145 -0
  131. package/dist/sync_plan/evaluator/bucket_source.js.map +1 -0
  132. package/dist/sync_plan/evaluator/index.d.ts +7 -0
  133. package/dist/sync_plan/evaluator/index.js +26 -0
  134. package/dist/sync_plan/evaluator/index.js.map +1 -0
  135. package/dist/sync_plan/evaluator/parameter_evaluator.d.ts +138 -0
  136. package/dist/sync_plan/evaluator/parameter_evaluator.js +359 -0
  137. package/dist/sync_plan/evaluator/parameter_evaluator.js.map +1 -0
  138. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.d.ts +19 -0
  139. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js +62 -0
  140. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js.map +1 -0
  141. package/dist/sync_plan/expression.d.ts +109 -0
  142. package/dist/sync_plan/expression.js +85 -0
  143. package/dist/sync_plan/expression.js.map +1 -0
  144. package/dist/sync_plan/expression_to_sql.d.ts +43 -0
  145. package/dist/sync_plan/expression_to_sql.js +190 -0
  146. package/dist/sync_plan/expression_to_sql.js.map +1 -0
  147. package/dist/sync_plan/expression_visitor.d.ts +57 -0
  148. package/dist/sync_plan/expression_visitor.js +181 -0
  149. package/dist/sync_plan/expression_visitor.js.map +1 -0
  150. package/dist/sync_plan/plan.d.ts +196 -0
  151. package/dist/sync_plan/plan.js +2 -0
  152. package/dist/sync_plan/plan.js.map +1 -0
  153. package/dist/sync_plan/schema_inference.d.ts +15 -0
  154. package/dist/sync_plan/schema_inference.js +121 -0
  155. package/dist/sync_plan/schema_inference.js.map +1 -0
  156. package/dist/sync_plan/serialize.d.ts +82 -0
  157. package/dist/sync_plan/serialize.js +209 -0
  158. package/dist/sync_plan/serialize.js.map +1 -0
  159. package/dist/types/custom_sqlite_value.d.ts +1 -1
  160. package/dist/types/time.d.ts +24 -5
  161. package/dist/types/time.js +67 -12
  162. package/dist/types/time.js.map +1 -1
  163. package/dist/types.d.ts +52 -24
  164. package/dist/types.js +4 -1
  165. package/dist/types.js.map +1 -1
  166. package/dist/utils.d.ts +9 -2
  167. package/dist/utils.js +26 -3
  168. package/dist/utils.js.map +1 -1
  169. package/package.json +4 -3
  170. package/schema/sync_rules.json +9 -0
@@ -1,16 +1,18 @@
1
1
  import { isScalar, LineCounter, parseDocument, Scalar, YAMLMap, YAMLSeq } from 'yaml';
2
2
  import { isValidPriority } from './BucketDescription.js';
3
- import { mergeBucketParameterQueriers } from './BucketParameterQuerier.js';
3
+ import { CompatibilityContext, CompatibilityEdition, CompatibilityOption, TimeValuePrecision } from './compatibility.js';
4
4
  import { SqlRuleError, SyncRulesErrors, YamlError } from './errors.js';
5
5
  import { SqlEventDescriptor } from './events/SqlEventDescriptor.js';
6
+ import { HydratedSyncRules } from './HydratedSyncRules.js';
7
+ import { DEFAULT_HYDRATION_STATE } from './HydrationState.js';
6
8
  import { validateSyncRulesSchema } from './json_schema.js';
7
9
  import { SqlBucketDescriptor } from './SqlBucketDescriptor.js';
8
- import { isEvaluatedParameters, isEvaluatedRow, isEvaluationError } from './types.js';
9
10
  import { syncStreamFromSql } from './streams/from_sql.js';
10
- import { CompatibilityContext, CompatibilityEdition, CompatibilityOption } from './compatibility.js';
11
11
  import { applyRowContext } from './utils.js';
12
12
  const ACCEPT_POTENTIALLY_DANGEROUS_QUERIES = Symbol('ACCEPT_POTENTIALLY_DANGEROUS_QUERIES');
13
13
  export class SqlSyncRules {
14
+ bucketDataSources = [];
15
+ bucketParameterLookupSources = [];
14
16
  bucketSources = [];
15
17
  eventDescriptors = [];
16
18
  compatibility = CompatibilityContext.FULL_BACKWARDS_COMPATIBILITY;
@@ -64,14 +66,21 @@ export class SqlSyncRules {
64
66
  if (declaredOptions != null) {
65
67
  const edition = (declaredOptions.get('edition') ?? CompatibilityEdition.LEGACY);
66
68
  const options = new Map();
69
+ let maxTimeValuePrecision = undefined;
67
70
  for (const entry of declaredOptions.items) {
68
71
  const { key: { value: key }, value: { value } } = entry;
72
+ if (key == 'timestamp_max_precision') {
73
+ maxTimeValuePrecision = TimeValuePrecision.byName[value];
74
+ }
69
75
  const option = CompatibilityOption.byName[key];
70
76
  if (option) {
71
77
  options.set(option, value);
72
78
  }
73
79
  }
74
- compatibility = new CompatibilityContext(edition, options);
80
+ compatibility = new CompatibilityContext({ edition, overrides: options, maxTimeValuePrecision });
81
+ if (maxTimeValuePrecision && !compatibility.isEnabled(CompatibilityOption.timestampsIso8601)) {
82
+ rules.errors.push(new YamlError(new Error(`'timestamp_max_precision' requires 'timestamps_iso8601' to be enabled.`)));
83
+ }
75
84
  rules.compatibility = compatibility;
76
85
  }
77
86
  // Bucket definitions using explicit parameter and data queries.
@@ -139,6 +148,8 @@ export class SqlSyncRules {
139
148
  });
140
149
  }
141
150
  rules.bucketSources.push(descriptor);
151
+ rules.bucketDataSources.push(...descriptor.dataSources);
152
+ rules.bucketParameterLookupSources.push(...descriptor.parameterIndexLookupCreators);
142
153
  }
143
154
  for (const entry of streamMap?.items ?? []) {
144
155
  const { key: keyScalar, value } = entry;
@@ -159,6 +170,8 @@ export class SqlSyncRules {
159
170
  rules.withScalar(data, (q) => {
160
171
  const [parsed, errors] = syncStreamFromSql(key, q, queryOptions);
161
172
  rules.bucketSources.push(parsed);
173
+ rules.bucketDataSources.push(...parsed.dataSources);
174
+ rules.bucketParameterLookupSources.push(...parsed.parameterIndexLookupCreators);
162
175
  return {
163
176
  parsed: true,
164
177
  errors
@@ -259,80 +272,38 @@ export class SqlSyncRules {
259
272
  constructor(content) {
260
273
  this.content = content;
261
274
  }
262
- applyRowContext(source) {
263
- return applyRowContext(source, this.compatibility);
264
- }
265
275
  /**
266
- * Throws errors.
276
+ * Hydrate the sync rule definitions with persisted state into runnable sync rules.
277
+ *
278
+ * @param params.hydrationState Transforms bucket ids based on persisted state. May omit for tests.
267
279
  */
268
- evaluateRow(options) {
269
- const { results, errors } = this.evaluateRowWithErrors(options);
270
- if (errors.length > 0) {
271
- throw new Error(errors[0].error);
272
- }
273
- return results;
274
- }
275
- evaluateRowWithErrors(options) {
276
- const resolvedOptions = this.compatibility.isEnabled(CompatibilityOption.versionedBucketIds)
277
- ? options
278
- : {
279
- ...options,
280
- // Disable bucket id transformer when the option is unused.
281
- bucketIdTransformer: (id) => id
282
- };
283
- let rawResults = [];
284
- for (let source of this.bucketSources) {
285
- rawResults.push(...source.evaluateRow(resolvedOptions));
286
- }
287
- const results = rawResults.filter(isEvaluatedRow);
288
- const errors = rawResults.filter(isEvaluationError);
289
- return { results, errors };
290
- }
291
- /**
292
- * Throws errors.
293
- */
294
- evaluateParameterRow(table, row) {
295
- const { results, errors } = this.evaluateParameterRowWithErrors(table, row);
296
- if (errors.length > 0) {
297
- throw new Error(errors[0].error);
298
- }
299
- return results;
300
- }
301
- evaluateParameterRowWithErrors(table, row) {
302
- let rawResults = [];
303
- for (let source of this.bucketSources) {
304
- rawResults.push(...source.evaluateParameterRow(table, row));
280
+ hydrate(params) {
281
+ let hydrationState = params?.hydrationState;
282
+ if (hydrationState == null || !this.compatibility.isEnabled(CompatibilityOption.versionedBucketIds)) {
283
+ hydrationState = DEFAULT_HYDRATION_STATE;
305
284
  }
306
- const results = rawResults.filter(isEvaluatedParameters);
307
- const errors = rawResults.filter(isEvaluationError);
308
- return { results, errors };
309
- }
310
- getBucketParameterQuerier(options) {
311
- const resolvedOptions = this.compatibility.isEnabled(CompatibilityOption.versionedBucketIds)
312
- ? options
313
- : {
314
- ...options,
315
- // Disable bucket id transformer when the option is unused.
316
- bucketIdTransformer: (id) => id
317
- };
318
- const queriers = [];
319
- const errors = [];
320
- const pending = { queriers, errors };
321
- for (const source of this.bucketSources) {
322
- if ((source.subscribedToByDefault && resolvedOptions.hasDefaultStreams) ||
323
- source.name in resolvedOptions.streams) {
324
- source.pushBucketParameterQueriers(pending, resolvedOptions);
325
- }
326
- }
327
- const querier = mergeBucketParameterQueriers(queriers);
328
- return { querier, errors };
285
+ const resolvedParams = { hydrationState };
286
+ return new HydratedSyncRules({
287
+ definition: this,
288
+ createParams: resolvedParams,
289
+ bucketDataSources: this.bucketDataSources,
290
+ bucketParameterIndexLookupCreators: this.bucketParameterLookupSources,
291
+ eventDescriptors: this.eventDescriptors,
292
+ compatibility: this.compatibility
293
+ });
329
294
  }
330
- hasDynamicBucketQueries() {
331
- return this.bucketSources.some((s) => s.hasDynamicBucketQueries());
295
+ applyRowContext(source) {
296
+ return applyRowContext(source, this.compatibility);
332
297
  }
333
298
  getSourceTables() {
334
299
  const sourceTables = new Map();
335
- for (const bucket of this.bucketSources) {
300
+ for (const bucket of this.bucketDataSources) {
301
+ for (const r of bucket.getSourceTables()) {
302
+ const key = `${r.connectionTag}.${r.schema}.${r.tablePattern}`;
303
+ sourceTables.set(key, r);
304
+ }
305
+ }
306
+ for (const bucket of this.bucketParameterLookupSources) {
336
307
  for (const r of bucket.getSourceTables()) {
337
308
  const key = `${r.connectionTag}.${r.schema}.${r.tablePattern}`;
338
309
  sourceTables.set(key, r);
@@ -360,18 +331,21 @@ export class SqlSyncRules {
360
331
  return this.eventDescriptors.some((bucket) => bucket.tableTriggersEvent(table));
361
332
  }
362
333
  tableSyncsData(table) {
363
- return this.bucketSources.some((b) => b.tableSyncsData(table));
334
+ return this.bucketDataSources.some((b) => b.tableSyncsData(table));
364
335
  }
365
336
  tableSyncsParameters(table) {
366
- return this.bucketSources.some((b) => b.tableSyncsParameters(table));
337
+ return this.bucketParameterLookupSources.some((b) => b.tableSyncsParameters(table));
367
338
  }
368
339
  debugGetOutputTables() {
369
340
  let result = {};
370
- for (let bucket of this.bucketSources) {
341
+ for (let bucket of this.bucketDataSources) {
371
342
  bucket.debugWriteOutputTables(result);
372
343
  }
373
344
  return result;
374
345
  }
346
+ debugRepresentation() {
347
+ return this.bucketSources.map((rules) => rules.debugRepresentation());
348
+ }
375
349
  parsePriority(value) {
376
350
  if (value.has('priority')) {
377
351
  const priorityValue = value.get('priority', true);
@@ -383,8 +357,5 @@ export class SqlSyncRules {
383
357
  }
384
358
  }
385
359
  }
386
- static versionedBucketIdTransformer(version) {
387
- return (bucketId) => `${version}#${bucketId}`;
388
- }
389
360
  }
390
361
  //# sourceMappingURL=SqlSyncRules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqlSyncRules.js","sourceRoot":"","sources":["../src/SqlSyncRules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlSyncRules.js","sourceRoot":"","sources":["../src/SqlSyncRules.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
1
  import { SelectFromStatement } from 'pgsql-ast-parser';
2
2
  import { BucketDescription, BucketPriority } from './BucketDescription.js';
3
+ import { CreateSourceParams } from './BucketSource.js';
3
4
  import { SqlRuleError } from './errors.js';
4
- import { BucketIdTransformer, ParameterValueClause, QueryParseOptions, RequestParameters } from './types.js';
5
+ import { BucketDataScope } from './HydrationState.js';
6
+ import { BucketDataSource, BucketParameterQuerierSource } from './index.js';
7
+ import { SourceTableInterface } from './SourceTableInterface.js';
8
+ import { TablePattern } from './TablePattern.js';
9
+ import { ParameterValueClause, QueryParseOptions, RequestParameters } from './types.js';
5
10
  export interface StaticSqlParameterQueryOptions {
6
11
  sql: string;
7
12
  parameterExtractors: Record<string, ParameterValueClause>;
@@ -10,6 +15,7 @@ export interface StaticSqlParameterQueryOptions {
10
15
  bucketParameters: string[];
11
16
  queryId: string;
12
17
  filter: ParameterValueClause | undefined;
18
+ querierDataSource: BucketDataSource;
13
19
  errors?: SqlRuleError[];
14
20
  }
15
21
  /**
@@ -19,7 +25,7 @@ export interface StaticSqlParameterQueryOptions {
19
25
  * SELECT token_parameters.user_id as user_id WHERE token_parameters.is_admin
20
26
  */
21
27
  export declare class StaticSqlParameterQuery {
22
- static fromSql(descriptorName: string, sql: string, q: SelectFromStatement, options: QueryParseOptions, queryId: string): StaticSqlParameterQuery;
28
+ static fromSql(descriptorName: string, sql: string, q: SelectFromStatement, options: QueryParseOptions, queryId: string, querierDataSource: BucketDataSource): StaticSqlParameterQuery;
23
29
  /**
24
30
  * Raw source sql query, for debugging purposes.
25
31
  */
@@ -55,9 +61,13 @@ export declare class StaticSqlParameterQuery {
55
61
  * undefined if the clause is not valid.
56
62
  */
57
63
  readonly filter: ParameterValueClause | undefined;
64
+ readonly querierDataSource: BucketDataSource;
58
65
  readonly errors: SqlRuleError[];
59
66
  constructor(options: StaticSqlParameterQueryOptions);
60
- getStaticBucketDescriptions(parameters: RequestParameters, transformer: BucketIdTransformer): BucketDescription[];
67
+ getSourceTables(): Set<TablePattern>;
68
+ tableSyncsParameters(_table: SourceTableInterface): boolean;
69
+ createParameterQuerierSource(params: CreateSourceParams): BucketParameterQuerierSource;
70
+ getStaticBucketDescriptions(parameters: RequestParameters, bucketSourceScope: BucketDataScope): BucketDescription[];
61
71
  get hasAuthenticatedBucketParameters(): boolean;
62
72
  get usesUnauthenticatedRequestParameters(): boolean;
63
73
  get usesDangerousRequestParameters(): boolean;
@@ -2,7 +2,7 @@ import { DEFAULT_BUCKET_PRIORITY } from './BucketDescription.js';
2
2
  import { SqlRuleError } from './errors.js';
3
3
  import { AvailableTable, SqlTools } from './sql_filters.js';
4
4
  import { checkUnsupportedFeatures, isClauseError, sqliteBool } from './sql_support.js';
5
- import { getBucketId, isJsonValue } from './utils.js';
5
+ import { buildBucketName, isJsonValue, serializeBucketParameters } from './utils.js';
6
6
  import { DetectRequestParameters } from './validators.js';
7
7
  /**
8
8
  * Represents a bucket parameter query without any tables, e.g.:
@@ -11,7 +11,7 @@ import { DetectRequestParameters } from './validators.js';
11
11
  * SELECT token_parameters.user_id as user_id WHERE token_parameters.is_admin
12
12
  */
13
13
  export class StaticSqlParameterQuery {
14
- static fromSql(descriptorName, sql, q, options, queryId) {
14
+ static fromSql(descriptorName, sql, q, options, queryId, querierDataSource) {
15
15
  let errors = [];
16
16
  errors.push(...checkUnsupportedFeatures(sql, q));
17
17
  const tools = new SqlTools({
@@ -58,6 +58,7 @@ export class StaticSqlParameterQuery {
58
58
  priority: priority ?? DEFAULT_BUCKET_PRIORITY,
59
59
  filter: isClauseError(filter) ? undefined : filter,
60
60
  queryId,
61
+ querierDataSource,
61
62
  errors
62
63
  });
63
64
  if (query.usesDangerousRequestParameters && !options?.accept_potentially_dangerous_queries) {
@@ -102,6 +103,7 @@ export class StaticSqlParameterQuery {
102
103
  * undefined if the clause is not valid.
103
104
  */
104
105
  filter;
106
+ querierDataSource;
105
107
  errors;
106
108
  constructor(options) {
107
109
  this.sql = options.sql;
@@ -111,9 +113,40 @@ export class StaticSqlParameterQuery {
111
113
  this.bucketParameters = options.bucketParameters;
112
114
  this.queryId = options.queryId;
113
115
  this.filter = options.filter;
116
+ this.querierDataSource = options.querierDataSource;
114
117
  this.errors = options.errors ?? [];
115
118
  }
116
- getStaticBucketDescriptions(parameters, transformer) {
119
+ getSourceTables() {
120
+ return new Set();
121
+ }
122
+ tableSyncsParameters(_table) {
123
+ return false;
124
+ }
125
+ createParameterQuerierSource(params) {
126
+ const hydrationState = params.hydrationState;
127
+ const bucketScope = hydrationState.getBucketSourceScope(this.querierDataSource);
128
+ return {
129
+ pushBucketParameterQueriers: (result, options) => {
130
+ const staticBuckets = this.getStaticBucketDescriptions(options.globalParameters, bucketScope).map((desc) => {
131
+ return {
132
+ ...desc,
133
+ definition: this.descriptorName,
134
+ inclusion_reasons: ['default']
135
+ };
136
+ });
137
+ if (staticBuckets.length == 0) {
138
+ return;
139
+ }
140
+ const staticQuerier = {
141
+ staticBuckets,
142
+ hasDynamicBuckets: false,
143
+ queryDynamicBucketDescriptions: async () => []
144
+ };
145
+ result.queriers.push(staticQuerier);
146
+ }
147
+ };
148
+ }
149
+ getStaticBucketDescriptions(parameters, bucketSourceScope) {
117
150
  if (this.filter == null) {
118
151
  // Error in filter clause
119
152
  return [];
@@ -134,9 +167,10 @@ export class StaticSqlParameterQuery {
134
167
  return [];
135
168
  }
136
169
  }
170
+ const serializedParamters = serializeBucketParameters(this.bucketParameters, result);
137
171
  return [
138
172
  {
139
- bucket: getBucketId(this.descriptorName, this.bucketParameters, result, transformer),
173
+ bucket: buildBucketName(bucketSourceScope, serializedParamters),
140
174
  priority: this.priority
141
175
  }
142
176
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"StaticSqlParameterQuery.js","sourceRoot":"","sources":["../src/StaticSqlParameterQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StaticSqlParameterQuery.js","sourceRoot":"","sources":["../src/StaticSqlParameterQuery.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
+ import { Equatable, StableHasher } from './compiler/equality.js';
1
2
  import { SourceTableInterface } from './SourceTableInterface.js';
2
3
  export declare const DEFAULT_TAG = "default";
3
4
  /**
4
5
  * Some pattern matching SourceTables.
5
6
  */
6
- export declare class TablePattern {
7
+ export declare class TablePattern implements Equatable {
7
8
  readonly connectionTag: string;
8
9
  readonly schema: string;
9
10
  readonly tablePattern: string;
@@ -13,4 +14,6 @@ export declare class TablePattern {
13
14
  get name(): string;
14
15
  matches(table: SourceTableInterface): boolean;
15
16
  suffix(table: string): string;
17
+ buildHash(hasher: StableHasher): void;
18
+ equals(other: unknown): boolean;
16
19
  }
@@ -53,5 +53,16 @@ export class TablePattern {
53
53
  }
54
54
  return table.substring(this.tablePrefix.length);
55
55
  }
56
+ buildHash(hasher) {
57
+ hasher.addString(this.connectionTag);
58
+ hasher.addString(this.schema);
59
+ hasher.addString(this.tablePattern);
60
+ }
61
+ equals(other) {
62
+ return (other instanceof TablePattern &&
63
+ other.connectionTag == this.connectionTag &&
64
+ other.schema == this.schema &&
65
+ other.tablePattern == this.tablePattern);
66
+ }
56
67
  }
57
68
  //# sourceMappingURL=TablePattern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TablePattern.js","sourceRoot":"","sources":["../src/TablePattern.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,OAAO,YAAY;IACP,aAAa,CAAS;IAEtB,MAAM,CAAS;IACf,YAAY,CAAS;IAErC,YAAY,MAAc,EAAE,YAAoB;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,IAAI;QACN,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,KAA2B;QACjC,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"TablePattern.js","sourceRoot":"","sources":["../src/TablePattern.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,OAAO,YAAY;IACP,aAAa,CAAS;IAEtB,MAAM,CAAS;IACf,YAAY,CAAS;IAErC,YAAY,MAAc,EAAE,YAAoB;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,IAAI;QACN,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,KAA2B;QACjC,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,MAAoB;QAC5B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,KAAc;QACnB,OAAO,CACL,KAAK,YAAY,YAAY;YAC7B,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;YACzC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;YAC3B,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CACxC,CAAC;IACJ,CAAC;CACF"}
@@ -1,9 +1,14 @@
1
1
  import { FromCall, SelectFromStatement } from 'pgsql-ast-parser';
2
+ import { BucketDescription, BucketPriority } from './BucketDescription.js';
3
+ import { CreateSourceParams } from './BucketSource.js';
2
4
  import { SqlRuleError } from './errors.js';
5
+ import { BucketDataScope } from './HydrationState.js';
6
+ import { BucketDataSource, BucketParameterQuerierSource } from './index.js';
7
+ import { SourceTableInterface } from './SourceTableInterface.js';
3
8
  import { AvailableTable } from './sql_filters.js';
9
+ import { TablePattern } from './TablePattern.js';
4
10
  import { TableValuedFunction } from './TableValuedFunctions.js';
5
- import { BucketIdTransformer, ParameterValueClause, QueryParseOptions, RequestParameters } from './types.js';
6
- import { BucketDescription, BucketPriority } from './BucketDescription.js';
11
+ import { ParameterValueClause, QueryParseOptions, RequestParameters } from './types.js';
7
12
  export interface TableValuedFunctionSqlParameterQueryOptions {
8
13
  sql: string;
9
14
  parameterExtractors: Record<string, ParameterValueClause>;
@@ -15,6 +20,7 @@ export interface TableValuedFunctionSqlParameterQueryOptions {
15
20
  callClause: ParameterValueClause | undefined;
16
21
  function: TableValuedFunction;
17
22
  callTable: AvailableTable;
23
+ querierDataSource: BucketDataSource;
18
24
  errors: SqlRuleError[];
19
25
  }
20
26
  /**
@@ -27,7 +33,7 @@ export interface TableValuedFunctionSqlParameterQueryOptions {
27
33
  * This can currently not be combined with parameter table queries or multiple table-valued functions.
28
34
  */
29
35
  export declare class TableValuedFunctionSqlParameterQuery {
30
- static fromSql(descriptorName: string, sql: string, call: FromCall, q: SelectFromStatement, options: QueryParseOptions, queryId: string): TableValuedFunctionSqlParameterQuery;
36
+ static fromSql(descriptorName: string, sql: string, call: FromCall, q: SelectFromStatement, options: QueryParseOptions, queryId: string, querierDataSource: BucketDataSource): TableValuedFunctionSqlParameterQuery;
31
37
  /**
32
38
  * Raw source sql query, for debugging purposes.
33
39
  */
@@ -81,9 +87,13 @@ export declare class TableValuedFunctionSqlParameterQuery {
81
87
  * Only used internally.
82
88
  */
83
89
  readonly callTable: AvailableTable;
90
+ readonly querierDataSource: BucketDataSource;
84
91
  readonly errors: SqlRuleError[];
85
92
  constructor(options: TableValuedFunctionSqlParameterQueryOptions);
86
- getStaticBucketDescriptions(parameters: RequestParameters, transformer: BucketIdTransformer): BucketDescription[];
93
+ getSourceTables(): Set<TablePattern>;
94
+ tableSyncsParameters(_table: SourceTableInterface): boolean;
95
+ createParameterQuerierSource(params: CreateSourceParams): BucketParameterQuerierSource;
96
+ getStaticBucketDescriptions(parameters: RequestParameters, scope: BucketDataScope): BucketDescription[];
87
97
  private getIndividualBucketDescription;
88
98
  private visitParameterExtractorsAndCallClause;
89
99
  get hasAuthenticatedBucketParameters(): boolean;
@@ -1,9 +1,9 @@
1
+ import { DEFAULT_BUCKET_PRIORITY } from './BucketDescription.js';
1
2
  import { SqlRuleError } from './errors.js';
2
3
  import { AvailableTable, SqlTools } from './sql_filters.js';
3
4
  import { checkUnsupportedFeatures, isClauseError, sqliteBool } from './sql_support.js';
4
5
  import { generateTableValuedFunctions } from './TableValuedFunctions.js';
5
- import { getBucketId, isJsonValue } from './utils.js';
6
- import { DEFAULT_BUCKET_PRIORITY } from './BucketDescription.js';
6
+ import { buildBucketName, isJsonValue, serializeBucketParameters } from './utils.js';
7
7
  import { DetectRequestParameters } from './validators.js';
8
8
  /**
9
9
  * Represents a parameter query using a table-valued function.
@@ -15,7 +15,7 @@ import { DetectRequestParameters } from './validators.js';
15
15
  * This can currently not be combined with parameter table queries or multiple table-valued functions.
16
16
  */
17
17
  export class TableValuedFunctionSqlParameterQuery {
18
- static fromSql(descriptorName, sql, call, q, options, queryId) {
18
+ static fromSql(descriptorName, sql, call, q, options, queryId, querierDataSource) {
19
19
  const compatibility = options.compatibility;
20
20
  let errors = [];
21
21
  errors.push(...checkUnsupportedFeatures(sql, q));
@@ -68,6 +68,7 @@ export class TableValuedFunctionSqlParameterQuery {
68
68
  callTable,
69
69
  priority: priority ?? DEFAULT_BUCKET_PRIORITY,
70
70
  queryId,
71
+ querierDataSource,
71
72
  errors
72
73
  });
73
74
  if (query.usesDangerousRequestParameters && !options?.accept_potentially_dangerous_queries) {
@@ -130,6 +131,7 @@ export class TableValuedFunctionSqlParameterQuery {
130
131
  * Only used internally.
131
132
  */
132
133
  callTable;
134
+ querierDataSource;
133
135
  errors;
134
136
  constructor(options) {
135
137
  this.sql = options.sql;
@@ -138,13 +140,44 @@ export class TableValuedFunctionSqlParameterQuery {
138
140
  this.descriptorName = options.descriptorName;
139
141
  this.bucketParameters = options.bucketParameters;
140
142
  this.queryId = options.queryId;
143
+ this.querierDataSource = options.querierDataSource;
141
144
  this.filter = options.filter;
142
145
  this.callClause = options.callClause;
143
146
  this.function = options.function;
144
147
  this.callTable = options.callTable;
145
148
  this.errors = options.errors;
146
149
  }
147
- getStaticBucketDescriptions(parameters, transformer) {
150
+ getSourceTables() {
151
+ return new Set();
152
+ }
153
+ tableSyncsParameters(_table) {
154
+ return false;
155
+ }
156
+ createParameterQuerierSource(params) {
157
+ const hydrationState = params.hydrationState;
158
+ const bucketScope = hydrationState.getBucketSourceScope(this.querierDataSource);
159
+ return {
160
+ pushBucketParameterQueriers: (result, options) => {
161
+ const staticBuckets = this.getStaticBucketDescriptions(options.globalParameters, bucketScope).map((desc) => {
162
+ return {
163
+ ...desc,
164
+ definition: this.descriptorName,
165
+ inclusion_reasons: ['default']
166
+ };
167
+ });
168
+ if (staticBuckets.length == 0) {
169
+ return;
170
+ }
171
+ const staticQuerier = {
172
+ staticBuckets,
173
+ hasDynamicBuckets: false,
174
+ queryDynamicBucketDescriptions: async () => []
175
+ };
176
+ result.queriers.push(staticQuerier);
177
+ }
178
+ };
179
+ }
180
+ getStaticBucketDescriptions(parameters, scope) {
148
181
  if (this.filter == null || this.callClause == null) {
149
182
  // Error in filter clause
150
183
  return [];
@@ -153,14 +186,14 @@ export class TableValuedFunctionSqlParameterQuery {
153
186
  const rows = this.function.call([valueString]);
154
187
  let total = [];
155
188
  for (let row of rows) {
156
- const description = this.getIndividualBucketDescription(row, parameters, transformer);
189
+ const description = this.getIndividualBucketDescription(row, parameters, scope);
157
190
  if (description !== null) {
158
191
  total.push(description);
159
192
  }
160
193
  }
161
194
  return total;
162
195
  }
163
- getIndividualBucketDescription(row, parameters, transformer) {
196
+ getIndividualBucketDescription(row, parameters, bucketScope) {
164
197
  const mergedParams = {
165
198
  ...parameters,
166
199
  lookup: (table, column) => {
@@ -186,8 +219,9 @@ export class TableValuedFunctionSqlParameterQuery {
186
219
  throw new Error(`Invalid parameter value: ${value}`);
187
220
  }
188
221
  }
222
+ const serializedBucketParameters = serializeBucketParameters(this.bucketParameters, result);
189
223
  return {
190
- bucket: getBucketId(this.descriptorName, this.bucketParameters, result, transformer),
224
+ bucket: buildBucketName(bucketScope, serializedBucketParameters),
191
225
  priority: this.priority
192
226
  };
193
227
  }