@powersync/service-sync-rules 0.39.0 → 0.41.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/TablePattern.d.ts +2 -0
- package/dist/TablePattern.js +18 -1
- package/dist/TablePattern.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 +35 -12
- package/dist/compiler/expression.js +49 -13
- package/dist/compiler/expression.js.map +1 -1
- package/dist/compiler/filter.d.ts +4 -4
- package/dist/compiler/filter.js +7 -6
- 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 +47 -37
- package/dist/compiler/ir_to_sync_plan.js.map +1 -1
- package/dist/compiler/parser.js +3 -3
- package/dist/compiler/parser.js.map +1 -1
- package/dist/compiler/querier_graph.js +45 -26
- 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/sqlite.d.ts +3 -2
- package/dist/compiler/sqlite.js +33 -3
- package/dist/compiler/sqlite.js.map +1 -1
- package/dist/compiler/table.d.ts +3 -2
- package/dist/compiler/table.js +9 -7
- 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 +157 -189
- 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/sync_plan/engine/scalar_expression_engine.js +7 -0
- package/dist/sync_plan/engine/scalar_expression_engine.js.map +1 -1
- package/dist/sync_plan/evaluator/bucket_data_source.js +11 -52
- 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/parameter_index_lookup_creator.js +2 -2
- package/dist/sync_plan/evaluator/parameter_index_lookup_creator.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/evaluator/table_processor_to_sql.d.ts +5 -2
- package/dist/sync_plan/evaluator/table_processor_to_sql.js +10 -0
- package/dist/sync_plan/evaluator/table_processor_to_sql.js.map +1 -1
- package/dist/sync_plan/plan.d.ts +49 -9
- 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 +54 -5
- package/dist/sync_plan/serialize.js +109 -19
- package/dist/sync_plan/serialize.js.map +1 -1
- package/dist/yaml_validation.d.ts +73 -0
- package/dist/yaml_validation.js +140 -0
- package/dist/yaml_validation.js.map +1 -0
- 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
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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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Expr,
|
|
1
|
+
import { Expr, nil, SelectFromStatement } from 'pgsql-ast-parser';
|
|
2
2
|
import { SqlExpression } from '../sync_plan/expression.js';
|
|
3
3
|
import { ParsingErrorListener } from './compiler.js';
|
|
4
4
|
import { ExpressionInput, NodeLocations, SyncExpression } from './expression.js';
|
|
@@ -39,7 +39,7 @@ export interface PostgresToSqliteOptions {
|
|
|
39
39
|
*
|
|
40
40
|
* Should report an error if resolving the table failed, using `node` as the source location for the error.
|
|
41
41
|
*/
|
|
42
|
-
resolveTableName(node:
|
|
42
|
+
resolveTableName(node: Expr, name: string | nil): SourceResultSet | PreparedSubquery | null;
|
|
43
43
|
/**
|
|
44
44
|
* Generates a table alias for synthetic subqueries like those generated to desugar `IN` expressions to `json_each`
|
|
45
45
|
* subqueries.
|
|
@@ -69,5 +69,6 @@ export declare class PostgresToSqlite {
|
|
|
69
69
|
private desugarInValues;
|
|
70
70
|
private negate;
|
|
71
71
|
private translateRequestParameter;
|
|
72
|
+
private translateRowMetadata;
|
|
72
73
|
private sourceLocation;
|
|
73
74
|
}
|
package/dist/compiler/sqlite.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CAST_TYPES } from '../cast.js';
|
|
2
2
|
import { supportedFunctions } from '../sync_plan/expression.js';
|
|
3
|
-
import { ColumnInRow, ConnectionParameter, SyncExpression } from './expression.js';
|
|
3
|
+
import { ColumnInRow, ConnectionParameter, RowMetadata, SyncExpression } from './expression.js';
|
|
4
4
|
import { BaseSourceResultSet, PhysicalSourceResultSet } from './table.js';
|
|
5
5
|
/**
|
|
6
6
|
* Validates and lowers a Postgres expression into a scalar SQL expression.
|
|
@@ -104,9 +104,12 @@ export class PostgresToSqlite {
|
|
|
104
104
|
if (source) {
|
|
105
105
|
return this.translateRequestParameter(source, expr);
|
|
106
106
|
}
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
// Calls qualified by a table in scope resolve to metadata of that table, e.g. `users.schema()`.
|
|
108
|
+
const metadata = rowMetadataFunctions[expr.function.name.toLowerCase()];
|
|
109
|
+
if (metadata != null) {
|
|
110
|
+
return this.translateRowMetadata(metadata, expr);
|
|
109
111
|
}
|
|
112
|
+
return this.invalidExpression(expr.function, 'Invalid schema in function name');
|
|
110
113
|
}
|
|
111
114
|
if (expr.distinct != null || expr.orderBy != null || expr.filter != null || expr.over != null) {
|
|
112
115
|
return this.invalidExpression(expr.function, 'DISTINCT, ORDER BY, FILTER and OVER clauses are not supported');
|
|
@@ -418,6 +421,28 @@ export class PostgresToSqlite {
|
|
|
418
421
|
return this.invalidExpression(expr.function, 'Unknown request function');
|
|
419
422
|
}
|
|
420
423
|
}
|
|
424
|
+
translateRowMetadata(kind, expr) {
|
|
425
|
+
if (expr.args.length != 0) {
|
|
426
|
+
return this.invalidExpression(expr.function, 'Expected no arguments here');
|
|
427
|
+
}
|
|
428
|
+
const resultSet = this.options.resolveTableName(expr, expr.function.schema);
|
|
429
|
+
if (resultSet == null) {
|
|
430
|
+
// resolveTableName will have logged an error, transform with a bogus value to keep going.
|
|
431
|
+
return { type: 'lit_null' };
|
|
432
|
+
}
|
|
433
|
+
if (!(resultSet instanceof BaseSourceResultSet)) {
|
|
434
|
+
return this.invalidExpression(expr.function, `${kind}() is not supported on subqueries`);
|
|
435
|
+
}
|
|
436
|
+
if (kind == 'table_suffix' && resultSet instanceof PhysicalSourceResultSet && !resultSet.tablePattern.isWildcard) {
|
|
437
|
+
this.options.errors.report('table_suffix() is always empty because this table is not selected with a wildcard name.', expr.function, { isWarning: true });
|
|
438
|
+
}
|
|
439
|
+
const replacement = {
|
|
440
|
+
type: 'data',
|
|
441
|
+
source: new RowMetadata(expr, resultSet, kind)
|
|
442
|
+
};
|
|
443
|
+
this.options.locations.sourceForNode.set(replacement, this.sourceLocation(expr.function));
|
|
444
|
+
return replacement;
|
|
445
|
+
}
|
|
421
446
|
sourceLocation(location) {
|
|
422
447
|
return { location, errors: this.options.errors };
|
|
423
448
|
}
|
|
@@ -445,4 +470,9 @@ const forbiddenFunctions = {
|
|
|
445
470
|
random: 'Sync definitions must be deterministic.',
|
|
446
471
|
randomBlob: 'Sync definitions must be deterministic.'
|
|
447
472
|
};
|
|
473
|
+
const rowMetadataFunctions = {
|
|
474
|
+
schema: 'schema',
|
|
475
|
+
table_name: 'table_name',
|
|
476
|
+
table_suffix: 'table_suffix'
|
|
477
|
+
};
|
|
448
478
|
//# sourceMappingURL=sqlite.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/compiler/sqlite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/compiler/sqlite.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
|
/**
|
package/dist/compiler/table.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { MapSourceVisitor, visitExpr } from '../sync_plan/expression_visitor.js';
|
|
2
|
-
import {
|
|
3
|
-
import { ColumnInRow, SyncExpression } from './expression.js';
|
|
2
|
+
import { ColumnInRow, RowMetadata, SyncExpression } from './expression.js';
|
|
4
3
|
import { SingleDependencyExpression } from './filter.js';
|
|
5
4
|
/**
|
|
6
5
|
* The syntactic sources of a {@link SourceResultSet} being added to a table.
|
|
@@ -120,13 +119,13 @@ export class TableValuedResultSet extends BaseSourceResultSet {
|
|
|
120
119
|
return false;
|
|
121
120
|
}
|
|
122
121
|
}
|
|
123
|
-
buildBehaviorHashCode(hasher) {
|
|
122
|
+
buildBehaviorHashCode(tableValued, hasher) {
|
|
124
123
|
hasher.addString(this.tableValuedFunctionName);
|
|
125
|
-
|
|
124
|
+
tableValued.listEquality.hash(hasher, this.parameters);
|
|
126
125
|
}
|
|
127
|
-
behavesIdenticalTo(other) {
|
|
128
|
-
return (
|
|
129
|
-
|
|
126
|
+
behavesIdenticalTo(other, tableValued) {
|
|
127
|
+
return (this.tableValuedFunctionName == other.tableValuedFunctionName &&
|
|
128
|
+
tableValued.listEquality.equals(this.parameters, other.parameters));
|
|
130
129
|
}
|
|
131
130
|
clone(references) {
|
|
132
131
|
return new TableValuedResultSet(this.tableValuedFunctionName, this.parameters.map((p) => new SingleDependencyExpression(references.cloneSyncExpression(p.expression))), references.getClonedSyntacticSource(this.source));
|
|
@@ -150,6 +149,9 @@ export class CloneTableReferences {
|
|
|
150
149
|
if (data instanceof ColumnInRow) {
|
|
151
150
|
return new ColumnInRow(data.syntacticOrigin, this.getClonedSource(data.resultSet), data.column);
|
|
152
151
|
}
|
|
152
|
+
if (data instanceof RowMetadata) {
|
|
153
|
+
return new RowMetadata(data.syntacticOrigin, this.getClonedSource(data.resultSet), data.kind);
|
|
154
|
+
}
|
|
153
155
|
return data;
|
|
154
156
|
}, locations);
|
|
155
157
|
for (const source of originalResultSets.keys()) {
|