RE: ecpg command does not warn COPY ... FROM STDIN; - Mailing list pgsql-hackers

From Hayato Kuroda (Fujitsu)
Subject RE: ecpg command does not warn COPY ... FROM STDIN;
Date
Msg-id OS7PR01MB149680266F200CC96D0EF3FC3F5122@OS7PR01MB14968.jpnprd01.prod.outlook.com
Whole thread Raw
List pgsql-hackers
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


pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Reorder shutdown sequence, to flush pgstats later
Next
From: Alvaro Herrera
Date:
Subject: Re: CREATE TABLE NOT VALID for check and foreign key