mirror of
https://github.com/postgres/postgres.git
synced 2025-08-22 21:53:06 +03:00
Allow schema-qualified operator names to be used in the optional
arguments of CREATE OPERATOR.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
;
|
||||
|
||||
|
Reference in New Issue
Block a user