1- import { BucketInclusionReason , ResolvedBucket } from './BucketDescription.js' ;
2- import { BucketParameterQuerier , mergeBucketParameterQueriers , PendingQueriers } from './BucketParameterQuerier.js' ;
31import {
42 BucketDataSource ,
53 BucketDataSourceDefinition ,
6- BucketParameterSource ,
74 BucketParameterSourceDefinition ,
85 BucketSourceType ,
9- CreateSourceParams ,
10- ResultSetDescription
6+ CreateSourceParams
117} from './BucketSource.js' ;
128import { ColumnDefinition } from './ExpressionType.js' ;
139import { IdSequence } from './IdSequence.js' ;
1410import { SourceTableInterface } from './SourceTableInterface.js' ;
1511import { SqlDataQuery } from './SqlDataQuery.js' ;
1612import { SqlParameterQuery } from './SqlParameterQuery.js' ;
17- import { GetQuerierOptions , SyncRulesOptions } from './SqlSyncRules.js' ;
13+ import { SyncRulesOptions } from './SqlSyncRules.js' ;
1814import { StaticSqlParameterQuery } from './StaticSqlParameterQuery.js' ;
1915import { TablePattern } from './TablePattern.js' ;
2016import { TableValuedFunctionSqlParameterQuery } from './TableValuedFunctionSqlParameterQuery.js' ;
21- import { SqlRuleError } from './errors.js' ;
2217import { CompatibilityContext } from './compatibility.js' ;
23- import {
24- BucketIdTransformer ,
25- EvaluatedParametersResult ,
26- EvaluateRowOptions ,
27- EvaluationResult ,
28- QueryParseOptions ,
29- RequestParameters ,
30- SourceSchema ,
31- SqliteRow
32- } from './types.js' ;
18+ import { SqlRuleError } from './errors.js' ;
19+ import { EvaluationResult , QueryParseOptions , SourceSchema } from './types.js' ;
3320
3421export interface QueryParseResult {
3522 /**
@@ -40,7 +27,7 @@ export interface QueryParseResult {
4027 errors : SqlRuleError [ ] ;
4128}
4229
43- export class SqlBucketDescriptor implements BucketDataSourceDefinition , BucketParameterSourceDefinition {
30+ export class SqlBucketDescriptor implements BucketDataSourceDefinition {
4431 name : string ;
4532 private bucketParametersInternal : string [ ] | null = null ;
4633
@@ -124,76 +111,8 @@ export class SqlBucketDescriptor implements BucketDataSourceDefinition, BucketPa
124111 } ;
125112 }
126113
127- createParameterSource ( params : CreateSourceParams ) : BucketParameterSource {
128- return {
129- definition : this ,
130-
131- evaluateParameterRow : ( sourceTable : SourceTableInterface , row : SqliteRow ) : EvaluatedParametersResult [ ] => {
132- let results : EvaluatedParametersResult [ ] = [ ] ;
133- for ( let query of this . parameterQueries ) {
134- if ( query . applies ( sourceTable ) ) {
135- results . push ( ...query . evaluateParameterRow ( row ) ) ;
136- }
137- }
138- return results ;
139- } ,
140- pushBucketParameterQueriers : ( result : PendingQueriers , options : GetQuerierOptions ) => {
141- const reasons = [ this . bucketInclusionReason ( ) ] ;
142- const staticBuckets = this . getStaticBucketDescriptions (
143- options . globalParameters ,
144- reasons ,
145- params . bucketIdTransformer
146- ) ;
147- const staticQuerier = {
148- staticBuckets,
149- hasDynamicBuckets : false ,
150- parameterQueryLookups : [ ] ,
151- queryDynamicBucketDescriptions : async ( ) => [ ]
152- } satisfies BucketParameterQuerier ;
153- result . queriers . push ( staticQuerier ) ;
154-
155- if ( this . parameterQueries . length == 0 ) {
156- return ;
157- }
158-
159- const dynamicQueriers = this . parameterQueries . map ( ( query ) =>
160- query . getBucketParameterQuerier ( options . globalParameters , reasons , params . bucketIdTransformer )
161- ) ;
162- result . queriers . push ( ...dynamicQueriers ) ;
163- } ,
164-
165- /**
166- * @deprecated Use `pushBucketParameterQueriers` instead and merge at the top-level.
167- */
168- getBucketParameterQuerier ( options : GetQuerierOptions ) : BucketParameterQuerier {
169- const queriers : BucketParameterQuerier [ ] = [ ] ;
170- this . pushBucketParameterQueriers ( { queriers, errors : [ ] } , options ) ;
171-
172- return mergeBucketParameterQueriers ( queriers ) ;
173- }
174- } ;
175- }
176-
177- getStaticBucketDescriptions (
178- parameters : RequestParameters ,
179- reasons : BucketInclusionReason [ ] ,
180- transformer : BucketIdTransformer
181- ) : ResolvedBucket [ ] {
182- let results : ResolvedBucket [ ] = [ ] ;
183- for ( let query of this . globalParameterQueries ) {
184- for ( const desc of query . getStaticBucketDescriptions ( parameters , transformer ) ) {
185- results . push ( {
186- ...desc ,
187- definition : this . name ,
188- inclusion_reasons : reasons
189- } ) ;
190- }
191- }
192- return results ;
193- }
194-
195- hasDynamicBucketQueries ( ) : boolean {
196- return this . parameterQueries . length > 0 ;
114+ getParameterSourceDefinitions ( ) : BucketParameterSourceDefinition [ ] {
115+ return [ ...this . parameterQueries , ...this . globalParameterQueries ] ;
197116 }
198117
199118 getSourceTables ( ) : Set < TablePattern > {
@@ -210,10 +129,6 @@ export class SqlBucketDescriptor implements BucketDataSourceDefinition, BucketPa
210129 return result ;
211130 }
212131
213- private bucketInclusionReason ( ) : BucketInclusionReason {
214- return 'default' ;
215- }
216-
217132 tableSyncsData ( table : SourceTableInterface ) : boolean {
218133 for ( let query of this . dataQueries ) {
219134 if ( query . applies ( table ) ) {
@@ -223,15 +138,6 @@ export class SqlBucketDescriptor implements BucketDataSourceDefinition, BucketPa
223138 return false ;
224139 }
225140
226- tableSyncsParameters ( table : SourceTableInterface ) : boolean {
227- for ( let query of this . parameterQueries ) {
228- if ( query . applies ( table ) ) {
229- return true ;
230- }
231- }
232- return false ;
233- }
234-
235141 resolveResultSets ( schema : SourceSchema , tables : Record < string , Record < string , ColumnDefinition > > ) {
236142 for ( let query of this . dataQueries ) {
237143 query . resolveResultSets ( schema , tables ) ;
0 commit comments