Re: COPY FROM WHEN condition
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: Adam Berlin <berlin.ab@gmail.com>, pgsql-hackers@lists.postgresql.org
Cc: Surafel Temesgen <surafel3000@gmail.com>
Date: 2018-11-11T20:59:13Z
Lists: pgsql-hackers
On 11/9/18 4:51 PM, Adam Berlin wrote: > As a newcomer to this patch, when I read this example: > > COPY table_name WHEN (some_condition) > > .. I expect COPY to only be run when the condition is true, and I do not expect the WHEN clause to filter rows. I'm curious what you think about: > Hmmm. Currently we have WHEN clause in three places: 1) triggers, where it specifies arbitrary expression on rows, determining whether the trigger should be invoked at all 2) event triggers, where it does about the same thing as for regular triggers, but only expressions "column IN (...)" are allowed 3) CASE WHEN ... THEN ... I'd say 3 is rather unrelated to this discussion, and 1+2 seem to support you objection to using WHEN for COPY, as it kinda specifies whether the command itself should be executed. > COPY table_name WHERE (some_condition) > > Users should already be familiar with the idea that WHERE performs a filter. > So, what about using FILTER here? We already use it for aggregates when filtering rows to process. That being said, I have no strong feelings either way. I'd be OK with both WHEN and WHERE. regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Remove unused struct member, enforce multi_insert callback presence.
- 57a7a3adfe4e 12.0 landed
-
Separate per-batch and per-tuple memory contexts in COPY
- 36a1281f86c0 12.0 landed
-
Fix handling of volatile expressions in COPY FROM ... WHERE
- 4a8283d0ec5a 12.0 landed
-
Allow COPY FROM to filter data using WHERE conditions
- 31f3817402da 12.0 landed
-
Remove obsolete netbsd dynloader code
- b68ff3ea672c 12.0 cited