@powersync/service-sync-rules 0.40.0 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/HydratedSyncConfig.d.ts +9 -2
- package/dist/HydratedSyncConfig.js +12 -1
- package/dist/HydratedSyncConfig.js.map +1 -1
- package/dist/HydrationState.d.ts +2 -0
- package/dist/HydrationState.js.map +1 -1
- package/dist/StorageVersion.js +2 -1
- package/dist/StorageVersion.js.map +1 -1
- package/dist/SyncConfig.d.ts +4 -3
- package/dist/SyncConfig.js +10 -11
- package/dist/SyncConfig.js.map +1 -1
- package/dist/compiler/bucket_resolver.d.ts +1 -0
- package/dist/compiler/bucket_resolver.js +22 -12
- package/dist/compiler/bucket_resolver.js.map +1 -1
- package/dist/compiler/compatibility.d.ts +38 -9
- package/dist/compiler/compatibility.js +81 -11
- package/dist/compiler/compatibility.js.map +1 -1
- package/dist/compiler/compiler.d.ts +81 -13
- package/dist/compiler/compiler.js +111 -15
- package/dist/compiler/compiler.js.map +1 -1
- package/dist/compiler/expression.d.ts +17 -15
- package/dist/compiler/expression.js +21 -12
- package/dist/compiler/expression.js.map +1 -1
- package/dist/compiler/filter.d.ts +4 -4
- package/dist/compiler/filter.js +5 -4
- package/dist/compiler/filter.js.map +1 -1
- package/dist/compiler/ir_to_sync_plan.d.ts +4 -2
- package/dist/compiler/ir_to_sync_plan.js +40 -36
- package/dist/compiler/ir_to_sync_plan.js.map +1 -1
- package/dist/compiler/querier_graph.js +43 -24
- package/dist/compiler/querier_graph.js.map +1 -1
- package/dist/compiler/rows.d.ts +23 -29
- package/dist/compiler/rows.js +83 -59
- package/dist/compiler/rows.js.map +1 -1
- package/dist/compiler/table.d.ts +3 -2
- package/dist/compiler/table.js +5 -6
- package/dist/compiler/table.js.map +1 -1
- package/dist/events/CompiledEventSourceQuery.d.ts +51 -0
- package/dist/events/CompiledEventSourceQuery.js +119 -0
- package/dist/events/CompiledEventSourceQuery.js.map +1 -0
- package/dist/events/EventDescriptor.d.ts +26 -0
- package/dist/events/EventDescriptor.js +2 -0
- package/dist/events/EventDescriptor.js.map +1 -0
- package/dist/from_yaml.js +24 -20
- package/dist/from_yaml.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/json_schema.js +1 -1
- package/dist/json_schema.js.map +1 -1
- package/dist/schema-generators/RustSchemaGenerator.d.ts +22 -0
- package/dist/schema-generators/RustSchemaGenerator.js +120 -0
- package/dist/schema-generators/RustSchemaGenerator.js.map +1 -0
- package/dist/schema-generators/generators.d.ts +2 -0
- package/dist/schema-generators/generators.js +2 -0
- package/dist/schema-generators/generators.js.map +1 -1
- package/dist/schema-generators/schema-generators.d.ts +1 -0
- package/dist/schema-generators/schema-generators.js +1 -0
- package/dist/schema-generators/schema-generators.js.map +1 -1
- package/dist/sync_plan/evaluator/bucket_data_source.js +11 -53
- package/dist/sync_plan/evaluator/bucket_data_source.js.map +1 -1
- package/dist/sync_plan/evaluator/index.d.ts +2 -7
- package/dist/sync_plan/evaluator/index.js +6 -7
- package/dist/sync_plan/evaluator/index.js.map +1 -1
- package/dist/sync_plan/evaluator/parameter_evaluator.js +11 -7
- package/dist/sync_plan/evaluator/parameter_evaluator.js.map +1 -1
- package/dist/sync_plan/evaluator/row_projection.d.ts +22 -0
- package/dist/sync_plan/evaluator/row_projection.js +71 -0
- package/dist/sync_plan/evaluator/row_projection.js.map +1 -0
- package/dist/sync_plan/plan.d.ts +36 -5
- package/dist/sync_plan/plan_equality_serialized.d.ts +12 -2
- package/dist/sync_plan/plan_equality_serialized.js +56 -0
- package/dist/sync_plan/plan_equality_serialized.js.map +1 -1
- package/dist/sync_plan/serialize.d.ts +35 -4
- package/dist/sync_plan/serialize.js +93 -16
- package/dist/sync_plan/serialize.js.map +1 -1
- package/package.json +1 -1
- package/schema/sync_rules.json +3 -2
- package/dist/events/SqlEventDescriptor.d.ts +0 -20
- package/dist/events/SqlEventDescriptor.js +0 -51
- package/dist/events/SqlEventDescriptor.js.map +0 -1
- package/dist/events/SqlEventSourceQuery.d.ts +0 -20
- package/dist/events/SqlEventSourceQuery.js +0 -125
- package/dist/events/SqlEventSourceQuery.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { EvaluateTableValuedFunction, IntersectionParameterValue, LookupResultParameterValue, ParameterLookup, RequestParameterValue, ResolveBucket, StreamResolver } from './bucket_resolver.js';
|
|
2
|
-
import {
|
|
2
|
+
import { TableValuedFunctionEquality } from './compatibility.js';
|
|
3
3
|
import { HashMap, HashSet, StableHasher } from './equality.js';
|
|
4
4
|
import { RowReference } from './expression.js';
|
|
5
5
|
import { EqualsClause, RequestExpression, RowExpression, SingleDependencyExpression } from './filter.js';
|
|
6
|
-
import { PointLookup, RowEvaluator,
|
|
6
|
+
import { PartitionKey, PointLookup, RowEvaluator, SourceRowProcessorAddedTableValuedFunction } from './rows.js';
|
|
7
7
|
import { PhysicalSourceResultSet, TableValuedResultSet } from './table.js';
|
|
8
8
|
/**
|
|
9
9
|
* Builds stream resolvers for a single stream, potentially consisting of multiple queries.
|
|
@@ -40,7 +40,7 @@ export class QuerierGraphBuilder {
|
|
|
40
40
|
errors.report(`This stream defines too many buckets (${buckets.length}, at most ${maxBucketsPerStream} are allowed). Try splitting queries into separate streams or move inner OR operators in filters to separate queries.`, location);
|
|
41
41
|
return [];
|
|
42
42
|
}
|
|
43
|
-
this.compiler.output.resolvers.push(...buckets);
|
|
43
|
+
this.compiler.output.streams.resolvers.push(...buckets);
|
|
44
44
|
return buckets;
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
@@ -128,12 +128,12 @@ class PendingQuerierPath {
|
|
|
128
128
|
resolvePrimaryInput() {
|
|
129
129
|
const state = this.resolveResultSet(this.query.sourceTable);
|
|
130
130
|
const [partitions, partitionValues] = state.resolvePartitions();
|
|
131
|
-
const evaluator = this.builder.compiler.output.canonicalizeEvaluator(new RowEvaluator({
|
|
131
|
+
const evaluator = this.builder.compiler.output.streams.canonicalizeEvaluator(new RowEvaluator({
|
|
132
132
|
columns: this.query.resultColumns,
|
|
133
133
|
syntacticSource: this.query.sourceTable,
|
|
134
134
|
filters: state.filters,
|
|
135
135
|
partitionBy: partitions,
|
|
136
|
-
addedFunctions: [...state.addedFunctions
|
|
136
|
+
addedFunctions: [...state.addedFunctions()]
|
|
137
137
|
}));
|
|
138
138
|
this.processExistsOperators();
|
|
139
139
|
// Resolving a result set removes its conditions from pendingFactors, so remaining conditions must be related to the
|
|
@@ -167,17 +167,18 @@ class PendingQuerierPath {
|
|
|
167
167
|
return new PendingExpandingLookup({
|
|
168
168
|
type: 'point',
|
|
169
169
|
source: resultSet,
|
|
170
|
-
resultSet: resolved
|
|
170
|
+
resultSet: resolved,
|
|
171
|
+
tableValuedFunctionEquality: resolved.equality
|
|
171
172
|
});
|
|
172
173
|
}
|
|
173
174
|
resolveTableValuedLookup(resultSet) {
|
|
174
175
|
const resolved = this.resolveResultSet(resultSet);
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
176
|
+
return new PendingExpandingLookup({
|
|
177
|
+
type: 'table_valued',
|
|
178
|
+
source: resultSet,
|
|
179
|
+
filters: resolved.filters,
|
|
180
|
+
tableValuedFunctionEquality: TableValuedFunctionEquality.forSingleTableValuedFunction(resultSet)
|
|
181
|
+
});
|
|
181
182
|
}
|
|
182
183
|
resolveExpandingLookup(resultSet) {
|
|
183
184
|
if (resultSet instanceof TableValuedResultSet && resultSet.inputResultSet != null) {
|
|
@@ -248,6 +249,10 @@ class PendingQuerierPath {
|
|
|
248
249
|
return;
|
|
249
250
|
}
|
|
250
251
|
this.removePendingExpression(expression);
|
|
252
|
+
if (source instanceof TableValuedResultSet) {
|
|
253
|
+
this.errors.report(`This table-valued function depends on request data and can't be partitioned. If possible, try rewriting the query to not use = operators on this function and multiple other tables.`, source.source.origin);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
251
256
|
const values = state.partition.putIfAbsent(key, () => []);
|
|
252
257
|
if (otherResultSet != null) {
|
|
253
258
|
const lookup = this.resolveExpandingLookup(otherResultSet);
|
|
@@ -262,12 +267,12 @@ class PendingQuerierPath {
|
|
|
262
267
|
}
|
|
263
268
|
};
|
|
264
269
|
const partitionByScalar = (thisRow, otherRow) => {
|
|
265
|
-
const key = new
|
|
270
|
+
const key = new PartitionKey(new RowExpression(thisRow));
|
|
266
271
|
partitionBy(key, otherRow);
|
|
267
272
|
};
|
|
268
273
|
const partitionByTableValued = (tableValued, tableValuedOutput, otherRow) => {
|
|
269
|
-
|
|
270
|
-
const key = new
|
|
274
|
+
state.getOrAddTableValuedFunction(tableValued);
|
|
275
|
+
const key = new PartitionKey(tableValuedOutput);
|
|
271
276
|
return partitionBy(key, otherRow);
|
|
272
277
|
};
|
|
273
278
|
const leftSource = expression.left.resultSet;
|
|
@@ -349,12 +354,12 @@ class PendingQuerierPath {
|
|
|
349
354
|
if (data.type == 'point') {
|
|
350
355
|
const resultSet = data.resultSet;
|
|
351
356
|
const [partitionKeys, partitionInputs] = resultSet.resolvePartitions();
|
|
352
|
-
const canonicalized = this.builder.compiler.output.canonicalizePointLookup(new PointLookup({
|
|
357
|
+
const canonicalized = this.builder.compiler.output.streams.canonicalizePointLookup(new PointLookup({
|
|
353
358
|
syntacticSource: data.source,
|
|
354
359
|
filters: resultSet.filters,
|
|
355
360
|
partitionBy: partitionKeys,
|
|
356
361
|
result: lookup.usedOutputs,
|
|
357
|
-
addedFunctions: [...resultSet.addedFunctions
|
|
362
|
+
addedFunctions: [...resultSet.addedFunctions()]
|
|
358
363
|
}));
|
|
359
364
|
lookupWithInputs = new ParameterLookup(canonicalized, partitionInputs);
|
|
360
365
|
}
|
|
@@ -370,16 +375,30 @@ class PendingQuerierPath {
|
|
|
370
375
|
}
|
|
371
376
|
}
|
|
372
377
|
class ResolvedResultSet {
|
|
378
|
+
#addedFunctions = new Map();
|
|
379
|
+
equality = TableValuedFunctionEquality.forSingleOwner({
|
|
380
|
+
get: (tableValued) => this.#addedFunctions.get(tableValued)?.[1]
|
|
381
|
+
}, {
|
|
382
|
+
get: (tableValued) => this.#addedFunctions.get(tableValued)?.[2]
|
|
383
|
+
});
|
|
373
384
|
filters = [];
|
|
374
|
-
partition = new HashMap(
|
|
375
|
-
addedFunctions
|
|
385
|
+
partition = new HashMap(this.equality);
|
|
386
|
+
*addedFunctions() {
|
|
387
|
+
for (const [added] of this.#addedFunctions.values()) {
|
|
388
|
+
yield added;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
376
391
|
getOrAddTableValuedFunction(source) {
|
|
377
|
-
if (this
|
|
378
|
-
return this
|
|
392
|
+
if (this.#addedFunctions.has(source)) {
|
|
393
|
+
return this.#addedFunctions.get(source);
|
|
379
394
|
}
|
|
380
395
|
else {
|
|
381
396
|
const pendingFunction = new SourceRowProcessorAddedTableValuedFunction(source, source.tableValuedFunctionName, source.parameters.map((e) => new RowExpression(e)));
|
|
382
|
-
this
|
|
397
|
+
this.#addedFunctions.set(source, [
|
|
398
|
+
pendingFunction,
|
|
399
|
+
StableHasher.hashWith(this.equality, pendingFunction),
|
|
400
|
+
Symbol()
|
|
401
|
+
]);
|
|
383
402
|
return pendingFunction;
|
|
384
403
|
}
|
|
385
404
|
}
|
|
@@ -397,7 +416,7 @@ class ResolvedResultSet {
|
|
|
397
416
|
// partition keys should be unordered: Instantiating a bucket is a `Map<Parameter, Value>` that just happens to be
|
|
398
417
|
// encoded as `Value[]` since parameters are known from context.
|
|
399
418
|
// To make it easier to merge buckets, we sort parameters by some stable hash.
|
|
400
|
-
entries.sort((a, b) => StableHasher.hashWith(
|
|
419
|
+
entries.sort((a, b) => StableHasher.hashWith(this.equality, a[0]) - StableHasher.hashWith(this.equality, b[0]));
|
|
401
420
|
const keys = [];
|
|
402
421
|
const values = [];
|
|
403
422
|
for (const [key, value] of entries) {
|
|
@@ -417,7 +436,7 @@ class PendingExpandingLookup {
|
|
|
417
436
|
addOutput(param) {
|
|
418
437
|
for (let i = 0; i < this.usedOutputs.length; i++) {
|
|
419
438
|
const existing = this.usedOutputs[i];
|
|
420
|
-
if (existing.
|
|
439
|
+
if (existing.equalsAssumingSamePrimaryResultSet(param, this.data.tableValuedFunctionEquality)) {
|
|
421
440
|
return i;
|
|
422
441
|
}
|
|
423
442
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"querier_graph.js","sourceRoot":"","sources":["../../src/compiler/querier_graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"querier_graph.js","sourceRoot":"","sources":["../../src/compiler/querier_graph.ts"],"names":[],"mappings":"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"}
|
package/dist/compiler/rows.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ImplicitSchemaTablePattern } from '../TablePattern.js';
|
|
2
|
-
import {
|
|
2
|
+
import { EqualsIgnoringPrimaryResultSet, TableValuedFunctionEquality } from './compatibility.js';
|
|
3
3
|
import { StableHasher } from './equality.js';
|
|
4
4
|
import { RowExpression } from './filter.js';
|
|
5
5
|
import { PhysicalSourceResultSet, TableValuedResultSet } from './table.js';
|
|
@@ -9,25 +9,11 @@ import { PhysicalSourceResultSet, TableValuedResultSet } from './table.js';
|
|
|
9
9
|
* When constructing buckets, a value needs to be passed for each such key.
|
|
10
10
|
* When invoking parameter lookups, values need to be passed as inputs.
|
|
11
11
|
*/
|
|
12
|
-
export declare
|
|
13
|
-
abstract equalsAssumingSameResultSet(other: EqualsIgnoringResultSet): boolean;
|
|
14
|
-
abstract assumingSameResultSetEqualityHashCode(hasher: StableHasher): void;
|
|
15
|
-
}
|
|
16
|
-
export declare class ScalarPartitionKey extends PartitionKey {
|
|
12
|
+
export declare class PartitionKey implements EqualsIgnoringPrimaryResultSet {
|
|
17
13
|
readonly expression: RowExpression;
|
|
18
14
|
constructor(expression: RowExpression);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* A partition key derived from the output of a table-valued function added to a {@link SourceRowProcessor}.
|
|
24
|
-
*/
|
|
25
|
-
export declare class TableValuedPartitionKey extends PartitionKey {
|
|
26
|
-
readonly fromFunction: SourceRowProcessorAddedTableValuedFunction;
|
|
27
|
-
readonly output: RowExpression;
|
|
28
|
-
constructor(fromFunction: SourceRowProcessorAddedTableValuedFunction, output: RowExpression);
|
|
29
|
-
equalsAssumingSameResultSet(other: EqualsIgnoringResultSet): boolean;
|
|
30
|
-
assumingSameResultSetEqualityHashCode(hasher: StableHasher): void;
|
|
15
|
+
equalsAssumingSamePrimaryResultSet(other: EqualsIgnoringPrimaryResultSet, tableValued: TableValuedFunctionEquality): boolean;
|
|
16
|
+
assumingSamePrimaryResultSetEqualityHashCode(tableValued: TableValuedFunctionEquality, hasher: StableHasher): void;
|
|
31
17
|
}
|
|
32
18
|
/**
|
|
33
19
|
* Something that processes source rows during replication.
|
|
@@ -35,7 +21,7 @@ export declare class TableValuedPartitionKey extends PartitionKey {
|
|
|
35
21
|
* This includes {@link RowEvaluator}s, which assigns rows into buckets, and {@link PointLookup}, which creates
|
|
36
22
|
* parameter lookups used to resolve bucket ids when a user connects.
|
|
37
23
|
*/
|
|
38
|
-
export type SourceRowProcessor = RowEvaluator | PointLookup;
|
|
24
|
+
export type SourceRowProcessor = RowEvaluator | EventRowEvaluator | PointLookup;
|
|
39
25
|
interface SourceProcessorOptions {
|
|
40
26
|
readonly syntacticSource: PhysicalSourceResultSet;
|
|
41
27
|
readonly filters: RowExpression[];
|
|
@@ -43,6 +29,7 @@ interface SourceProcessorOptions {
|
|
|
43
29
|
readonly addedFunctions: SourceRowProcessorAddedTableValuedFunction[];
|
|
44
30
|
}
|
|
45
31
|
declare abstract class BaseSourceRowProcessor {
|
|
32
|
+
#private;
|
|
46
33
|
/**
|
|
47
34
|
* The table names being matched, along with an AST reference describing its syntactic source.
|
|
48
35
|
*/
|
|
@@ -55,6 +42,7 @@ declare abstract class BaseSourceRowProcessor {
|
|
|
55
42
|
readonly filters: RowExpression[];
|
|
56
43
|
readonly partitionBy: PartitionKey[];
|
|
57
44
|
readonly addedFunctions: SourceRowProcessorAddedTableValuedFunction[];
|
|
45
|
+
protected readonly tableValuedHashCodes: TableValuedFunctionEquality;
|
|
58
46
|
constructor(options: SourceProcessorOptions);
|
|
59
47
|
/**
|
|
60
48
|
* A hash code for the equivalence relation formed by {@link behavesIdenticalTo}.
|
|
@@ -73,7 +61,7 @@ declare abstract class BaseSourceRowProcessor {
|
|
|
73
61
|
*/
|
|
74
62
|
get tablePattern(): ImplicitSchemaTablePattern;
|
|
75
63
|
protected addBaseHashCode(hasher: StableHasher): void;
|
|
76
|
-
protected baseMatchesOther(other: BaseSourceRowProcessor):
|
|
64
|
+
protected baseMatchesOther(other: BaseSourceRowProcessor): TableValuedFunctionEquality | null;
|
|
77
65
|
}
|
|
78
66
|
/**
|
|
79
67
|
* A row evaluator, evaluating rows to sync from a row in the source database.
|
|
@@ -92,6 +80,12 @@ export declare class RowEvaluator extends BaseSourceRowProcessor {
|
|
|
92
80
|
buildBehaviorHashCode(hasher: StableHasher): void;
|
|
93
81
|
behavesIdenticalTo(other: RowEvaluator): boolean;
|
|
94
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* A row evaluator producing an event payload.
|
|
85
|
+
*/
|
|
86
|
+
export declare class EventRowEvaluator extends RowEvaluator {
|
|
87
|
+
get outputName(): undefined;
|
|
88
|
+
}
|
|
95
89
|
/**
|
|
96
90
|
* A point lookup, creating a materialized index.
|
|
97
91
|
*
|
|
@@ -117,26 +111,26 @@ export declare class PointLookup extends BaseSourceRowProcessor {
|
|
|
117
111
|
*
|
|
118
112
|
* When processing source rows, all attached table-valued functions are expanded as well.
|
|
119
113
|
*/
|
|
120
|
-
export declare class SourceRowProcessorAddedTableValuedFunction implements
|
|
114
|
+
export declare class SourceRowProcessorAddedTableValuedFunction implements EqualsIgnoringPrimaryResultSet {
|
|
121
115
|
readonly syntacticSource: TableValuedResultSet;
|
|
122
116
|
readonly functionName: string;
|
|
123
117
|
readonly inputs: RowExpression[];
|
|
124
118
|
constructor(syntacticSource: TableValuedResultSet, functionName: string, inputs: RowExpression[]);
|
|
125
|
-
|
|
126
|
-
|
|
119
|
+
equalsAssumingSamePrimaryResultSet(other: EqualsIgnoringPrimaryResultSet, tableValued: TableValuedFunctionEquality): boolean;
|
|
120
|
+
assumingSamePrimaryResultSetEqualityHashCode(tableValued: TableValuedFunctionEquality, hasher: StableHasher): void;
|
|
127
121
|
}
|
|
128
122
|
export type ColumnSource = StarColumnSource | ExpressionColumnSource;
|
|
129
|
-
export declare class StarColumnSource implements
|
|
123
|
+
export declare class StarColumnSource implements EqualsIgnoringPrimaryResultSet {
|
|
130
124
|
private constructor();
|
|
131
|
-
|
|
132
|
-
|
|
125
|
+
equalsAssumingSamePrimaryResultSet(other: EqualsIgnoringPrimaryResultSet): boolean;
|
|
126
|
+
assumingSamePrimaryResultSetEqualityHashCode(): void;
|
|
133
127
|
static readonly instance: StarColumnSource;
|
|
134
128
|
}
|
|
135
|
-
export declare class ExpressionColumnSource implements
|
|
129
|
+
export declare class ExpressionColumnSource implements EqualsIgnoringPrimaryResultSet {
|
|
136
130
|
readonly expression: RowExpression;
|
|
137
131
|
readonly alias: string;
|
|
138
132
|
constructor(expression: RowExpression, alias: string);
|
|
139
|
-
|
|
140
|
-
|
|
133
|
+
equalsAssumingSamePrimaryResultSet(other: EqualsIgnoringPrimaryResultSet, tableValued: TableValuedFunctionEquality): boolean;
|
|
134
|
+
assumingSamePrimaryResultSetEqualityHashCode(tableValued: TableValuedFunctionEquality, hasher: StableHasher): void;
|
|
141
135
|
}
|
|
142
136
|
export {};
|
package/dist/compiler/rows.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TableValuedFunctionEquality } from './compatibility.js';
|
|
2
2
|
import { StableHasher } from './equality.js';
|
|
3
3
|
/**
|
|
4
4
|
* A key describing how buckets or parameter lookups are parameterized.
|
|
@@ -7,42 +7,15 @@ import { StableHasher } from './equality.js';
|
|
|
7
7
|
* When invoking parameter lookups, values need to be passed as inputs.
|
|
8
8
|
*/
|
|
9
9
|
export class PartitionKey {
|
|
10
|
-
}
|
|
11
|
-
export class ScalarPartitionKey extends PartitionKey {
|
|
12
10
|
expression;
|
|
13
11
|
constructor(expression) {
|
|
14
|
-
super();
|
|
15
12
|
this.expression = expression;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
|
-
return (other instanceof
|
|
19
|
-
other.expression.expression.equalsAssumingSameResultSet(this.expression.expression));
|
|
14
|
+
equalsAssumingSamePrimaryResultSet(other, tableValued) {
|
|
15
|
+
return (other instanceof PartitionKey && this.expression.equalsAssumingSamePrimaryResultSet(other.expression, tableValued));
|
|
20
16
|
}
|
|
21
|
-
|
|
22
|
-
this.expression.
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* A partition key derived from the output of a table-valued function added to a {@link SourceRowProcessor}.
|
|
27
|
-
*/
|
|
28
|
-
export class TableValuedPartitionKey extends PartitionKey {
|
|
29
|
-
fromFunction;
|
|
30
|
-
output;
|
|
31
|
-
constructor(fromFunction, output) {
|
|
32
|
-
super();
|
|
33
|
-
this.fromFunction = fromFunction;
|
|
34
|
-
this.output = output;
|
|
35
|
-
}
|
|
36
|
-
equalsAssumingSameResultSet(other) {
|
|
37
|
-
if (!(other instanceof TableValuedPartitionKey)) {
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
return (other.fromFunction.equalsAssumingSameResultSet(this.fromFunction) &&
|
|
41
|
-
other.output.equalsAssumingSameResultSet(this.output));
|
|
42
|
-
}
|
|
43
|
-
assumingSameResultSetEqualityHashCode(hasher) {
|
|
44
|
-
this.fromFunction.assumingSameResultSetEqualityHashCode(hasher);
|
|
45
|
-
this.output.assumingSameResultSetEqualityHashCode(hasher);
|
|
17
|
+
assumingSamePrimaryResultSetEqualityHashCode(tableValued, hasher) {
|
|
18
|
+
this.expression.assumingSamePrimaryResultSetEqualityHashCode(tableValued, hasher);
|
|
46
19
|
}
|
|
47
20
|
}
|
|
48
21
|
class BaseSourceRowProcessor {
|
|
@@ -58,11 +31,19 @@ class BaseSourceRowProcessor {
|
|
|
58
31
|
filters;
|
|
59
32
|
partitionBy;
|
|
60
33
|
addedFunctions;
|
|
34
|
+
#tableValuedFunctionToHashCode = new Map();
|
|
35
|
+
tableValuedHashCodes;
|
|
61
36
|
constructor(options) {
|
|
62
37
|
this.syntacticSource = options.syntacticSource;
|
|
63
38
|
this.filters = options.filters;
|
|
64
39
|
this.partitionBy = options.partitionBy;
|
|
65
40
|
this.addedFunctions = options.addedFunctions;
|
|
41
|
+
this.tableValuedHashCodes = TableValuedFunctionEquality.forHashCode(this.#tableValuedFunctionToHashCode);
|
|
42
|
+
for (const fn of options.addedFunctions) {
|
|
43
|
+
const hasher = new StableHasher();
|
|
44
|
+
fn.assumingSamePrimaryResultSetEqualityHashCode(this.tableValuedHashCodes, hasher);
|
|
45
|
+
this.#tableValuedFunctionToHashCode.set(fn.syntacticSource, hasher.buildHashCode());
|
|
46
|
+
}
|
|
66
47
|
}
|
|
67
48
|
get behaviorHashCode() {
|
|
68
49
|
const hasher = new StableHasher();
|
|
@@ -77,24 +58,49 @@ class BaseSourceRowProcessor {
|
|
|
77
58
|
}
|
|
78
59
|
addBaseHashCode(hasher) {
|
|
79
60
|
hasher.add(this.tablePattern);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
61
|
+
this.tableValuedHashCodes.unorderedEquality.hash(hasher, this.filters.map((f) => f.expression));
|
|
62
|
+
this.tableValuedHashCodes.listEquality.hash(hasher, this.partitionBy);
|
|
63
|
+
this.tableValuedHashCodes.unorderedEquality.hash(hasher, this.addedFunctions);
|
|
83
64
|
}
|
|
84
65
|
baseMatchesOther(other) {
|
|
85
66
|
if (!other.tablePattern.equals(this.tablePattern)) {
|
|
86
|
-
return
|
|
67
|
+
return null;
|
|
87
68
|
}
|
|
88
|
-
|
|
89
|
-
|
|
69
|
+
// Verify that table-valued functions on the two row processors are equal (in any order). Also, construct a mapping
|
|
70
|
+
// of functions in both processors to a unique symbol so that if two table-valued functions are equal, the mapping
|
|
71
|
+
// will report the exact same symbol. This allows expressions to compare references to table-valued functions across
|
|
72
|
+
// the two processors.
|
|
73
|
+
const symbolsForTableValuedFunctions = new Map();
|
|
74
|
+
const identities = TableValuedFunctionEquality.mergeForEquality(this.tableValuedHashCodes, other.tableValuedHashCodes, symbolsForTableValuedFunctions);
|
|
75
|
+
{
|
|
76
|
+
const unmatchedLocalFunctions = new Set(this.addedFunctions);
|
|
77
|
+
other: for (const otherFunction of other.addedFunctions) {
|
|
78
|
+
const otherHash = other.#tableValuedFunctionToHashCode.get(otherFunction.syntacticSource);
|
|
79
|
+
for (const thisFunction of unmatchedLocalFunctions) {
|
|
80
|
+
const thisHash = this.#tableValuedFunctionToHashCode.get(thisFunction.syntacticSource);
|
|
81
|
+
if (thisHash === otherHash && thisFunction.equalsAssumingSamePrimaryResultSet(otherFunction, identities)) {
|
|
82
|
+
const symbol = Symbol();
|
|
83
|
+
symbolsForTableValuedFunctions.set(otherFunction.syntacticSource, symbol);
|
|
84
|
+
symbolsForTableValuedFunctions.set(thisFunction.syntacticSource, symbol);
|
|
85
|
+
unmatchedLocalFunctions.delete(thisFunction);
|
|
86
|
+
continue other;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// No match found for otherFunction
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
if (unmatchedLocalFunctions.size > 0) {
|
|
93
|
+
// Local functions with no other function exist.
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
90
96
|
}
|
|
91
|
-
if (!
|
|
92
|
-
return
|
|
97
|
+
if (!identities.listEquality.equals(other.partitionBy, this.partitionBy)) {
|
|
98
|
+
return null;
|
|
93
99
|
}
|
|
94
|
-
if (!
|
|
95
|
-
return
|
|
100
|
+
if (!identities.unorderedEquality.equals(other.filters, this.filters)) {
|
|
101
|
+
return null;
|
|
96
102
|
}
|
|
97
|
-
return
|
|
103
|
+
return identities;
|
|
98
104
|
}
|
|
99
105
|
}
|
|
100
106
|
/**
|
|
@@ -123,15 +129,30 @@ export class RowEvaluator extends BaseSourceRowProcessor {
|
|
|
123
129
|
}
|
|
124
130
|
buildBehaviorHashCode(hasher) {
|
|
125
131
|
this.addBaseHashCode(hasher);
|
|
126
|
-
|
|
132
|
+
this.tableValuedHashCodes.listEquality.hash(hasher, this.columns);
|
|
127
133
|
if (this.outputName) {
|
|
128
134
|
hasher.addString(this.outputName);
|
|
129
135
|
}
|
|
130
136
|
}
|
|
131
137
|
behavesIdenticalTo(other) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
138
|
+
if (other === this)
|
|
139
|
+
return true;
|
|
140
|
+
if (other.outputName != this.outputName)
|
|
141
|
+
return false;
|
|
142
|
+
const identities = this.baseMatchesOther(other);
|
|
143
|
+
if (identities == null)
|
|
144
|
+
return false;
|
|
145
|
+
return identities.listEquality.equals(other.columns, this.columns);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* A row evaluator producing an event payload.
|
|
150
|
+
*/
|
|
151
|
+
export class EventRowEvaluator extends RowEvaluator {
|
|
152
|
+
get outputName() {
|
|
153
|
+
// Stream output names determine the logical destination table. Event handlers instead receive the named event and
|
|
154
|
+
// physical source table, so changing a payload query's source alias does not change event behavior.
|
|
155
|
+
return undefined;
|
|
135
156
|
}
|
|
136
157
|
}
|
|
137
158
|
/**
|
|
@@ -154,10 +175,13 @@ export class PointLookup extends BaseSourceRowProcessor {
|
|
|
154
175
|
}
|
|
155
176
|
buildBehaviorHashCode(hasher) {
|
|
156
177
|
this.addBaseHashCode(hasher);
|
|
157
|
-
|
|
178
|
+
this.tableValuedHashCodes.listEquality.hash(hasher, this.result);
|
|
158
179
|
}
|
|
159
180
|
behavesIdenticalTo(other) {
|
|
160
|
-
|
|
181
|
+
if (other === this)
|
|
182
|
+
return true;
|
|
183
|
+
const identities = this.baseMatchesOther(other);
|
|
184
|
+
return identities != null && identities.listEquality.equals(other.result, this.result);
|
|
161
185
|
}
|
|
162
186
|
}
|
|
163
187
|
/**
|
|
@@ -174,23 +198,23 @@ export class SourceRowProcessorAddedTableValuedFunction {
|
|
|
174
198
|
this.functionName = functionName;
|
|
175
199
|
this.inputs = inputs;
|
|
176
200
|
}
|
|
177
|
-
|
|
201
|
+
equalsAssumingSamePrimaryResultSet(other, tableValued) {
|
|
178
202
|
if (!(other instanceof SourceRowProcessorAddedTableValuedFunction)) {
|
|
179
203
|
return false;
|
|
180
204
|
}
|
|
181
|
-
return other.functionName == this.functionName &&
|
|
205
|
+
return other.functionName == this.functionName && tableValued.listEquality.equals(other.inputs, this.inputs);
|
|
182
206
|
}
|
|
183
|
-
|
|
207
|
+
assumingSamePrimaryResultSetEqualityHashCode(tableValued, hasher) {
|
|
184
208
|
hasher.addString(this.functionName);
|
|
185
|
-
|
|
209
|
+
tableValued.listEquality.hash(hasher, this.inputs);
|
|
186
210
|
}
|
|
187
211
|
}
|
|
188
212
|
export class StarColumnSource {
|
|
189
213
|
constructor() { }
|
|
190
|
-
|
|
214
|
+
equalsAssumingSamePrimaryResultSet(other) {
|
|
191
215
|
return other instanceof StarColumnSource;
|
|
192
216
|
}
|
|
193
|
-
|
|
217
|
+
assumingSamePrimaryResultSetEqualityHashCode() { }
|
|
194
218
|
static instance = new StarColumnSource();
|
|
195
219
|
}
|
|
196
220
|
export class ExpressionColumnSource {
|
|
@@ -200,13 +224,13 @@ export class ExpressionColumnSource {
|
|
|
200
224
|
this.expression = expression;
|
|
201
225
|
this.alias = alias;
|
|
202
226
|
}
|
|
203
|
-
|
|
227
|
+
equalsAssumingSamePrimaryResultSet(other, tableValued) {
|
|
204
228
|
return (other instanceof ExpressionColumnSource &&
|
|
205
229
|
other.alias == this.alias &&
|
|
206
|
-
other.expression.
|
|
230
|
+
other.expression.equalsAssumingSamePrimaryResultSet(this.expression, tableValued));
|
|
207
231
|
}
|
|
208
|
-
|
|
209
|
-
this.expression.
|
|
232
|
+
assumingSamePrimaryResultSetEqualityHashCode(tableValued, hasher) {
|
|
233
|
+
this.expression.assumingSamePrimaryResultSetEqualityHashCode(tableValued, hasher);
|
|
210
234
|
hasher.addString(this.alias);
|
|
211
235
|
}
|
|
212
236
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rows.js","sourceRoot":"","sources":["../../src/compiler/rows.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"rows.js","sourceRoot":"","sources":["../../src/compiler/rows.ts"],"names":[],"mappings":"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"}
|
package/dist/compiler/table.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PGNode } from 'pgsql-ast-parser';
|
|
2
2
|
import { ImplicitSchemaTablePattern, SourceSchemaTable } from '../index.js';
|
|
3
3
|
import { SqlExpression } from '../sync_plan/expression.js';
|
|
4
|
+
import { TableValuedFunctionEquality } from './compatibility.js';
|
|
4
5
|
import { StableHasher } from './equality.js';
|
|
5
6
|
import { ExpressionInput, NodeLocations, SyncExpression } from './expression.js';
|
|
6
7
|
import { SingleDependencyExpression } from './filter.js';
|
|
@@ -83,8 +84,8 @@ export declare class TableValuedResultSet extends BaseSourceResultSet {
|
|
|
83
84
|
get evaluationTarget(): SourceResultSet;
|
|
84
85
|
get description(): string;
|
|
85
86
|
canAttachTo(table: SourceResultSet): boolean;
|
|
86
|
-
buildBehaviorHashCode(hasher: StableHasher): void;
|
|
87
|
-
behavesIdenticalTo(other: TableValuedResultSet): boolean;
|
|
87
|
+
buildBehaviorHashCode(tableValued: TableValuedFunctionEquality, hasher: StableHasher): void;
|
|
88
|
+
behavesIdenticalTo(other: TableValuedResultSet, tableValued: TableValuedFunctionEquality): boolean;
|
|
88
89
|
clone(references: CloneTableReferences): TableValuedResultSet;
|
|
89
90
|
}
|
|
90
91
|
/**
|