When I use a function returning string in WHEN clause I got the following error:
=# copy test from '/tmp/aaa.csv' (format 'csv') when (lower(t) = 'hello'); ERROR: could not determine which collation to use for lower() function HINT: Use the COLLATE clause to set the collation explicitly. CONTEXT: COPY hoge, line 1: "1,hoge,2018-01-01"
And then although I specified COLLATE I got an another error (127 = T_CollateExpr):
=# copy test from '/tmp/aaa.csv' (format 'csv') when (lower(t) collate "en_US" = 'hello'); ERROR: unrecognized node type: 127
This error doesn't happen if I put the similar condition in WHEN clause for triggers. I think the patch needs to produce a reasonable error message.
The attached patch include a fix for it .can you confirm it