]> granicus.if.org Git - postgresql/commitdiff
psql: allow DROP INDEX CONCURRENTLY in AUTOCOMMIT off mode
authorBruce Momjian <bruce@momjian.us>
Fri, 20 Mar 2015 01:16:42 +0000 (21:16 -0400)
committerBruce Momjian <bruce@momjian.us>
Fri, 20 Mar 2015 01:17:10 +0000 (21:17 -0400)
Previously this threw an error.

Patch by Feike Steenbergen

src/bin/psql/common.c

index 275bdcc09ff418d01dab320b6bcfa53e6bef660b..15488ff035726951148523e20d539ed33885447e 100644 (file)
@@ -1643,6 +1643,24 @@ command_no_begin(const char *query)
                        return true;
                if (wordlen == 10 && pg_strncasecmp(query, "tablespace", 10) == 0)
                        return true;
+
+               /* DROP INDEX CONCURRENTLY isn't allowed in xacts */
+               if (wordlen == 5 && pg_strncasecmp(query, "index", 5) == 0)
+               {
+                       query += wordlen;
+
+                       query = skip_white_space(query);
+
+                       wordlen = 0;
+                       while (isalpha((unsigned char) query[wordlen]))
+                               wordlen += PQmblen(&query[wordlen], pset.encoding);
+
+                       if (wordlen == 12 && pg_strncasecmp(query, "concurrently", 12) == 0)
+                               return true;
+
+                       return false;
+               }
+
                return false;
        }