@@ -358,7 +358,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
358
358
%type <list> privileges privilege_list
359
359
%type <privtarget> privilege_target
360
360
%type <objwithargs> function_with_argtypes aggregate_with_argtypes operator_with_argtypes
361
- %type <list> function_with_argtypes_list
361
+ %type <list> function_with_argtypes_list aggregate_with_argtypes_list operator_with_argtypes_list
362
362
%type <ival> defacl_privilege_target
363
363
%type <defelt> DefACLOption
364
364
%type <list> DefACLOptionList
@@ -7495,6 +7495,12 @@ aggregate_with_argtypes:
7495
7495
}
7496
7496
;
7497
7497
7498
+ aggregate_with_argtypes_list :
7499
+ aggregate_with_argtypes { $$ = list_make1($1 ); }
7500
+ | aggregate_with_argtypes_list ' ,' aggregate_with_argtypes
7501
+ { $$ = lappend($1 , $3 ); }
7502
+ ;
7503
+
7498
7504
createfunc_opt_list :
7499
7505
/* Must be at least one to prevent conflict */
7500
7506
createfunc_opt_item { $$ = list_make1($1 ); }
@@ -7676,21 +7682,21 @@ opt_restrict:
7676
7682
*****************************************************************************/
7677
7683
7678
7684
RemoveFuncStmt :
7679
- DROP FUNCTION function_with_argtypes opt_drop_behavior
7685
+ DROP FUNCTION function_with_argtypes_list opt_drop_behavior
7680
7686
{
7681
7687
DropStmt *n = makeNode(DropStmt);
7682
7688
n->removeType = OBJECT_FUNCTION;
7683
- n->objects = list_make1( $3 ) ;
7689
+ n->objects = $3 ;
7684
7690
n->behavior = $4 ;
7685
7691
n->missing_ok = false ;
7686
7692
n->concurrent = false ;
7687
7693
$$ = (Node *)n;
7688
7694
}
7689
- | DROP FUNCTION IF_P EXISTS function_with_argtypes opt_drop_behavior
7695
+ | DROP FUNCTION IF_P EXISTS function_with_argtypes_list opt_drop_behavior
7690
7696
{
7691
7697
DropStmt *n = makeNode(DropStmt);
7692
7698
n->removeType = OBJECT_FUNCTION;
7693
- n->objects = list_make1( $5 ) ;
7699
+ n->objects = $5 ;
7694
7700
n->behavior = $6 ;
7695
7701
n->missing_ok = true ;
7696
7702
n->concurrent = false ;
@@ -7699,21 +7705,21 @@ RemoveFuncStmt:
7699
7705
;
7700
7706
7701
7707
RemoveAggrStmt :
7702
- DROP AGGREGATE aggregate_with_argtypes opt_drop_behavior
7708
+ DROP AGGREGATE aggregate_with_argtypes_list opt_drop_behavior
7703
7709
{
7704
7710
DropStmt *n = makeNode(DropStmt);
7705
7711
n->removeType = OBJECT_AGGREGATE;
7706
- n->objects = list_make1( $3 ) ;
7712
+ n->objects = $3 ;
7707
7713
n->behavior = $4 ;
7708
7714
n->missing_ok = false ;
7709
7715
n->concurrent = false ;
7710
7716
$$ = (Node *)n;
7711
7717
}
7712
- | DROP AGGREGATE IF_P EXISTS aggregate_with_argtypes opt_drop_behavior
7718
+ | DROP AGGREGATE IF_P EXISTS aggregate_with_argtypes_list opt_drop_behavior
7713
7719
{
7714
7720
DropStmt *n = makeNode(DropStmt);
7715
7721
n->removeType = OBJECT_AGGREGATE;
7716
- n->objects = list_make1( $5 ) ;
7722
+ n->objects = $5 ;
7717
7723
n->behavior = $6 ;
7718
7724
n->missing_ok = true ;
7719
7725
n->concurrent = false ;
@@ -7722,21 +7728,21 @@ RemoveAggrStmt:
7722
7728
;
7723
7729
7724
7730
RemoveOperStmt :
7725
- DROP OPERATOR operator_with_argtypes opt_drop_behavior
7731
+ DROP OPERATOR operator_with_argtypes_list opt_drop_behavior
7726
7732
{
7727
7733
DropStmt *n = makeNode(DropStmt);
7728
7734
n->removeType = OBJECT_OPERATOR;
7729
- n->objects = list_make1( $3 ) ;
7735
+ n->objects = $3 ;
7730
7736
n->behavior = $4 ;
7731
7737
n->missing_ok = false ;
7732
7738
n->concurrent = false ;
7733
7739
$$ = (Node *)n;
7734
7740
}
7735
- | DROP OPERATOR IF_P EXISTS operator_with_argtypes opt_drop_behavior
7741
+ | DROP OPERATOR IF_P EXISTS operator_with_argtypes_list opt_drop_behavior
7736
7742
{
7737
7743
DropStmt *n = makeNode(DropStmt);
7738
7744
n->removeType = OBJECT_OPERATOR;
7739
- n->objects = list_make1( $5 ) ;
7745
+ n->objects = $5 ;
7740
7746
n->behavior = $6 ;
7741
7747
n->missing_ok = true ;
7742
7748
n->concurrent = false ;
@@ -7768,6 +7774,12 @@ any_operator:
7768
7774
{ $$ = lcons(makeString($1 ), $3 ); }
7769
7775
;
7770
7776
7777
+ operator_with_argtypes_list :
7778
+ operator_with_argtypes { $$ = list_make1($1 ); }
7779
+ | operator_with_argtypes_list ' ,' operator_with_argtypes
7780
+ { $$ = lappend($1 , $3 ); }
7781
+ ;
7782
+
7771
7783
operator_with_argtypes :
7772
7784
any_operator oper_argtypes
7773
7785
{
0 commit comments