Re: syntax error but command executes anyway? - Mailing list pgsql-general

From Tom Lane
Subject Re: syntax error but command executes anyway?
Date
Msg-id 18004.1087671447@sss.pgh.pa.us
Whole thread Raw
In response to syntax error but command executes anyway?  (Kevin Murphy <murphy@genome.chop.edu>)
Responses Re: syntax error but command executes anyway?  (Kevin Murphy <murphy@genome.chop.edu>)
List pgsql-general
Kevin Murphy <murphy@genome.chop.edu> writes:
> What should I make of this?

> egenome_dev=# \!cat /Users/murphy/cvs/egora/sql/data_port/port_identifiers.sql
> INSERT INTO public.identifiers (element_id, name, source, source_code, title)
>         SELECT DISTINCT
>                 elementid,
>                 name,
>                 source,
>                 sourcecode,
>                 title
>         FROM original.identifiers;

> egenome_dev=# \i /Users/murphy/cvs/egora/sql/data_port/port_identifiers.sql
> INSERT 0 1672036
> psql:/Users/murphy/cvs/egora/sql/data_port/port_identifiers.sql:15: ERROR:
> syntax error at or near "sourcecode" at character 2

It seems mighty suspicious that psql is reporting a syntax error at line
15 of the file when cat is only showing 9 lines.  I suspect that the
insert you are showing us did execute, but then something further on
in the file is producing the syntax error.

I am wondering whether cat on OS X stops at embedded nulls, or something
stupid like that.  It sure looks like there must be garbage in the
port_identifiers.sql file beyond what cat has printed here.  What do you
see when you examine the file with other tools?  (Try "od -c" if nothing
else springs to mind.)

It is possible that the problem is not entirely cat's fault but has
something to do with the way that psql's \! command invokes cat.
Does cat at the shell prompt produce the same output?

            regards, tom lane

pgsql-general by date:

Previous
From: "Scott Marlowe"
Date:
Subject: Re: syntax error but command executes anyway?
Next
From: Carter Harrison
Date:
Subject: File System Restore