BUG #2224: unlogical syntax error
The following bug has been logged online:
Bug reference: 2224
Logged by: Hervé Hénoch
Email address: h.henoch@isc84.org
PostgreSQL version: 8.1.2
Operating system: Linux FC4
Description: unlogical syntax error
Details:
I do this request :
select id_caisse as caisse from adm_pat where nip = '20020523' ;
Under PgAdmin this request work fine but via JDBC I have the following
messages server side :
CETLOG: statement: PREPARE <unnamed> AS SELECT id_caisse AS caisse FROM
adm_pat WHERE nip = '20020523'
CETLOG: statement: EXECUTE <unnamed> [PREPARE: SELECT id_caisse AS caisse
FROM adm_pat WHERE nip = '20020523']
CETLOG: statement: PREPARE <unnamed> AS SELECT adm_pat."nip", id_caisse
caisse FROM adm_pat WHERE nip = '20020523'
CETERROR: syntax error at or near "caisse" at character 33
CETLOG: statement: PREPARE <unnamed> AS SELECT id_caisse AS caisse FROM
adm_pat WHERE nip = '20020523'
CETLOG: statement: EXECUTE <unnamed> [PREPARE: SELECT id_caisse AS caisse
FROM adm_pat WHERE nip = '20020523']
The table adm_pat does not have another column named caisse. So what is the
problem (if problem).
Thanks a lot.
"Hervé Hénoch" <h.henoch@isc84.org> writes:
CETLOG: statement: PREPARE <unnamed> AS SELECT adm_pat."nip", id_caisse
caisse FROM adm_pat WHERE nip = '20020523'
CETERROR: syntax error at or near "caisse" at character 33
"AS" before a column alias is not optional in Postgres.
regards, tom lane
On Mon, Jan 30, 2006 at 10:47:10AM +0000, Herv Hnoch wrote:
CETLOG: statement: PREPARE <unnamed> AS SELECT adm_pat."nip", id_caisse
caisse FROM adm_pat WHERE nip = '20020523'CETERROR: syntax error at or near "caisse" at character 33
Are you writing this query or is JDBC generating it? The AS keyword
is required for column aliases; its absence is causing the syntax
error.
test=> CREATE TABLE foo (abc text);
test=> SELECT abc AS xyz FROM foo;
xyz
-----
(0 rows)
test=> SELECT abc xyz FROM foo;
ERROR: syntax error at or near "xyz" at character 12
LINE 1: SELECT abc xyz FROM foo;
^
--
Michael Fuhr
[Please copy the mailing list on replies.]
On Tue, Jan 31, 2006 at 08:53:44AM +0100, Hnoch Herv wrote:
Thank for you response .... I have never written this query : I think it
is JDBC that have generated it ... My query (written by me) is :select id_caisse as caisse from FROM adm_pat WHERE nip = '20020523'
I know I have to use "as" statement ... I'd never disturb you for a
simple syntax error ...
The above query does have a syntax error ("from FROM"), although
the query in your original report looked correct.
Jdbc version : jdbc3 8.1.404
I downloaded postgresql-8.1-404.jdbc3.jar onto a Solaris 9 box
running PostgreSQL 8.1.2 and wrote a test program to run your
original query:
select id_caisse as caisse from adm_pat where nip = '20020523'
The query ran successfully and logged the following:
LOG: statement: PREPARE <unnamed> AS select id_caisse as caisse from adm_pat where nip = '20020523'
LOG: statement: <BIND>
LOG: statement: EXECUTE <unnamed> [PREPARE: select id_caisse as caisse from adm_pat where nip = '20020523']
The very stange think is, if I write :
select nip, id_caisse as caisse from FROM adm_pat WHERE nip = '20020523'
There is no syntax error !!!!!
There should be a syntax error due to "from FROM"; please post the
actual queries you're running. It might also be helpful if you
could post a simple but complete program so we can see everything
you're doing. You might also try asking in the pgsql-jdbc list to
see if anybody there has heard of this problem.
--
Michael Fuhr
Import Notes
Reply to msg id not found: 43DF1788.8070704@isc84.org