diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/parser/gram.y | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index ef6f8a80c5c..5bdbe012a95 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.429 2003/08/17 19:58:05 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.430 2003/08/22 20:34:33 tgl Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -108,6 +108,7 @@ static void doNegateFloat(Value *v); DropBehavior dbehavior; OnCommitAction oncommit; List *list; + FastList fastlist; Node *node; Value *value; ColumnRef *columnref; @@ -6719,8 +6720,18 @@ opt_indirection: { $$ = NIL; } ; -expr_list: a_expr { $$ = makeList1($1); } - | expr_list ',' a_expr { $$ = lappend($1, $3); } +expr_list: a_expr + { + FastList *dst = (FastList *) &$$; + makeFastList1(dst, $1); + } + | expr_list ',' a_expr + { + FastList *dst = (FastList *) &$$; + FastList *src = (FastList *) &$1; + *dst = *src; + FastAppend(dst, $3); + } ; extract_list: |