On Mon, Oct 21, 2024 at 8:39 PM Fujii Masao <masao.fu...@oss.nttdata.com> wrote: > On 2024/10/21 18:30, Kirill Reshke wrote: > > v4 no longer applies. It now conflicts with > > e7834a1a251d4a28245377f383ff20a657ba8262. > > Also, there were review comments. > > > > So, I decided to rebase. > > Thanks for the patch! Here are my review comments: > > I noticed that on_error=set_to_null does not trigger NOTICE messages for rows > and columns with errors. It's "unexpected" thing for columns to be silently > replaced with NULL due to on_error=set_to_null. So, similar to > on_error=ignore, > there should be NOTICE messages indicating which input records had columns > set to NULL because of data type incompatibility. Without these messages, > users might not realize that some columns were set to NULL. >
on_error=set_to_null, we have two options for CopyFromStateData->num_errors. A. Counting the number of rows that on_error set_to_null happened. B. Counting number of times that on_error set_to_null happened let's say optionA: ereport(NOTICE, errmsg_plural("%llu row was converted to NULL due to data type incompatibility", "%llu rows were converted to NULL due to data type incompatibility", (unsigned long long) cstate->num_errors, (unsigned long long) cstate->num_errors)); I doubt the above message is accurate. "%llu row was converted to NULL" can mean "%llu row, for each row, all columns was converted to NULL" but here we are "%llu row, for each row, some column (can be all columns) was converted to NULL" optionB: the message can be: errmsg_plural("converted to NULL due to data type incompatibility happened %llu time") but I aslo feel the wording is not perfect also. So overall I am not sure how to construct the NOTICE messages.