From: Tomas Vondra Date: Tue, 22 Jan 2019 22:11:17 +0000 (+0100) Subject: Fix handling of volatile expressions in COPY FROM ... WHERE X-Git-Tag: REL_12_BETA1~888 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=4a8283d0ec5a6781b9e0d4ba16b44da8a0856d02;p=postgresql.git 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 --- diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index c410e0a0dd6..03745cca753 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -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