Skip to content

Commit 68c69e6

Browse files
committed
Rename BucketParameterLookupSource -> ParameterIndexLookupCreator.
1 parent 7f60a4b commit 68c69e6

File tree

11 files changed

+59
-54
lines changed

11 files changed

+59
-54
lines changed

packages/sync-rules/src/BucketSource.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export interface BucketSource {
6161
*
6262
* The same source could in theory be present in multiple stream definitions.
6363
*/
64-
readonly parameterLookupSources: BucketParameterLookupSourceDefinition[];
64+
readonly parameterIndexLookupCreators: ParameterIndexLookupCreator[];
6565

6666
debugRepresentation(): any;
6767
}
@@ -118,11 +118,11 @@ export interface BucketDataSource {
118118
}
119119

120120
/**
121-
* A parameter lookup source defines how to extract parameter lookup values from parameter queries.
121+
* This defines how to extract parameter index lookup values from parameter queries or stream subqueries.
122122
*
123-
* This is only relevant for parameter queries that query tables.
123+
* This is only relevant for parameter queries and subqueries that query tables.
124124
*/
125-
export interface BucketParameterLookupSourceDefinition {
125+
export interface ParameterIndexLookupCreator {
126126
/**
127127
* lookupName + queryId is used to uniquely identify parameter queries for parameter storage.
128128
*
@@ -207,9 +207,9 @@ export function hydrateEvaluateRow(hydrationState: HydrationState, source: Bucke
207207

208208
export function hydrateEvaluateParameterRow(
209209
hydrationState: HydrationState,
210-
source: BucketParameterLookupSourceDefinition
210+
source: ParameterIndexLookupCreator
211211
): ScopedEvaluateParameterRow {
212-
const scope = hydrationState.getParameterLookupScope(source);
212+
const scope = hydrationState.getParameterIndexLookupScope(source);
213213
return (sourceTable: SourceTableInterface, row: SqliteRow): EvaluatedParametersResult[] => {
214214
return source.evaluateParameterRow(sourceTable, row).map((result) => {
215215
if (isEvaluationError(result)) {
@@ -235,9 +235,9 @@ export function mergeDataSources(
235235
};
236236
}
237237

238-
export function mergeParameterLookupSources(
238+
export function mergeParameterIndexLookupCreators(
239239
hydrationState: HydrationState,
240-
sources: BucketParameterLookupSourceDefinition[]
240+
sources: ParameterIndexLookupCreator[]
241241
): { evaluateParameterRow: ScopedEvaluateParameterRow } {
242242
const withScope = sources.map((source) => hydrateEvaluateParameterRow(hydrationState, source));
243243
return {
@@ -265,7 +265,10 @@ export function debugHydratedMergedSource(bucketSource: BucketSource, params?: C
265265
const hydrationState = params?.hydrationState ?? DEFAULT_HYDRATION_STATE;
266266
const resolvedParams = { hydrationState };
267267
const dataSource = mergeDataSources(hydrationState, bucketSource.dataSources);
268-
const parameterLookupSource = mergeParameterLookupSources(hydrationState, bucketSource.parameterLookupSources);
268+
const parameterLookupSource = mergeParameterIndexLookupCreators(
269+
hydrationState,
270+
bucketSource.parameterIndexLookupCreators
271+
);
269272
const parameterQuerierSource = mergeParameterQuerierSources(
270273
bucketSource.parameterQuerierSources.map((source) => source.createParameterQuerierSource(resolvedParams))
271274
);

packages/sync-rules/src/HydratedSyncRules.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Scope } from 'ajv/dist/compile/codegen/scope.js';
22
import { BucketDataSource, CreateSourceParams, HydratedBucketSource } from './BucketSource.js';
33
import { BucketDataScope, ParameterLookupScope } from './HydrationState.js';
44
import {
5-
BucketParameterLookupSourceDefinition,
5+
ParameterIndexLookupCreator,
66
BucketParameterQuerier,
77
buildBucketName,
88
CompatibilityContext,
@@ -16,7 +16,7 @@ import {
1616
isEvaluationError,
1717
mergeBucketParameterQueriers,
1818
mergeDataSources,
19-
mergeParameterLookupSources,
19+
mergeParameterIndexLookupCreators,
2020
QuerierError,
2121
ScopedEvaluateParameterRow,
2222
ScopedEvaluateRow,
@@ -46,17 +46,17 @@ export class HydratedSyncRules {
4646
definition: SqlSyncRules;
4747
createParams: CreateSourceParams;
4848
bucketDataSources: BucketDataSource[];
49-
bucketParameterLookupSources: BucketParameterLookupSourceDefinition[];
49+
bucketParameterIndexLookupCreators: ParameterIndexLookupCreator[];
5050
eventDescriptors?: SqlEventDescriptor[];
5151
compatibility?: CompatibilityContext;
5252
}) {
5353
const hydrationState = params.createParams.hydrationState;
5454

5555
this.definition = params.definition;
5656
this.innerEvaluateRow = mergeDataSources(hydrationState, params.bucketDataSources).evaluateRow;
57-
this.innerEvaluateParameterRow = mergeParameterLookupSources(
57+
this.innerEvaluateParameterRow = mergeParameterIndexLookupCreators(
5858
hydrationState,
59-
params.bucketParameterLookupSources
59+
params.bucketParameterIndexLookupCreators
6060
).evaluateParameterRow;
6161

6262
if (params.eventDescriptors) {

packages/sync-rules/src/HydrationState.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BucketDataSource, BucketParameterLookupSourceDefinition } from './BucketSource.js';
1+
import { BucketDataSource, ParameterIndexLookupCreator } from './BucketSource.js';
22

33
export interface BucketDataScope {
44
/** The prefix is the bucket name before the parameters. */
@@ -29,7 +29,7 @@ export interface HydrationState<
2929
/**
3030
* Given a bucket parameter lookup definition, get the persistence name to use.
3131
*/
32-
getParameterLookupScope(source: BucketParameterLookupSourceDefinition): U;
32+
getParameterIndexLookupScope(source: ParameterIndexLookupCreator): U;
3333
}
3434

3535
/**
@@ -43,7 +43,7 @@ export const DEFAULT_HYDRATION_STATE: HydrationState = {
4343
bucketPrefix: source.uniqueName
4444
};
4545
},
46-
getParameterLookupScope(source) {
46+
getParameterIndexLookupScope(source) {
4747
return source.defaultLookupScope;
4848
}
4949
};
@@ -68,7 +68,7 @@ export function versionedHydrationState(version: number): HydrationState {
6868
};
6969
},
7070

71-
getParameterLookupScope(source: BucketParameterLookupSourceDefinition): ParameterLookupScope {
71+
getParameterIndexLookupScope(source: ParameterIndexLookupCreator): ParameterLookupScope {
7272
// No transformations applied here
7373
return source.defaultLookupScope;
7474
}

packages/sync-rules/src/SqlBucketDescriptor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export class SqlBucketDescriptor implements BucketSource {
5454
return [this.dataSource];
5555
}
5656

57-
get parameterLookupSources() {
57+
get parameterIndexLookupCreators() {
5858
return this.parameterQueries;
5959
}
6060

packages/sync-rules/src/SqlParameterQuery.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
PendingQueriers
1313
} from './BucketParameterQuerier.js';
1414
import {
15-
BucketParameterLookupSourceDefinition,
15+
ParameterIndexLookupCreator,
1616
BucketParameterQuerierSource,
1717
BucketParameterQuerierSourceDefinition,
1818
CreateSourceParams
@@ -81,9 +81,7 @@ export interface SqlParameterQueryOptions {
8181
* SELECT id as user_id FROM users WHERE users.user_id = token_parameters.user_id
8282
* SELECT id as user_id, token_parameters.is_admin as is_admin FROM users WHERE users.user_id = token_parameters.user_id
8383
*/
84-
export class SqlParameterQuery
85-
implements BucketParameterLookupSourceDefinition, BucketParameterQuerierSourceDefinition
86-
{
84+
export class SqlParameterQuery implements ParameterIndexLookupCreator, BucketParameterQuerierSourceDefinition {
8785
static fromSql(
8886
descriptorName: string,
8987
sql: string,
@@ -360,7 +358,7 @@ export class SqlParameterQuery
360358
createParameterQuerierSource(params: CreateSourceParams): BucketParameterQuerierSource {
361359
const hydrationState = params.hydrationState;
362360
const bucketScope = hydrationState.getBucketSourceScope(this.querierDataSource);
363-
const lookupState = hydrationState.getParameterLookupScope(this);
361+
const lookupState = hydrationState.getParameterIndexLookupScope(this);
364362

365363
return {
366364
pushBucketParameterQueriers: (result: PendingQueriers, options: GetQuerierOptions) => {

packages/sync-rules/src/SqlSyncRules.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { isValidPriority } from './BucketDescription.js';
33
import { BucketParameterQuerier, QuerierError } from './BucketParameterQuerier.js';
44
import {
55
BucketDataSource,
6-
BucketParameterLookupSourceDefinition,
6+
ParameterIndexLookupCreator,
77
BucketParameterQuerierSourceDefinition,
88
BucketSource,
99
CreateSourceParams
@@ -90,7 +90,7 @@ export interface GetBucketParameterQuerierResult {
9090

9191
export class SqlSyncRules {
9292
bucketDataSources: BucketDataSource[] = [];
93-
bucketParameterLookupSources: BucketParameterLookupSourceDefinition[] = [];
93+
bucketParameterLookupSources: ParameterIndexLookupCreator[] = [];
9494
bucketParameterQuerierSources: BucketParameterQuerierSourceDefinition[] = [];
9595
bucketSources: BucketSource[] = [];
9696

@@ -258,7 +258,7 @@ export class SqlSyncRules {
258258

259259
rules.bucketSources.push(descriptor);
260260
rules.bucketDataSources.push(...descriptor.dataSources);
261-
rules.bucketParameterLookupSources.push(...descriptor.parameterLookupSources);
261+
rules.bucketParameterLookupSources.push(...descriptor.parameterIndexLookupCreators);
262262
rules.bucketParameterQuerierSources.push(...descriptor.parameterQuerierSources);
263263
}
264264

@@ -286,7 +286,7 @@ export class SqlSyncRules {
286286
const [parsed, errors] = syncStreamFromSql(key, q, queryOptions);
287287
rules.bucketSources.push(parsed);
288288
rules.bucketDataSources.push(...parsed.dataSources);
289-
rules.bucketParameterLookupSources.push(...parsed.parameterLookupSources);
289+
rules.bucketParameterLookupSources.push(...parsed.parameterIndexLookupCreators);
290290
rules.bucketParameterQuerierSources.push(...parsed.parameterQuerierSources);
291291
return {
292292
parsed: true,
@@ -417,7 +417,7 @@ export class SqlSyncRules {
417417
definition: this,
418418
createParams: resolvedParams,
419419
bucketDataSources: this.bucketDataSources,
420-
bucketParameterLookupSources: this.bucketParameterLookupSources,
420+
bucketParameterIndexLookupCreators: this.bucketParameterLookupSources,
421421
eventDescriptors: this.eventDescriptors,
422422
compatibility: this.compatibility
423423
});

packages/sync-rules/src/streams/filter.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
import { isJsonValue, normalizeParameterValue } from '../utils.js';
1717

1818
import { NodeLocation } from 'pgsql-ast-parser';
19-
import { BucketParameterLookupSourceDefinition, CreateSourceParams } from '../BucketSource.js';
19+
import { ParameterIndexLookupCreator, CreateSourceParams } from '../BucketSource.js';
2020
import { HydrationState, ParameterLookupScope } from '../HydrationState.js';
2121
import { SourceTableInterface } from '../SourceTableInterface.js';
2222
import { SubqueryEvaluator } from './parameter.js';
@@ -263,16 +263,16 @@ export class Subquery {
263263

264264
const column = this.column;
265265

266-
let lookupSources: BucketParameterLookupSourceDefinition[] = [];
266+
let lookupCreators: ParameterIndexLookupCreator[] = [];
267267
let lookupsForRequest: ((
268268
hydrationState: HydrationState
269269
) => (parameters: RequestParameters) => ScopedParameterLookup[])[] = [];
270270

271271
for (let [variant, id] of innerVariants) {
272272
const source = new SubqueryParameterLookupSource(this.table, column, variant, id, context.streamName);
273-
lookupSources.push(source);
273+
lookupCreators.push(source);
274274
lookupsForRequest.push((hydrationState: HydrationState) => {
275-
const scope = hydrationState.getParameterLookupScope(source);
275+
const scope = hydrationState.getParameterIndexLookupScope(source);
276276
return (parameters: RequestParameters) => {
277277
const lookups: ScopedParameterLookup[] = [];
278278
const instantiations = variant.findStaticInstantiations(parameters);
@@ -286,8 +286,8 @@ export class Subquery {
286286

287287
const evaluator: SubqueryEvaluator = {
288288
parameterTable: this.table,
289-
lookupSources() {
290-
return lookupSources;
289+
indexLookupCreators() {
290+
return lookupCreators;
291291
},
292292
hydrateLookupsForRequest(hydrationState: HydrationState) {
293293
const hydrated = lookupsForRequest.map((fn) => fn(hydrationState));
@@ -531,7 +531,7 @@ export class EvaluateSimpleCondition extends FilterOperator {
531531
}
532532
}
533533

534-
export class SubqueryParameterLookupSource implements BucketParameterLookupSourceDefinition {
534+
export class SubqueryParameterLookupSource implements ParameterIndexLookupCreator {
535535
constructor(
536536
private parameterTable: TablePattern,
537537
private column: RowValueClause,

packages/sync-rules/src/streams/parameter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ScopedParameterLookup, UnscopedParameterLookup } from '../BucketParameterQuerier.js';
2-
import { BucketParameterLookupSourceDefinition } from '../BucketSource.js';
2+
import { ParameterIndexLookupCreator } from '../BucketSource.js';
33
import { HydrationState } from '../HydrationState.js';
44
import { TablePattern } from '../TablePattern.js';
55
import { ParameterValueSet, RequestParameters, SqliteJsonValue, SqliteValue, TableRow } from '../types.js';
@@ -31,7 +31,7 @@ export interface BucketParameter {
3131
export interface SubqueryEvaluator {
3232
parameterTable: TablePattern;
3333

34-
lookupSources(): BucketParameterLookupSourceDefinition[];
34+
indexLookupCreators(): ParameterIndexLookupCreator[];
3535
// TODO: Is there a better design here?
3636
// This is used for parameter _queries_. But the queries need to know which lookup scopes to
3737
// use, and each querier may use multiple lookup sources, each with their own scope.

packages/sync-rules/src/streams/stream.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { BaseSqlDataQuery } from '../BaseSqlDataQuery.js';
22
import { BucketPriority, DEFAULT_BUCKET_PRIORITY } from '../BucketDescription.js';
33
import {
44
BucketDataSource,
5-
BucketParameterLookupSourceDefinition,
5+
ParameterIndexLookupCreator,
66
BucketParameterQuerierSourceDefinition,
77
BucketSource,
88
BucketSourceType
@@ -21,7 +21,7 @@ export class SyncStream implements BucketSource {
2121
data: BaseSqlDataQuery;
2222

2323
public readonly dataSources: BucketDataSource[];
24-
public readonly parameterLookupSources: BucketParameterLookupSourceDefinition[];
24+
public readonly parameterIndexLookupCreators: ParameterIndexLookupCreator[];
2525
public readonly parameterQuerierSources: BucketParameterQuerierSourceDefinition[];
2626

2727
constructor(name: string, data: BaseSqlDataQuery, variants: StreamVariant[]) {
@@ -32,15 +32,15 @@ export class SyncStream implements BucketSource {
3232
this.data = data;
3333

3434
this.dataSources = [];
35-
this.parameterLookupSources = [];
35+
this.parameterIndexLookupCreators = [];
3636
this.parameterQuerierSources = [];
3737

3838
for (let variant of variants) {
3939
const dataSource = new SyncStreamDataSource(this, data, variant);
4040
this.dataSources.push(dataSource);
41-
const lookupSources = variant.lookupSources();
41+
const lookupCreators = variant.indexLookupCreators();
4242
this.parameterQuerierSources.push(variant.querierSource(this, dataSource));
43-
this.parameterLookupSources.push(...lookupSources);
43+
this.parameterIndexLookupCreators.push(...lookupCreators);
4444
}
4545
}
4646

packages/sync-rules/src/streams/variant.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { BucketInclusionReason, ResolvedBucket } from '../BucketDescription.js';
22
import { BucketParameterQuerier, UnscopedParameterLookup, PendingQueriers } from '../BucketParameterQuerier.js';
33
import {
44
BucketDataSource,
5-
BucketParameterLookupSourceDefinition,
5+
ParameterIndexLookupCreator,
66
BucketParameterQuerierSource,
77
BucketParameterQuerierSourceDefinition,
88
CreateSourceParams
@@ -69,8 +69,8 @@ export class StreamVariant {
6969
return `${streamName}|${this.id}`;
7070
}
7171

72-
lookupSources(): BucketParameterLookupSourceDefinition[] {
73-
return this.subqueries.flatMap((subquery) => subquery.lookupSources());
72+
indexLookupCreators(): ParameterIndexLookupCreator[] {
73+
return this.subqueries.flatMap((subquery) => subquery.indexLookupCreators());
7474
}
7575

7676
querierSource(stream: SyncStream, dataSource: SyncStreamDataSource): BucketParameterQuerierSourceDefinition {

0 commit comments

Comments
 (0)