@powersync/service-sync-rules 0.0.0-dev-20260203154303 → 0.0.0-dev-20260223080959
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/ExpressionType.d.ts +4 -2
- package/dist/ExpressionType.js.map +1 -1
- package/dist/HydratedSyncRules.d.ts +3 -3
- package/dist/HydratedSyncRules.js.map +1 -1
- package/dist/SqlSyncRules.d.ts +11 -37
- package/dist/SqlSyncRules.js +11 -340
- package/dist/SqlSyncRules.js.map +1 -1
- package/dist/SyncConfig.d.ts +46 -0
- package/dist/SyncConfig.js +99 -0
- package/dist/SyncConfig.js.map +1 -0
- package/dist/TablePattern.d.ts +21 -6
- package/dist/TablePattern.js +57 -30
- package/dist/TablePattern.js.map +1 -1
- package/dist/compatibility.d.ts +7 -0
- package/dist/compatibility.js +34 -0
- package/dist/compatibility.js.map +1 -1
- package/dist/compiler/bucket_resolver.d.ts +3 -3
- package/dist/compiler/bucket_resolver.js.map +1 -1
- package/dist/compiler/compiler.d.ts +22 -3
- package/dist/compiler/compiler.js +22 -5
- package/dist/compiler/compiler.js.map +1 -1
- package/dist/compiler/filter.js +1 -1
- package/dist/compiler/filter.js.map +1 -1
- package/dist/compiler/ir_to_sync_plan.d.ts +6 -0
- package/dist/compiler/ir_to_sync_plan.js +57 -12
- package/dist/compiler/ir_to_sync_plan.js.map +1 -1
- package/dist/compiler/parser.js +53 -13
- package/dist/compiler/parser.js.map +1 -1
- package/dist/compiler/querier_graph.js +72 -24
- package/dist/compiler/querier_graph.js.map +1 -1
- package/dist/compiler/rows.d.ts +35 -5
- package/dist/compiler/rows.js +64 -2
- package/dist/compiler/rows.js.map +1 -1
- package/dist/compiler/scope.d.ts +4 -1
- package/dist/compiler/scope.js +13 -2
- package/dist/compiler/scope.js.map +1 -1
- package/dist/compiler/sqlite.d.ts +2 -11
- package/dist/compiler/sqlite.js +104 -79
- package/dist/compiler/sqlite.js.map +1 -1
- package/dist/compiler/table.d.ts +28 -10
- package/dist/compiler/table.js +28 -3
- package/dist/compiler/table.js.map +1 -1
- package/dist/from_yaml.d.ts +28 -0
- package/dist/from_yaml.js +411 -0
- package/dist/from_yaml.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/json_schema.js +17 -1
- package/dist/json_schema.js.map +1 -1
- package/dist/schema-generators/DartSchemaGenerator.d.ts +3 -3
- package/dist/schema-generators/DartSchemaGenerator.js.map +1 -1
- package/dist/schema-generators/DotNetSchemaGenerator.d.ts +2 -2
- package/dist/schema-generators/DotNetSchemaGenerator.js.map +1 -1
- package/dist/schema-generators/JsLegacySchemaGenerator.d.ts +2 -2
- package/dist/schema-generators/JsLegacySchemaGenerator.js.map +1 -1
- package/dist/schema-generators/KotlinSchemaGenerator.d.ts +2 -2
- package/dist/schema-generators/KotlinSchemaGenerator.js.map +1 -1
- package/dist/schema-generators/RoomSchemaGenerator.d.ts +2 -2
- package/dist/schema-generators/RoomSchemaGenerator.js.map +1 -1
- package/dist/schema-generators/SchemaGenerator.d.ts +8 -3
- package/dist/schema-generators/SchemaGenerator.js +20 -13
- package/dist/schema-generators/SchemaGenerator.js.map +1 -1
- package/dist/schema-generators/SqlSchemaGenerator.d.ts +2 -2
- package/dist/schema-generators/SqlSchemaGenerator.js.map +1 -1
- package/dist/schema-generators/SwiftSchemaGenerator.d.ts +2 -2
- package/dist/schema-generators/SwiftSchemaGenerator.js.map +1 -1
- package/dist/schema-generators/TsSchemaGenerator.d.ts +2 -2
- package/dist/schema-generators/TsSchemaGenerator.js.map +1 -1
- package/dist/sql_functions.d.ts +2 -2
- package/dist/sync_plan/engine/scalar_expression_engine.d.ts +4 -2
- package/dist/sync_plan/engine/scalar_expression_engine.js +18 -0
- package/dist/sync_plan/engine/scalar_expression_engine.js.map +1 -1
- package/dist/sync_plan/evaluator/bucket_data_source.d.ts +1 -0
- package/dist/sync_plan/evaluator/bucket_data_source.js +29 -12
- package/dist/sync_plan/evaluator/bucket_data_source.js.map +1 -1
- package/dist/sync_plan/evaluator/bucket_source.js +1 -1
- package/dist/sync_plan/evaluator/bucket_source.js.map +1 -1
- package/dist/sync_plan/evaluator/index.d.ts +12 -2
- package/dist/sync_plan/evaluator/index.js +26 -20
- package/dist/sync_plan/evaluator/index.js.map +1 -1
- package/dist/sync_plan/evaluator/parameter_evaluator.js +22 -2
- package/dist/sync_plan/evaluator/parameter_evaluator.js.map +1 -1
- package/dist/sync_plan/evaluator/parameter_index_lookup_creator.d.ts +2 -1
- package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js +13 -10
- package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js.map +1 -1
- package/dist/sync_plan/evaluator/table_processor_to_sql.d.ts +20 -0
- package/dist/sync_plan/evaluator/table_processor_to_sql.js +37 -0
- package/dist/sync_plan/evaluator/table_processor_to_sql.js.map +1 -0
- package/dist/sync_plan/expression_visitor.d.ts +1 -1
- package/dist/sync_plan/expression_visitor.js +11 -1
- package/dist/sync_plan/expression_visitor.js.map +1 -1
- package/dist/sync_plan/plan.d.ts +40 -8
- package/dist/sync_plan/schema_inference.d.ts +16 -0
- package/dist/sync_plan/schema_inference.js +123 -0
- package/dist/sync_plan/schema_inference.js.map +1 -0
- package/dist/sync_plan/serialize.d.ts +30 -7
- package/dist/sync_plan/serialize.js +148 -3
- package/dist/sync_plan/serialize.js.map +1 -1
- package/dist/types.d.ts +20 -5
- package/dist/types.js +27 -5
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/package.json +1 -1
- package/schema/sync_rules.json +19 -3
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { CompatibilityContext } from './compatibility.js';
|
|
2
|
+
import { HydratedSyncRules } from './HydratedSyncRules.js';
|
|
3
|
+
import { applyRowContext } from './utils.js';
|
|
4
|
+
/**
|
|
5
|
+
* A class describing how the sync process has been configured (i.e. which buckets and parameters to create and how to
|
|
6
|
+
* resolve buckets for connections).
|
|
7
|
+
*/
|
|
8
|
+
export class SyncConfig {
|
|
9
|
+
bucketDataSources = [];
|
|
10
|
+
bucketParameterLookupSources = [];
|
|
11
|
+
bucketSources = [];
|
|
12
|
+
compatibility = CompatibilityContext.FULL_BACKWARDS_COMPATIBILITY;
|
|
13
|
+
eventDescriptors = [];
|
|
14
|
+
/**
|
|
15
|
+
* The (YAML-based) source contents from which these sync rules have been derived.
|
|
16
|
+
*/
|
|
17
|
+
content;
|
|
18
|
+
constructor(content) {
|
|
19
|
+
this.content = content;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Hydrate the sync rule definitions with persisted state into runnable sync rules.
|
|
23
|
+
*
|
|
24
|
+
* Note: versionedBucketIds is not checked here: It is set at a higher level based
|
|
25
|
+
* on the storage version of the persisted sync rules, and used in hydrationState.
|
|
26
|
+
*
|
|
27
|
+
* @param params.hydrationState Transforms bucket ids based on persisted state.
|
|
28
|
+
*/
|
|
29
|
+
hydrate(params) {
|
|
30
|
+
return new HydratedSyncRules({
|
|
31
|
+
definition: this,
|
|
32
|
+
createParams: params,
|
|
33
|
+
bucketDataSources: this.bucketDataSources,
|
|
34
|
+
bucketParameterIndexLookupCreators: this.bucketParameterLookupSources,
|
|
35
|
+
eventDescriptors: this.eventDescriptors,
|
|
36
|
+
compatibility: this.compatibility
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
applyRowContext(source) {
|
|
40
|
+
return applyRowContext(source, this.compatibility);
|
|
41
|
+
}
|
|
42
|
+
writeSourceTables(sourceTables) {
|
|
43
|
+
for (const bucket of this.bucketDataSources) {
|
|
44
|
+
for (const r of bucket.getSourceTables()) {
|
|
45
|
+
const key = `${r.connectionTag}.${r.schema}.${r.tablePattern}`;
|
|
46
|
+
sourceTables.set(key, r);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
for (const bucket of this.bucketParameterLookupSources) {
|
|
50
|
+
for (const r of bucket.getSourceTables()) {
|
|
51
|
+
const key = `${r.connectionTag}.${r.schema}.${r.tablePattern}`;
|
|
52
|
+
sourceTables.set(key, r);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
for (const event of this.eventDescriptors) {
|
|
56
|
+
for (const r of event.getSourceTables()) {
|
|
57
|
+
const key = `${r.connectionTag}.${r.schema}.${r.tablePattern}`;
|
|
58
|
+
sourceTables.set(key, r);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
getSourceTables() {
|
|
63
|
+
const sourceTables = new Map();
|
|
64
|
+
this.writeSourceTables(sourceTables);
|
|
65
|
+
return [...sourceTables.values()];
|
|
66
|
+
}
|
|
67
|
+
getEventTables() {
|
|
68
|
+
const eventTables = new Map();
|
|
69
|
+
if (this.eventDescriptors) {
|
|
70
|
+
for (const event of this.eventDescriptors) {
|
|
71
|
+
for (const r of event.getSourceTables()) {
|
|
72
|
+
const key = `${r.connectionTag}.${r.schema}.${r.tablePattern}`;
|
|
73
|
+
eventTables.set(key, r);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return [...eventTables.values()];
|
|
78
|
+
}
|
|
79
|
+
tableTriggersEvent(table) {
|
|
80
|
+
return this.eventDescriptors.some((bucket) => bucket.tableTriggersEvent(table));
|
|
81
|
+
}
|
|
82
|
+
tableSyncsData(table) {
|
|
83
|
+
return this.bucketDataSources.some((b) => b.tableSyncsData(table));
|
|
84
|
+
}
|
|
85
|
+
tableSyncsParameters(table) {
|
|
86
|
+
return this.bucketParameterLookupSources.some((b) => b.tableSyncsParameters(table));
|
|
87
|
+
}
|
|
88
|
+
debugGetOutputTables() {
|
|
89
|
+
let result = {};
|
|
90
|
+
for (let bucket of this.bucketDataSources) {
|
|
91
|
+
bucket.debugWriteOutputTables(result);
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
debugRepresentation() {
|
|
96
|
+
return this.bucketSources.map((rules) => rules.debugRepresentation());
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=SyncConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SyncConfig.js","sourceRoot":"","sources":["../src/SyncConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/TablePattern.d.ts
CHANGED
|
@@ -1,19 +1,34 @@
|
|
|
1
1
|
import { Equatable, StableHasher } from './compiler/equality.js';
|
|
2
2
|
import { SourceTableInterface } from './SourceTableInterface.js';
|
|
3
3
|
export declare const DEFAULT_TAG = "default";
|
|
4
|
+
/**
|
|
5
|
+
* A variant of {@link TablePattern} that doesn't require a schema.
|
|
6
|
+
*
|
|
7
|
+
* While we'll always have a default schema when parsing sync configurations, sync plans also need to be stored in a
|
|
8
|
+
* serialized form. There is no guarantee that the default schema used to compile a plan is the same as the one used
|
|
9
|
+
* when loading it, so we can't apply a default value and store it.
|
|
10
|
+
*
|
|
11
|
+
* This class doesn't apply a default schema when constructed.
|
|
12
|
+
*/
|
|
13
|
+
export declare class ImplicitSchemaTablePattern implements Equatable {
|
|
14
|
+
readonly tablePattern: string;
|
|
15
|
+
readonly connectionTag: string | null;
|
|
16
|
+
readonly schema: string | null;
|
|
17
|
+
constructor(schema: string | null, tablePattern: string);
|
|
18
|
+
get isWildcard(): boolean;
|
|
19
|
+
get name(): string;
|
|
20
|
+
toTablePattern(defaultSchema: string): TablePattern;
|
|
21
|
+
buildHash(hasher: StableHasher): void;
|
|
22
|
+
equals(other: unknown): boolean;
|
|
23
|
+
}
|
|
4
24
|
/**
|
|
5
25
|
* Some pattern matching SourceTables.
|
|
6
26
|
*/
|
|
7
|
-
export declare class TablePattern
|
|
27
|
+
export declare class TablePattern extends ImplicitSchemaTablePattern {
|
|
8
28
|
readonly connectionTag: string;
|
|
9
29
|
readonly schema: string;
|
|
10
|
-
readonly tablePattern: string;
|
|
11
30
|
constructor(schema: string, tablePattern: string);
|
|
12
|
-
get isWildcard(): boolean;
|
|
13
31
|
get tablePrefix(): string;
|
|
14
|
-
get name(): string;
|
|
15
32
|
matches(table: SourceTableInterface): boolean;
|
|
16
33
|
suffix(table: string): string;
|
|
17
|
-
buildHash(hasher: StableHasher): void;
|
|
18
|
-
equals(other: unknown): boolean;
|
|
19
34
|
}
|
package/dist/TablePattern.js
CHANGED
|
@@ -1,41 +1,79 @@
|
|
|
1
1
|
export const DEFAULT_TAG = 'default';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* A variant of {@link TablePattern} that doesn't require a schema.
|
|
4
|
+
*
|
|
5
|
+
* While we'll always have a default schema when parsing sync configurations, sync plans also need to be stored in a
|
|
6
|
+
* serialized form. There is no guarantee that the default schema used to compile a plan is the same as the one used
|
|
7
|
+
* when loading it, so we can't apply a default value and store it.
|
|
8
|
+
*
|
|
9
|
+
* This class doesn't apply a default schema when constructed.
|
|
4
10
|
*/
|
|
5
|
-
export class
|
|
11
|
+
export class ImplicitSchemaTablePattern {
|
|
12
|
+
tablePattern;
|
|
6
13
|
connectionTag;
|
|
7
14
|
schema;
|
|
8
|
-
tablePattern;
|
|
9
15
|
constructor(schema, tablePattern) {
|
|
10
|
-
|
|
11
|
-
if (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
this.tablePattern = tablePattern;
|
|
17
|
+
if (schema) {
|
|
18
|
+
const splitSchema = schema.split('.');
|
|
19
|
+
if (splitSchema.length > 2) {
|
|
20
|
+
throw new Error(`Invalid schema: ${schema}`);
|
|
21
|
+
}
|
|
22
|
+
if (splitSchema.length == 2) {
|
|
23
|
+
this.connectionTag = splitSchema[0];
|
|
24
|
+
this.schema = splitSchema[1];
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this.connectionTag = DEFAULT_TAG;
|
|
28
|
+
this.schema = schema;
|
|
29
|
+
}
|
|
17
30
|
}
|
|
18
31
|
else {
|
|
19
|
-
this.connectionTag =
|
|
20
|
-
this.schema =
|
|
32
|
+
this.connectionTag = null;
|
|
33
|
+
this.schema = null;
|
|
21
34
|
}
|
|
22
|
-
this.tablePattern = tablePattern;
|
|
23
35
|
}
|
|
24
36
|
get isWildcard() {
|
|
25
37
|
return this.tablePattern.endsWith('%');
|
|
26
38
|
}
|
|
27
|
-
get tablePrefix() {
|
|
28
|
-
if (!this.isWildcard) {
|
|
29
|
-
throw new Error('Not a wildcard table');
|
|
30
|
-
}
|
|
31
|
-
return this.tablePattern.substring(0, this.tablePattern.length - 1);
|
|
32
|
-
}
|
|
33
39
|
get name() {
|
|
34
40
|
if (this.isWildcard) {
|
|
35
41
|
throw new Error('Cannot get name for wildcard table');
|
|
36
42
|
}
|
|
37
43
|
return this.tablePattern;
|
|
38
44
|
}
|
|
45
|
+
toTablePattern(defaultSchema) {
|
|
46
|
+
return new TablePattern(this.schema ?? defaultSchema, this.tablePattern);
|
|
47
|
+
}
|
|
48
|
+
buildHash(hasher) {
|
|
49
|
+
if (this.connectionTag) {
|
|
50
|
+
hasher.addString(this.connectionTag);
|
|
51
|
+
}
|
|
52
|
+
if (this.schema) {
|
|
53
|
+
hasher.addString(this.schema);
|
|
54
|
+
}
|
|
55
|
+
hasher.addString(this.tablePattern);
|
|
56
|
+
}
|
|
57
|
+
equals(other) {
|
|
58
|
+
return (other instanceof ImplicitSchemaTablePattern &&
|
|
59
|
+
other.connectionTag == this.connectionTag &&
|
|
60
|
+
other.schema == this.schema &&
|
|
61
|
+
other.tablePattern == this.tablePattern);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Some pattern matching SourceTables.
|
|
66
|
+
*/
|
|
67
|
+
export class TablePattern extends ImplicitSchemaTablePattern {
|
|
68
|
+
constructor(schema, tablePattern) {
|
|
69
|
+
super(schema, tablePattern);
|
|
70
|
+
}
|
|
71
|
+
get tablePrefix() {
|
|
72
|
+
if (!this.isWildcard) {
|
|
73
|
+
throw new Error('Not a wildcard table');
|
|
74
|
+
}
|
|
75
|
+
return this.tablePattern.substring(0, this.tablePattern.length - 1);
|
|
76
|
+
}
|
|
39
77
|
matches(table) {
|
|
40
78
|
if (this.connectionTag != table.connectionTag || this.schema != table.schema) {
|
|
41
79
|
return false;
|
|
@@ -53,16 +91,5 @@ export class TablePattern {
|
|
|
53
91
|
}
|
|
54
92
|
return table.substring(this.tablePrefix.length);
|
|
55
93
|
}
|
|
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
|
-
}
|
|
67
94
|
}
|
|
68
95
|
//# sourceMappingURL=TablePattern.js.map
|
package/dist/TablePattern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TablePattern.js","sourceRoot":"","sources":["../src/TablePattern.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC
|
|
1
|
+
{"version":3,"file":"TablePattern.js","sourceRoot":"","sources":["../src/TablePattern.ts"],"names":[],"mappings":"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"}
|
package/dist/compatibility.d.ts
CHANGED
|
@@ -55,8 +55,15 @@ export declare class CompatibilityContext {
|
|
|
55
55
|
readonly maxTimeValuePrecision: TimeValuePrecision | null;
|
|
56
56
|
constructor(options: CompatibilityContextOptions);
|
|
57
57
|
isEnabled(option: CompatibilityOption): boolean;
|
|
58
|
+
serialize(): SerializedCompatibilityContext;
|
|
59
|
+
static deserialize(serialized: SerializedCompatibilityContext): CompatibilityContext;
|
|
58
60
|
/**
|
|
59
61
|
* A {@link CompatibilityContext} in which no fixes are applied.
|
|
60
62
|
*/
|
|
61
63
|
static FULL_BACKWARDS_COMPATIBILITY: CompatibilityContext;
|
|
62
64
|
}
|
|
65
|
+
export interface SerializedCompatibilityContext {
|
|
66
|
+
edition: number;
|
|
67
|
+
overrides: Record<string, boolean>;
|
|
68
|
+
maxTimeValuePrecision?: number;
|
|
69
|
+
}
|
package/dist/compatibility.js
CHANGED
|
@@ -74,6 +74,40 @@ export class CompatibilityContext {
|
|
|
74
74
|
isEnabled(option) {
|
|
75
75
|
return this.overrides.get(option) ?? option.fixedIn <= this.edition;
|
|
76
76
|
}
|
|
77
|
+
serialize() {
|
|
78
|
+
const serialized = {
|
|
79
|
+
edition: this.edition,
|
|
80
|
+
overrides: {}
|
|
81
|
+
};
|
|
82
|
+
this.overrides.forEach((enabled, key) => (serialized.overrides[key.name] = enabled));
|
|
83
|
+
if (this.maxTimeValuePrecision) {
|
|
84
|
+
serialized.maxTimeValuePrecision = this.maxTimeValuePrecision.subSecondDigits;
|
|
85
|
+
}
|
|
86
|
+
return serialized;
|
|
87
|
+
}
|
|
88
|
+
static deserialize(serialized) {
|
|
89
|
+
const overrides = new Map();
|
|
90
|
+
for (const [option, enabled] of Object.entries(serialized.overrides)) {
|
|
91
|
+
const knownOption = CompatibilityOption.byName[option];
|
|
92
|
+
if (knownOption) {
|
|
93
|
+
overrides.set(knownOption, enabled);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
let maxTimeValuePrecision;
|
|
97
|
+
if (serialized.maxTimeValuePrecision != null) {
|
|
98
|
+
for (const option of Object.values(TimeValuePrecision.byName)) {
|
|
99
|
+
if (option.subSecondDigits == serialized.maxTimeValuePrecision) {
|
|
100
|
+
maxTimeValuePrecision = option;
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return new CompatibilityContext({
|
|
106
|
+
edition: serialized.edition,
|
|
107
|
+
overrides,
|
|
108
|
+
maxTimeValuePrecision
|
|
109
|
+
});
|
|
110
|
+
}
|
|
77
111
|
/**
|
|
78
112
|
* A {@link CompatibilityContext} in which no fixes are applied.
|
|
79
113
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../src/compatibility.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../src/compatibility.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,mEAAU,CAAA;IACV,+EAAgB,CAAA;AAClB,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B;AAED,MAAM,OAAO,kBAAkB;IAElB;IACA;IAFX,YACW,IAAY,EACZ,eAAuB;QADvB,SAAI,GAAJ,IAAI,CAAQ;QACZ,oBAAe,GAAf,eAAe,CAAQ;IAC/B,CAAC;IAEJ,MAAM,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,YAAY,GAAG,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,YAAY,GAAG,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAE9D,MAAM,CAAC,MAAM,GAAuC,MAAM,CAAC,MAAM,CAAC;QAChE,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;;AAGL;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAEnB;IACA;IACA;IAHX,YACW,IAAY,EACZ,WAAmB,EACnB,OAA6B;QAF7B,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAQ;QACnB,YAAO,GAAP,OAAO,CAAsB;IACrC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,GAAG,IAAI,mBAAmB,CAChD,oBAAoB,EACpB,+IAA+I,EAC/I,oBAAoB,CAAC,YAAY,CAClC,CAAC;IAEF,MAAM,CAAC,kBAAkB,GAAG,IAAI,mBAAmB,CACjD,sBAAsB,EACtB,oJAAoJ,EACpJ,oBAAoB,CAAC,YAAY,CAClC,CAAC;IAEF,MAAM,CAAC,gBAAgB,GAAG,IAAI,mBAAmB,CAC/C,oBAAoB,EACpB,+OAA+O,EAC/O,oBAAoB,CAAC,YAAY,CAClC,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,IAAI,mBAAmB,CAC1C,uBAAuB,EACvB,0FAA0F,EAC1F,oBAAoB,CAAC,YAAY,CAClC,CAAC;IAEF,MAAM,CAAC,MAAM,GAAwC,MAAM,CAAC,MAAM,CAAC;QACjE,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;QAC1C,oBAAoB,EAAE,IAAI,CAAC,kBAAkB;QAC7C,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;QACzC,qBAAqB,EAAE,IAAI,CAAC,WAAW;KACxC,CAAC,CAAC;;AASL,MAAM,OAAO,oBAAoB;IAC/B;;;;;OAKG;IACM,OAAO,CAAuB;IAEvC;;OAEG;IACM,SAAS,CAAoC;IAEtD;;;;;OAKG;IACM,qBAAqB,CAA4B;IAE1D,YAAY,OAAoC;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,GAAG,EAAE,CAAC;QAChD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,IAAI,CAAC;IACrE,CAAC;IAED,SAAS,CAAC,MAA2B;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;IACtE,CAAC;IAED,SAAS;QACP,MAAM,UAAU,GAAmC;YACjD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QACrF,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,UAAU,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC;QAChF,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,UAA0C;QAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgC,CAAC;QAC1D,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACrE,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,WAAW,EAAE,CAAC;gBAChB,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,IAAI,qBAAqD,CAAC;QAC1D,IAAI,UAAU,CAAC,qBAAqB,IAAI,IAAI,EAAE,CAAC;YAC7C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,IAAI,MAAM,CAAC,eAAe,IAAI,UAAU,CAAC,qBAAqB,EAAE,CAAC;oBAC/D,qBAAqB,GAAG,MAAM,CAAC;oBAC/B,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,oBAAoB,CAAC;YAC9B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,SAAS;YACT,qBAAqB;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,4BAA4B,GAAyB,IAAI,oBAAoB,CAAC;QACnF,OAAO,EAAE,oBAAoB,CAAC,MAAM;KACrC,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Equatable, HashSet, StableHasher } from './equality.js';
|
|
2
2
|
import { RequestExpression, RowExpression } from './filter.js';
|
|
3
3
|
import { PointLookup, RowEvaluator } from './rows.js';
|
|
4
|
-
import {
|
|
4
|
+
import { TableValuedResultSet } from './table.js';
|
|
5
5
|
import { StreamOptions } from '../sync_plan/plan.js';
|
|
6
6
|
/**
|
|
7
7
|
* Describes how to resolve a subscription to buckets.
|
|
@@ -28,10 +28,10 @@ export declare class ParameterLookup implements Equatable {
|
|
|
28
28
|
equals(other: unknown): boolean;
|
|
29
29
|
}
|
|
30
30
|
export declare class EvaluateTableValuedFunction implements Equatable {
|
|
31
|
-
readonly tableValuedFunction:
|
|
31
|
+
readonly tableValuedFunction: TableValuedResultSet;
|
|
32
32
|
readonly outputs: RowExpression[];
|
|
33
33
|
readonly filters: RowExpression[];
|
|
34
|
-
constructor(tableValuedFunction:
|
|
34
|
+
constructor(tableValuedFunction: TableValuedResultSet, outputs: RowExpression[], filters: RowExpression[]);
|
|
35
35
|
buildHash(hasher: StableHasher): void;
|
|
36
36
|
equals(other: unknown): boolean;
|
|
37
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bucket_resolver.js","sourceRoot":"","sources":["../../src/compiler/bucket_resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAMnG;;GAEG;AACH,MAAM,OAAO,cAAc;IAEd;IACA;IACA;IACA;IACA;IALX,YACW,OAAsB,EACtB,cAAmC,EACnC,YAAiC,EACjC,cAA6B,EAC7B,UAAkB;QAJlB,YAAO,GAAP,OAAO,CAAe;QACtB,mBAAc,GAAd,cAAc,CAAqB;QACnC,iBAAY,GAAZ,YAAY,CAAqB;QACjC,mBAAc,GAAd,cAAc,CAAe;QAC7B,eAAU,GAAV,UAAU,CAAQ;IAC1B,CAAC;IAEJ,sBAAsB,CAAC,MAAoB;QACzC,gCAAgC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,yBAAyB,CAAC,KAAqB;QAC7C,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACxF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7E,CAAC;CACF;AAOD,MAAM,OAAO,eAAe;IAEf;IACA;IAFX,YACW,MAAmB,EACnB,aAA+B;QAD/B,WAAM,GAAN,MAAM,CAAa;QACnB,kBAAa,GAAb,aAAa,CAAkB;IACvC,CAAC;IAEJ,SAAS,CAAC,MAAoB;QAC5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAAc;QACnB,OAAO,CACL,KAAK,YAAY,eAAe;YAChC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5C,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CACjF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,2BAA2B;IAE3B;IACA;IACA;IAHX,YACW,
|
|
1
|
+
{"version":3,"file":"bucket_resolver.js","sourceRoot":"","sources":["../../src/compiler/bucket_resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,23 @@ import { PointLookup, RowEvaluator } from './rows.js';
|
|
|
3
3
|
import { StreamResolver } from './bucket_resolver.js';
|
|
4
4
|
import { StreamOptions, SyncPlan } from '../sync_plan/plan.js';
|
|
5
5
|
import { PreparedSubquery } from './sqlite.js';
|
|
6
|
+
import { SourceSchema } from '../types.js';
|
|
7
|
+
export interface SyncStreamsCompilerOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Used exclusively for linting against the given {@link schema}.
|
|
10
|
+
*
|
|
11
|
+
* The default schema must not affect compiled sync plans because sync plans can be loaded with different default
|
|
12
|
+
* schemas.
|
|
13
|
+
*/
|
|
14
|
+
defaultSchema?: string;
|
|
15
|
+
/**
|
|
16
|
+
* An optional schema, used exclusively for linting table and column references that can't be resolved in it.
|
|
17
|
+
*
|
|
18
|
+
* Sync streams compile to the same plan regardless of the assumed schema, and it's possible to reuse compiled sync
|
|
19
|
+
* streams across schema changes.
|
|
20
|
+
*/
|
|
21
|
+
schema?: SourceSchema;
|
|
22
|
+
}
|
|
6
23
|
/**
|
|
7
24
|
* State for compiling sync streams.
|
|
8
25
|
*
|
|
@@ -17,10 +34,10 @@ import { PreparedSubquery } from './sqlite.js';
|
|
|
17
34
|
* and their instantiation, as well as static filters that need to be added to reach row.
|
|
18
35
|
*/
|
|
19
36
|
export declare class SyncStreamsCompiler {
|
|
20
|
-
readonly
|
|
37
|
+
readonly options: SyncStreamsCompilerOptions;
|
|
21
38
|
readonly output: CompiledStreamQueries;
|
|
22
39
|
private readonly locations;
|
|
23
|
-
constructor(
|
|
40
|
+
constructor(options: SyncStreamsCompilerOptions);
|
|
24
41
|
/**
|
|
25
42
|
* Tries to parse the SQL query as a `SELECT` statement into a form supported for common table expressions.
|
|
26
43
|
*
|
|
@@ -70,7 +87,9 @@ export interface IndividualSyncStreamCompiler {
|
|
|
70
87
|
* binds errors to one specific SQL string.
|
|
71
88
|
*/
|
|
72
89
|
export interface ParsingErrorListener {
|
|
73
|
-
report(message: string, location: NodeLocation | PGNode
|
|
90
|
+
report(message: string, location: NodeLocation | PGNode, options?: {
|
|
91
|
+
isWarning: boolean;
|
|
92
|
+
}): void;
|
|
74
93
|
}
|
|
75
94
|
/**
|
|
76
95
|
* A mutable collection of resources (row evaluators, point lookups and stream resolvers) created for all streams in a
|
|
@@ -19,11 +19,11 @@ import { SqlScope } from './scope.js';
|
|
|
19
19
|
* and their instantiation, as well as static filters that need to be added to reach row.
|
|
20
20
|
*/
|
|
21
21
|
export class SyncStreamsCompiler {
|
|
22
|
-
|
|
22
|
+
options;
|
|
23
23
|
output = new CompiledStreamQueries();
|
|
24
24
|
locations = new NodeLocations();
|
|
25
|
-
constructor(
|
|
26
|
-
this.
|
|
25
|
+
constructor(options) {
|
|
26
|
+
this.options = options;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Tries to parse the SQL query as a `SELECT` statement into a form supported for common table expressions.
|
|
@@ -43,7 +43,10 @@ export class SyncStreamsCompiler {
|
|
|
43
43
|
parentScope: new SqlScope({}),
|
|
44
44
|
errors
|
|
45
45
|
});
|
|
46
|
-
const
|
|
46
|
+
const stmt = tryParse(sql, errors);
|
|
47
|
+
if (stmt == null) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
47
50
|
return parser.parseAsSubquery(stmt);
|
|
48
51
|
}
|
|
49
52
|
/**
|
|
@@ -59,7 +62,10 @@ export class SyncStreamsCompiler {
|
|
|
59
62
|
rootScope.registerCommonTableExpression(name, cte);
|
|
60
63
|
},
|
|
61
64
|
addQuery: (sql, errors) => {
|
|
62
|
-
const
|
|
65
|
+
const stmt = tryParse(sql, errors);
|
|
66
|
+
if (stmt == null) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
63
69
|
const parser = new StreamQueryParser({
|
|
64
70
|
compiler: this,
|
|
65
71
|
originalText: sql,
|
|
@@ -76,6 +82,17 @@ export class SyncStreamsCompiler {
|
|
|
76
82
|
};
|
|
77
83
|
}
|
|
78
84
|
}
|
|
85
|
+
function tryParse(sql, errors) {
|
|
86
|
+
try {
|
|
87
|
+
const [stmt] = parse(sql, { locationTracking: true });
|
|
88
|
+
return stmt;
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
const location = e.token?._location;
|
|
92
|
+
errors.report(e.message, location ?? { start: 0, end: sql.length });
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
79
96
|
/**
|
|
80
97
|
* A mutable collection of resources (row evaluators, point lookups and stream resolvers) created for all streams in a
|
|
81
98
|
* definition file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/compiler/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/compiler/compiler.ts"],"names":[],"mappings":"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"}
|
package/dist/compiler/filter.js
CHANGED
|
@@ -72,7 +72,7 @@ export class SingleDependencyExpression {
|
|
|
72
72
|
export class RowExpression extends SingleDependencyExpression {
|
|
73
73
|
constructor(expression) {
|
|
74
74
|
super(expression);
|
|
75
|
-
if (this.
|
|
75
|
+
if (this.dependsOnConnection) {
|
|
76
76
|
throw new InvalidExpressionError('Does not depend on a single result set');
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/compiler/filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAmB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAqBnD,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,YAAY,0BAA0B,IAAI,KAAK,YAAY,YAAY,CAAC;AACtF,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,0BAA0B;IAC5B,UAAU,CAAiB;IACpC;;;;OAIG;IACM,SAAS,CAAyB;IAE3C;;OAEG;IACM,mBAAmB,CAAU;IAEtC,YAAY,UAAuD;QACjE,IAAI,UAAU,YAAY,cAAc,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,0BAA0B,CAAC,uBAAuB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC7F,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,IAAI,sBAAsB,CAAC,4EAA4E,CAAC,CAAC;YACjH,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YACtC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,2BAA2B,CAAC,KAA8B;QACxD,OAAO,KAAK,YAAY,0BAA0B,IAAI,KAAK,CAAC,UAAU,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtH,CAAC;IAED,qCAAqC,CAAC,MAAoB;QACxD,IAAI,CAAC,UAAU,CAAC,qCAAqC,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAiC;QAC9D,IAAI,SAAS,GAA2B,IAAI,CAAC;QAC7C,IAAI,yBAAyB,GAAG,KAAK,CAAC;QAEtC,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;YAChC,IAAI,UAAU,YAAY,WAAW,EAAE,CAAC;gBACtC,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC,IAAI,yBAAyB,EAAE,CAAC;oBAC3F,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;oBACtB,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,yBAAyB,GAAG,IAAI,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IAChD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,0BAA0B;IAG3D,YAAY,UAAuD;QACjE,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/compiler/filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,8 +28,14 @@ export declare class CompilerModelToSyncPlan {
|
|
|
28
28
|
translate(source: CompiledStreamQueries): plan.SyncPlan;
|
|
29
29
|
private createBucketSource;
|
|
30
30
|
private translatePartitionKey;
|
|
31
|
+
private translateAddedTableValuedFunctions;
|
|
31
32
|
private translateRowEvaluator;
|
|
32
33
|
private translatePointLookup;
|
|
34
|
+
/**
|
|
35
|
+
* @param expression The expression to translate.
|
|
36
|
+
* @param table The implicit table (from context) that columns are resolved against.
|
|
37
|
+
* @param tableValued Additional table-valued functions that can be referenced.
|
|
38
|
+
*/
|
|
33
39
|
private translateExpression;
|
|
34
40
|
private translateStreamResolver;
|
|
35
41
|
private translateExpandingLookup;
|