summaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-08-10 19:01:53 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-08-10 19:01:53 +0000
commita5e6e9935714959db56607b327ce0f4ff68751c1 (patch)
treedc2031a6d3ca14bb42af1d3b98b68d2b9b443579 /src/backend/parser
parentf1d820494c6fd45d4675d77f596159175f1d1c26 (diff)
downloadpostgresql-a5e6e9935714959db56607b327ce0f4ff68751c1.tar.gz
Allow schema-qualified operator names to be used in the optional
arguments of CREATE OPERATOR.
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y68
1 files changed, 18 insertions, 50 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index f57f461124..98acc050d5 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.357 2002/08/06 05:40:45 ishii Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.358 2002/08/10 19:01:53 tgl Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -1307,27 +1307,19 @@ copy_opt_list:
copy_opt_item:
BINARY
{
- $$ = makeNode(DefElem);
- $$->defname = "binary";
- $$->arg = (Node *)makeInteger(TRUE);
+ $$ = makeDefElem("binary", (Node *)makeInteger(TRUE));
}
| OIDS
{
- $$ = makeNode(DefElem);
- $$->defname = "oids";
- $$->arg = (Node *)makeInteger(TRUE);
+ $$ = makeDefElem("oids", (Node *)makeInteger(TRUE));
}
| DELIMITER opt_as Sconst
{
- $$ = makeNode(DefElem);
- $$->defname = "delimiter";
- $$->arg = (Node *)makeString($3);
+ $$ = makeDefElem("delimiter", (Node *)makeString($3));
}
| NULL_P opt_as Sconst
{
- $$ = makeNode(DefElem);
- $$->defname = "null";
- $$->arg = (Node *)makeString($3);
+ $$ = makeDefElem("null", (Node *)makeString($3));
}
;
@@ -1336,9 +1328,7 @@ copy_opt_item:
opt_binary:
BINARY
{
- $$ = makeNode(DefElem);
- $$->defname = "binary";
- $$->arg = (Node *)makeInteger(TRUE);
+ $$ = makeDefElem("binary", (Node *)makeInteger(TRUE));
}
| /*EMPTY*/ { $$ = NULL; }
;
@@ -1346,9 +1336,7 @@ opt_binary:
opt_oids:
WITH OIDS
{
- $$ = makeNode(DefElem);
- $$->defname = "oids";
- $$->arg = (Node *)makeInteger(TRUE);
+ $$ = makeDefElem("oids", (Node *)makeInteger(TRUE));
}
| /*EMPTY*/ { $$ = NULL; }
;
@@ -1357,9 +1345,7 @@ copy_delimiter:
/* USING DELIMITERS kept for backward compatibility. 2002-06-15 */
opt_using DELIMITERS Sconst
{
- $$ = makeNode(DefElem);
- $$->defname = "delimiter";
- $$->arg = (Node *)makeString($3);
+ $$ = makeDefElem("delimiter", (Node *)makeString($3));
}
| /*EMPTY*/ { $$ = NULL; }
;
@@ -2276,7 +2262,7 @@ def_elem: ColLabel '=' def_arg
/* Note: any simple identifier will be returned as a type name! */
def_arg: func_return { $$ = (Node *)$1; }
- | all_Op { $$ = (Node *)makeString($1); }
+ | qual_all_Op { $$ = (Node *)$1; }
| NumericOnly { $$ = (Node *)$1; }
| Sconst { $$ = (Node *)makeString($1); }
;
@@ -3568,27 +3554,19 @@ createdb_opt_list:
createdb_opt_item:
LOCATION opt_equal Sconst
{
- $$ = makeNode(DefElem);
- $$->defname = "location";
- $$->arg = (Node *)makeString($3);
+ $$ = makeDefElem("location", (Node *)makeString($3));
}
| LOCATION opt_equal DEFAULT
{
- $$ = makeNode(DefElem);
- $$->defname = "location";
- $$->arg = NULL;
+ $$ = makeDefElem("location", NULL);
}
| TEMPLATE opt_equal name
{
- $$ = makeNode(DefElem);
- $$->defname = "template";
- $$->arg = (Node *)makeString($3);
+ $$ = makeDefElem("template", (Node *)makeString($3));
}
| TEMPLATE opt_equal DEFAULT
{
- $$ = makeNode(DefElem);
- $$->defname = "template";
- $$->arg = NULL;
+ $$ = makeDefElem("template", NULL);
}
| ENCODING opt_equal Sconst
{
@@ -3598,9 +3576,7 @@ createdb_opt_item:
elog(ERROR, "%s is not a valid encoding name", $3);
encoding = pg_char_to_encoding($3);
- $$ = makeNode(DefElem);
- $$->defname = "encoding";
- $$->arg = (Node *)makeInteger(encoding);
+ $$ = makeDefElem("encoding", (Node *)makeInteger(encoding));
}
| ENCODING opt_equal Iconst
{
@@ -3610,27 +3586,19 @@ createdb_opt_item:
if (!strcmp(encoding_name,"") ||
pg_valid_server_encoding(encoding_name) < 0)
elog(ERROR, "%d is not a valid encoding code", $3);
- $$ = makeNode(DefElem);
- $$->defname = "encoding";
- $$->arg = (Node *)makeInteger($3);
+ $$ = makeDefElem("encoding", (Node *)makeInteger($3));
}
| ENCODING opt_equal DEFAULT
{
- $$ = makeNode(DefElem);
- $$->defname = "encoding";
- $$->arg = (Node *)makeInteger(-1);
+ $$ = makeDefElem("encoding", (Node *)makeInteger(-1));
}
| OWNER opt_equal name
{
- $$ = makeNode(DefElem);
- $$->defname = "owner";
- $$->arg = (Node *)makeString($3);
+ $$ = makeDefElem("owner", (Node *)makeString($3));
}
| OWNER opt_equal DEFAULT
{
- $$ = makeNode(DefElem);
- $$->defname = "owner";
- $$->arg = NULL;
+ $$ = makeDefElem("owner", NULL);
}
;