diff --git a/doc/src/sgml/hstore.sgml b/doc/src/sgml/hstore.sgml index 76d876b..78c2e81 100644 --- a/doc/src/sgml/hstore.sgml +++ b/doc/src/sgml/hstore.sgml @@ -225,6 +225,14 @@ + + + The => operator is deprecated and may be removed in a + future release. The use of the hstore(text, text) + function is recommended as an alternative. + + + <type>hstore</> Functions @@ -266,6 +274,14 @@ + hstore(text, text) + hstore + make single-item hstore + hstore('a', 'b') + "a"=>"b" + + + akeys(hstore) text[] get hstore's keys as an array diff --git a/src/backend/commands/operatorcmds.c b/src/backend/commands/operatorcmds.c index 9c07cf3..c0dc7a2 100644 --- a/src/backend/commands/operatorcmds.c +++ b/src/backend/commands/operatorcmds.c @@ -88,6 +88,16 @@ DefineOperator(List *names, List *parameters) /* Convert list of names to a name and namespace */ oprNamespace = QualifiedNameGetCreationNamespace(names, &oprName); + /* + * The SQL standard committee has decided that => should be used for + * named parameters; therefore, a future release of PostgreSQL may + * disallow it as the name of a user-defined operator. + */ + if (strcmp(oprName, "=>") == 0) + ereport(WARNING, + (errmsg("=> is deprecated as an operator name"), + errdetail("This name may be disallowed altogether in future versions of PostgreSQL."))); + /* Check we have creation rights in target namespace */ aclresult = pg_namespace_aclcheck(oprNamespace, GetUserId(), ACL_CREATE); if (aclresult != ACLCHECK_OK)