Re: BUG #4927: psql does "spoil" the query before sending it to server - Mailing list pgsql-bugs

From Euler Taveira de Oliveira
Subject Re: BUG #4927: psql does "spoil" the query before sending it to server
Date
Msg-id 4A60D5EA.5060308@timbira.com
Whole thread Raw
In response to BUG #4927: psql does "spoil" the query before sending it to server  ("handling numeric literals with dots in psql \copy command" <filip.rembialkowski@gmail.com>)
Responses Re: BUG #4927: psql does "spoil" the query before sending it to server  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
handling numeric literals with dots in psql copy command escreveu:
> filip@filip=# \copy ( select 1.23::numeric as num ) to 'out.csv' with csv
> header
> ERROR:  syntax error at or near "."
> LINE 1: COPY ( select 1 . 23::numeric as num ) TO STDOUT CSV HEADER
>                         ^
> \copy: ERROR:  syntax error at or near "."
> LINE 1: COPY ( select 1 . 23::numeric as num ) TO STDOUT CSV HEADER
>                         ^
>
> query inside parentheses is OK.
>
> same bug reproduced in 8.3.7
>
Thanks for your report.

Why are we analysing the query there? One possible fix is to remove the '.' as
delimiter in strtokx(). The trivial patch is attached.


--
  Euler Taveira de Oliveira
  http://www.timbira.com/
Index: copy.c
===================================================================
RCS file: /a/pgsql/dev/anoncvs/pgsql/src/bin/psql/copy.c,v
retrieving revision 1.80
diff -c -r1.80 copy.c
*** copy.c    26 Apr 2009 15:31:50 -0000    1.80
--- copy.c    17 Jul 2009 19:41:58 -0000
***************
*** 146,152 ****

          while (parens > 0)
          {
!             token = strtokx(NULL, whitespace, ".,()", "\"'",
                              nonstd_backslash, true, false, pset.encoding);
              if (!token)
                  goto error;
--- 146,152 ----

          while (parens > 0)
          {
!             token = strtokx(NULL, whitespace, ",()", "\"'",
                              nonstd_backslash, true, false, pset.encoding);
              if (!token)
                  goto error;

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #4926: too few pathkeys for mergeclauses
Next
From: Tom Lane
Date:
Subject: Re: BUG #4927: psql does "spoil" the query before sending it to server