@@ -4,7 +4,7 @@ import { nil } from 'pgsql-ast-parser/src/utils.js';
44import { BucketPriority , isValidPriority } from './BucketDescription.js' ;
55import { ExpressionType } from './ExpressionType.js' ;
66import { SqlRuleError } from './errors.js' ;
7- import { REQUEST_FUNCTIONS , SqlParameterFunction } from './request_functions.js' ;
7+ import { REQUEST_FUNCTIONS , RequestFunctionCall , SqlParameterFunction } from './request_functions.js' ;
88import {
99 BASIC_OPERATORS ,
1010 OPERATOR_IN ,
@@ -35,6 +35,7 @@ import {
3535 ClauseError ,
3636 CompiledClause ,
3737 InputParameter ,
38+ LegacyParameterFromTableClause ,
3839 ParameterMatchClause ,
3940 ParameterValueClause ,
4041 QueryParameters ,
@@ -419,14 +420,14 @@ export class SqlTools {
419420
420421 const parameterArguments = compiledArguments as ParameterValueClause [ ] ;
421422 return {
423+ function : impl ,
422424 key : `${ schema } .${ fn } (${ parameterArguments . map ( ( p ) => p . key ) . join ( ',' ) } )` ,
423425 lookupParameterValue ( parameters ) {
424426 const evaluatedArgs = parameterArguments . map ( ( p ) => p . lookupParameterValue ( parameters ) ) ;
425427 return impl . call ( parameters , ...evaluatedArgs ) ;
426428 } ,
427- usesAuthenticatedRequestParameters : impl . usesAuthenticatedRequestParameters ,
428- usesUnauthenticatedRequestParameters : impl . usesUnauthenticatedRequestParameters
429- } satisfies ParameterValueClause ;
429+ visitChildren : ( v ) => parameterArguments . forEach ( v )
430+ } satisfies RequestFunctionCall ;
430431 }
431432 }
432433
@@ -494,8 +495,7 @@ export class SqlTools {
494495 return { [ inputParam . key ] : value } ;
495496 } ) ;
496497 } ,
497- usesAuthenticatedRequestParameters : leftFilter . usesAuthenticatedRequestParameters ,
498- usesUnauthenticatedRequestParameters : leftFilter . usesUnauthenticatedRequestParameters
498+ visitChildren : ( v ) => v ( leftFilter )
499499 } satisfies ParameterMatchClause ;
500500 } else if (
501501 this . supportsExpandingParameters &&
@@ -530,8 +530,7 @@ export class SqlTools {
530530 }
531531 return [ { [ inputParam . key ] : value } ] ;
532532 } ,
533- usesAuthenticatedRequestParameters : rightFilter . usesAuthenticatedRequestParameters ,
534- usesUnauthenticatedRequestParameters : rightFilter . usesUnauthenticatedRequestParameters
533+ visitChildren : ( v ) => v ( rightFilter )
535534 } satisfies ParameterMatchClause ;
536535 } else {
537536 // Not supported, return the error previously computed
@@ -579,8 +578,7 @@ export class SqlTools {
579578 return { [ inputParam . key ] : value } ;
580579 } ) ;
581580 } ,
582- usesAuthenticatedRequestParameters : leftFilter . usesAuthenticatedRequestParameters ,
583- usesUnauthenticatedRequestParameters : leftFilter . usesUnauthenticatedRequestParameters
581+ visitChildren : ( v ) => v ( leftFilter )
584582 } satisfies ParameterMatchClause ;
585583 } else if (
586584 this . supportsExpandingParameters &&
@@ -622,8 +620,7 @@ export class SqlTools {
622620 return { [ inputParam . key ] : value } ;
623621 } ) ;
624622 } ,
625- usesAuthenticatedRequestParameters : rightFilter . usesAuthenticatedRequestParameters ,
626- usesUnauthenticatedRequestParameters : rightFilter . usesUnauthenticatedRequestParameters
623+ visitChildren : ( v ) => v ( rightFilter )
627624 } satisfies ParameterMatchClause ;
628625 } else {
629626 // Not supported, return the error previously computed
@@ -652,8 +649,7 @@ export class SqlTools {
652649
653650 return [ { [ inputParam . key ] : value } ] ;
654651 } ,
655- usesAuthenticatedRequestParameters : otherFilter . usesAuthenticatedRequestParameters ,
656- usesUnauthenticatedRequestParameters : otherFilter . usesUnauthenticatedRequestParameters
652+ visitChildren : ( v ) => v ( otherFilter )
657653 } satisfies ParameterMatchClause ;
658654 }
659655
@@ -776,17 +772,16 @@ export class SqlTools {
776772 }
777773 }
778774
779- private getParameterRefClause ( expr : ExprRef ) : ParameterValueClause {
775+ private getParameterRefClause ( expr : ExprRef ) : LegacyParameterFromTableClause {
780776 const table = AvailableTable . search ( expr . table ?. name ?? this . defaultTable ! , this . parameterTables ) ! . nameInSchema ;
781777 const column = expr . name ;
782778 return {
779+ table,
783780 key : `${ table } .${ column } ` ,
784781 lookupParameterValue : ( parameters ) => {
785782 return parameters . lookup ( table , column ) ;
786- } ,
787- usesAuthenticatedRequestParameters : table == 'token_parameters' ,
788- usesUnauthenticatedRequestParameters : table == 'user_parameters'
789- } satisfies ParameterValueClause ;
783+ }
784+ } satisfies LegacyParameterFromTableClause ;
790785 }
791786
792787 refHasSchema ( ref : ExprRef ) {
@@ -861,12 +856,7 @@ export class SqlTools {
861856 } else if ( argsType == 'param' ) {
862857 const argStrings = argClauses . map ( ( e ) => ( e as ParameterValueClause ) . key ) ;
863858 const name = `${ fnImpl . debugName } (${ argStrings . join ( ',' ) } )` ;
864- const usesAuthenticatedRequestParameters =
865- argClauses . find ( ( clause ) => isParameterValueClause ( clause ) && clause . usesAuthenticatedRequestParameters ) !=
866- null ;
867- const usesUnauthenticatedRequestParameters =
868- argClauses . find ( ( clause ) => isParameterValueClause ( clause ) && clause . usesUnauthenticatedRequestParameters ) !=
869- null ;
859+
870860 return {
871861 key : name ,
872862 lookupParameterValue : ( parameters ) => {
@@ -881,8 +871,7 @@ export class SqlTools {
881871 } ) ;
882872 return fnImpl . call ( ...args ) ;
883873 } ,
884- usesAuthenticatedRequestParameters,
885- usesUnauthenticatedRequestParameters
874+ visitChildren : ( v ) => argClauses . forEach ( v )
886875 } satisfies ParameterValueClause ;
887876 } else {
888877 throw new Error ( 'unreachable condition' ) ;
@@ -983,9 +972,7 @@ function staticValueClause(value: SqliteValue): StaticValueClause {
983972 key : JSONBig . stringify ( value ) ,
984973 lookupParameterValue ( _parameters ) {
985974 return value ;
986- } ,
987- usesAuthenticatedRequestParameters : false ,
988- usesUnauthenticatedRequestParameters : false
975+ }
989976 } ;
990977}
991978
0 commit comments