handling numeric literals with dots in psql copy command escreveu:
> fi...@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;
-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to