deparse/core: qualify "=" operator in SPI queries
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 2 May 2014 20:51:31 +0000 (16:51 -0400)
committerAndres Freund <andres@anarazel.de>
Fri, 5 Sep 2014 20:07:11 +0000 (22:07 +0200)
Deparsing of CREATE VIEW was failing without this, because we remove
pg_catalog from the search path.

src/backend/utils/adt/ruleutils.c

index 7dfbf300717ea11fe395d54cdd6914bf6f8f9817..d8172b7a50276cd5be9f7ee07485b271962d7152 100644 (file)
@@ -269,9 +269,9 @@ typedef struct
  * ----------
  */
 static SPIPlanPtr plan_getrulebyoid = NULL;
-static const char *query_getrulebyoid = "SELECT * FROM pg_catalog.pg_rewrite WHERE oid = $1";
+static const char *query_getrulebyoid = "SELECT * FROM pg_catalog.pg_rewrite WHERE oid OPERATOR(pg_catalog.=) $1";
 static SPIPlanPtr plan_getviewrule = NULL;
-static const char *query_getviewrule = "SELECT * FROM pg_catalog.pg_rewrite WHERE ev_class = $1 AND rulename = $2";
+static const char *query_getviewrule = "SELECT * FROM pg_catalog.pg_rewrite WHERE ev_class OPERATOR(pg_catalog.=) $1 AND rulename OPERATOR(pg_catalog.=) $2";
 
 /* GUC parameters */
 bool       quote_all_identifiers = false;