aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/src/sgml/hstore.sgml18
-rw-r--r--doc/src/sgml/ref/create_operator.sgml8
-rw-r--r--src/backend/commands/operatorcmds.c12
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>=&gt;</> 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"=&gt;"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>=&gt;</> 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)