@@ -1043,12 +1043,12 @@ export class V13ToV14Transformer {
10431043 'position' , 'overlay' ,
10441044 'extract' , 'timezone' , 'xmlexists' ,
10451045 'current_date' , 'current_time' , 'current_timestamp' ,
1046- 'localtime' , 'localtimestamp' , 'overlaps' ,
1047- 'collation_for'
1046+ 'localtime' , 'localtimestamp' , 'overlaps'
10481047 ] ;
10491048
1050- // Handle substring function specifically - depends on pg_catalog prefix
1051- if ( funcname . toLowerCase ( ) === 'substring' ) {
1049+ // Handle specific functions that depend on pg_catalog prefix
1050+ const pgCatalogSqlSyntaxFunctions = [ 'substring' , 'pg_collation_for' ] ;
1051+ if ( pgCatalogSqlSyntaxFunctions . includes ( funcname . toLowerCase ( ) ) ) {
10521052 // Check if the function has pg_catalog prefix by examining the node
10531053 if ( node && node . funcname && Array . isArray ( node . funcname ) && node . funcname . length >= 2 ) {
10541054 const firstElement = node . funcname [ 0 ] ;
@@ -1062,9 +1062,6 @@ export class V13ToV14Transformer {
10621062 return 'COERCE_EXPLICIT_CALL' ;
10631063 }
10641064
1065- if ( funcname === 'pg_collation_for' ) {
1066- return 'COERCE_SQL_SYNTAX' ;
1067- }
10681065
10691066 if ( explicitCallFunctions . includes ( funcname . toLowerCase ( ) ) ) {
10701067 return 'COERCE_EXPLICIT_CALL' ;
@@ -1147,7 +1144,11 @@ export class V13ToV14Transformer {
11471144 const result : any = { } ;
11481145
11491146 if ( node . name !== undefined ) {
1150- result . name = node . name ;
1147+ // Exclude parameter names in DropStmt contexts
1148+ const isInDropContext = context . parentNodeTypes ?. includes ( 'DropStmt' ) ;
1149+ if ( ! isInDropContext ) {
1150+ result . name = node . name ;
1151+ }
11511152 }
11521153
11531154 if ( node . argType !== undefined ) {
@@ -1159,11 +1160,7 @@ export class V13ToV14Transformer {
11591160 }
11601161
11611162 if ( node . mode !== undefined ) {
1162- if ( node . mode === "FUNC_PARAM_IN" ) {
1163- result . mode = "FUNC_PARAM_DEFAULT" ;
1164- } else {
1165- result . mode = node . mode ;
1166- }
1163+ result . mode = this . mapFunctionParameterMode ( node . mode , context ) ;
11671164 }
11681165
11691166 return { FunctionParameter : result } ;
0 commit comments