Kuroda-san, thank to your comment. > > I found a code validation bug in master branch. > > > > Now, ecpg does not support 'EXEC SQL COPY ... FROM STDIN ... ;' and > > code for warning it exits. > > > > https://github.com/postgres/postgres/blob/7b27f5fd36cb3270e8ac25aefd73b55 > > 2663d1392/src/interfaces/ecpg/preproc/ecpg.addons#L242-L245 > > --- > > ECPG: addon CopyStmt COPY opt_binary qualified_name opt_column_list > > copy_from opt_program copy_file_name copy_delimiter opt_with > > copy_options where_clause > > if (strcmp(@6, "from") == 0 && > > (strcmp(@7, "stdin") == 0 || strcmp(@7, "stdout") == 0)) > > mmerror(PARSE_ERROR, ET_WARNING, "COPY FROM STDIN is not > > implemented"); > > --- > > > > But it is not working. > > ecpg command fails to notice though code like above exits on pgc code. > > Good catch. I have a comment about the fix. > > The parser accepts a statement like "COPY ... FROM STDOUT", and ISTM it is > not either > implemented yet. However, the warning message only mentions STDIN case even > STDOUT > is specified. > > EXEC SQL COPY foo FROM STDOUT; > -> > WARNING: COPY FROM STDIN is not implemented > > I feel we can change like "COPY FROM STDIN/STDOUT...", or prepare two > messages. > Thought?
I think your proposed fix is better too. So, I modified the patch. With new patch, warning message is changed like below :) ryo@DESKTOP-IOASPN6:~/work/postgres/src$ ../master/bin/ecpg copy_from_should_be_warned.pgc copy_from_should_be_warned.pgc:24: WARNING: COPY FROM STDIN/STDOUT is not implemented ryo@DESKTOP-IOASPN6:~/work/postgres/src$ -- Best regards, Ryo Kanbayashi https://github.com/ryogrid On Wed, Jan 8, 2025 at 10:35 PM Hayato Kuroda (Fujitsu) <kuroda.hay...@fujitsu.com> wrote: > > Dear Kanbayashi-san, > > > I found a code validation bug in master branch. > > > > Now, ecpg does not support 'EXEC SQL COPY ... FROM STDIN ... ;' and > > code for warning it exits. > > > > https://github.com/postgres/postgres/blob/7b27f5fd36cb3270e8ac25aefd73b55 > > 2663d1392/src/interfaces/ecpg/preproc/ecpg.addons#L242-L245 > > --- > > ECPG: addon CopyStmt COPY opt_binary qualified_name opt_column_list > > copy_from opt_program copy_file_name copy_delimiter opt_with > > copy_options where_clause > > if (strcmp(@6, "from") == 0 && > > (strcmp(@7, "stdin") == 0 || strcmp(@7, "stdout") == 0)) > > mmerror(PARSE_ERROR, ET_WARNING, "COPY FROM STDIN is not > > implemented"); > > --- > > > > But it is not working. > > ecpg command fails to notice though code like above exits on pgc code. > > Good catch. I have a comment about the fix. > > The parser accepts a statement like "COPY ... FROM STDOUT", and ISTM it is > not either > implemented yet. However, the warning message only mentions STDIN case even > STDOUT > is specified. > > EXEC SQL COPY foo FROM STDOUT; > -> > WARNING: COPY FROM STDIN is not implemented > > I feel we can change like "COPY FROM STDIN/STDOUT...", or prepare two > messages. > Thought? > > Best regards, > Hayato Kuroda > FUJITSU LIMITED >
copy_from_stdin_no_warning2.patch
Description: Binary data