summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Vondra <tomas.vondra@postgresql.org>2019-01-22 23:11:17 +0100
committerTomas Vondra <tomas.vondra@postgresql.org>2019-01-22 23:11:17 +0100
commit4a8283d0ec5a6781b9e0d4ba16b44da8a0856d02 (patch)
tree2ee96ab66a882847fae278d001930af5a6033bc2
parent005881033d4e34c0b2e0a157464dc1929db52e17 (diff)
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
-rw-r--r--src/backend/commands/copy.c3
1 files changed, 1 insertions, 2 deletions
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