Only DISCARD ALL should be in the command_no_begin list.

We allowes DISCARD PLANS and TEMP in a transaction.
This commit is contained in:
Itagaki Takahiro 2010-09-28 15:56:46 +09:00
parent 60da196636
commit 279ab82791

View File

@ -1388,8 +1388,20 @@ command_no_begin(const char *query)
return true;
}
/* DISCARD ALL isn't allowed in xacts, but other variants are allowed. */
if (wordlen == 7 && pg_strncasecmp(query, "discard", 7) == 0)
return true;
{
query += wordlen;
query = skip_white_space(query);
wordlen = 0;
while (isalpha((unsigned char) query[wordlen]))
wordlen += PQmblen(&query[wordlen], pset.encoding);
if (wordlen == 3 && pg_strncasecmp(query, "all", 3) == 0)
return true;
}
return false;
}