Re: syntax error but command executes anyway?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Kevin Murphy <murphy(at)genome(dot)chop(dot)edu>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: syntax error but command executes anyway?
Date: 2004-06-19 18:57:27
Message-ID: 18004.1087671447@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Kevin Murphy <murphy(at)genome(dot)chop(dot)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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Carter Harrison 2004-06-19 20:34:42 File System Restore
Previous Message Shanmugasundaram Doraisamy 2004-06-19 18:12:31 Need help with Dead Lock - reg.