diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/commands/operatorcmds.c | 20 | ||||
-rw-r--r-- | src/bin/pg_dump/pg_dump.c | 2 | ||||
-rw-r--r-- | src/test/regress/expected/create_operator.out | 6 | ||||
-rw-r--r-- | src/test/regress/sql/create_operator.sql | 2 |
4 files changed, 17 insertions, 13 deletions
diff --git a/src/backend/commands/operatorcmds.c b/src/backend/commands/operatorcmds.c index f0da4c52792..8fd8f7e8cff 100644 --- a/src/backend/commands/operatorcmds.c +++ b/src/backend/commands/operatorcmds.c @@ -21,7 +21,7 @@ * NOTES * These things must be defined and committed in the following order: * "create function": - * input/output, recv/send procedures + * input/output, recv/send functions * "create type": * type * "create operator": @@ -79,8 +79,8 @@ DefineOperator(List *names, List *parameters) Oid rettype; List *commutatorName = NIL; /* optional commutator operator name */ List *negatorName = NIL; /* optional negator operator name */ - List *restrictionName = NIL; /* optional restrict. sel. procedure */ - List *joinName = NIL; /* optional join sel. procedure */ + List *restrictionName = NIL; /* optional restrict. sel. function */ + List *joinName = NIL; /* optional join sel. function */ Oid functionOid; /* functions converted to OID */ Oid restrictionOid; Oid joinOid; @@ -120,6 +120,9 @@ DefineOperator(List *names, List *parameters) (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION), errmsg("SETOF type not allowed for operator argument"))); } + /* "function" and "procedure" are equivalent here */ + else if (strcmp(defel->defname, "function") == 0) + functionName = defGetQualifiedName(defel); else if (strcmp(defel->defname, "procedure") == 0) functionName = defGetQualifiedName(defel); else if (strcmp(defel->defname, "commutator") == 0) @@ -159,7 +162,7 @@ DefineOperator(List *names, List *parameters) if (functionName == NIL) ereport(ERROR, (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION), - errmsg("operator procedure must be specified"))); + errmsg("operator function must be specified"))); /* Transform type names to type OIDs */ if (typeName1) @@ -245,8 +248,8 @@ DefineOperator(List *names, List *parameters) functionOid, /* function for operator */ commutatorName, /* optional commutator operator name */ negatorName, /* optional negator operator name */ - restrictionOid, /* optional restrict. sel. procedure */ - joinOid, /* optional join sel. procedure name */ + restrictionOid, /* optional restrict. sel. function */ + joinOid, /* optional join sel. function name */ canMerge, /* operator merges */ canHash); /* operator hashes */ } @@ -393,10 +396,10 @@ AlterOperator(AlterOperatorStmt *stmt) Datum values[Natts_pg_operator]; bool nulls[Natts_pg_operator]; bool replaces[Natts_pg_operator]; - List *restrictionName = NIL; /* optional restrict. sel. procedure */ + List *restrictionName = NIL; /* optional restrict. sel. function */ bool updateRestriction = false; Oid restrictionOid; - List *joinName = NIL; /* optional join sel. procedure */ + List *joinName = NIL; /* optional join sel. function */ bool updateJoin = false; Oid joinOid; @@ -436,6 +439,7 @@ AlterOperator(AlterOperatorStmt *stmt) */ else if (strcmp(defel->defname, "leftarg") == 0 || strcmp(defel->defname, "rightarg") == 0 || + strcmp(defel->defname, "function") == 0 || strcmp(defel->defname, "procedure") == 0 || strcmp(defel->defname, "commutator") == 0 || strcmp(defel->defname, "negator") == 0 || diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 89056207b97..cd325c0484e 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -12415,7 +12415,7 @@ dumpOpr(Archive *fout, OprInfo *oprinfo) oprregproc = convertRegProcReference(fout, oprcode); if (oprregproc) { - appendPQExpBuffer(details, " PROCEDURE = %s", oprregproc); + appendPQExpBuffer(details, " FUNCTION = %s", oprregproc); free(oprregproc); } diff --git a/src/test/regress/expected/create_operator.out b/src/test/regress/expected/create_operator.out index fd8b37fff56..77237f48500 100644 --- a/src/test/regress/expected/create_operator.out +++ b/src/test/regress/expected/create_operator.out @@ -4,7 +4,7 @@ CREATE OPERATOR ## ( leftarg = path, rightarg = path, - procedure = path_inter, + function = path_inter, commutator = ## ); CREATE OPERATOR <% ( @@ -107,7 +107,7 @@ ERROR: at least one of leftarg or rightarg must be specified CREATE OPERATOR #@%# ( leftarg = int8 ); -ERROR: operator procedure must be specified +ERROR: operator function must be specified -- Should fail. CREATE OPERATOR requires USAGE on TYPE BEGIN TRANSACTION; CREATE ROLE regress_rol_op3; @@ -202,4 +202,4 @@ WARNING: operator attribute "Restrict" not recognized WARNING: operator attribute "Join" not recognized WARNING: operator attribute "Hashes" not recognized WARNING: operator attribute "Merges" not recognized -ERROR: operator procedure must be specified +ERROR: operator function must be specified diff --git a/src/test/regress/sql/create_operator.sql b/src/test/regress/sql/create_operator.sql index 9edf32b3f80..625e9b97485 100644 --- a/src/test/regress/sql/create_operator.sql +++ b/src/test/regress/sql/create_operator.sql @@ -5,7 +5,7 @@ CREATE OPERATOR ## ( leftarg = path, rightarg = path, - procedure = path_inter, + function = path_inter, commutator = ## ); |