Fix handling of volatile expressions in COPY FROM ... WHERE

The checking for calls to volatile functions in the COPY FROM ... WHERE
expression was treating all WHERE clauses as if containing such calls.
While that does not produce incorrect results, this disables batching
which may result in significant performance regression.

Discussion: https://www.postgresql.org/message-id/flat/CALAY4q_DdpWDuB5-Zyi-oTtO2uSk8pmy+dupiRe3AvAc++1imA@mail.gmail.com
This commit is contained in:
Tomas Vondra 2019-01-22 23:11:17 +01:00
parent 005881033d
commit 4a8283d0ec

View File

@ -2612,8 +2612,7 @@ CopyFrom(CopyState cstate)
*/
insertMethod = CIM_SINGLE;
}
else if (cstate->whereClause != NULL ||
contain_volatile_functions(cstate->whereClause))
else if (contain_volatile_functions(cstate->whereClause))
{
/*
* Can't support multi-inserts if there are any volatile funcation