diff options
-rw-r--r-- | doc/src/sgml/hstore.sgml | 18 | ||||
-rw-r--r-- | doc/src/sgml/ref/create_operator.sgml | 8 | ||||
-rw-r--r-- | src/backend/commands/operatorcmds.c | 12 |
3 files changed, 35 insertions, 3 deletions
diff --git a/doc/src/sgml/hstore.sgml b/doc/src/sgml/hstore.sgml index d5d320adf90..ef09a4ca869 100644 --- a/doc/src/sgml/hstore.sgml +++ b/doc/src/sgml/hstore.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/hstore.sgml,v 1.10 2010/06/18 03:52:03 rhaas Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/hstore.sgml,v 1.11 2010/06/22 11:36:16 rhaas Exp $ --> <sect1 id="hstore"> <title>hstore</title> @@ -225,6 +225,14 @@ </para> </note> + <note> + <para> + The <literal>=></> operator is deprecated and may be removed in a + future release. Use the <literal>hstore(text, text)</literal> function + instead. + </para> + </note> + <table id="hstore-func-table"> <title><type>hstore</> Functions</title> @@ -266,6 +274,14 @@ </row> <row> + <entry><function>hstore(text, text)</function></entry> + <entry><type>hstore</type></entry> + <entry>make single-item <type>hstore</></entry> + <entry><literal>hstore('a', 'b')</literal></entry> + <entry><literal>"a"=>"b"</literal></entry> + </row> + + <row> <entry><function>akeys(hstore)</function></entry> <entry><type>text[]</type></entry> <entry>get <type>hstore</>'s keys as an array</entry> diff --git a/doc/src/sgml/ref/create_operator.sgml b/doc/src/sgml/ref/create_operator.sgml index a5595e6e69c..d70fefcf05c 100644 --- a/doc/src/sgml/ref/create_operator.sgml +++ b/doc/src/sgml/ref/create_operator.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/ref/create_operator.sgml,v 1.52 2010/04/03 07:22:58 petere Exp $ +$PostgreSQL: pgsql/doc/src/sgml/ref/create_operator.sgml,v 1.53 2010/06/22 11:36:16 rhaas Exp $ PostgreSQL documentation --> @@ -71,6 +71,12 @@ CREATE OPERATOR <replaceable>name</replaceable> ( parse SQL-compliant commands without requiring spaces between tokens. </para> </listitem> + <listitem> + <para> + The use of <literal>=></> as an operator name is deprecated. It may + be disallowed altogether in a future release. + </para> + </listitem> </itemizedlist> </para> diff --git a/src/backend/commands/operatorcmds.c b/src/backend/commands/operatorcmds.c index ff94aea42d4..2936c92a94e 100644 --- a/src/backend/commands/operatorcmds.c +++ b/src/backend/commands/operatorcmds.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/operatorcmds.c,v 1.45 2010/02/14 18:42:14 rhaas Exp $ + * $PostgreSQL: pgsql/src/backend/commands/operatorcmds.c,v 1.46 2010/06/22 11:36:16 rhaas Exp $ * * DESCRIPTION * The "DefineFoo" routines take the parse tree and pick out the @@ -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) |