Re: streaming result sets: progress - Mailing list pgsql-jdbc

From Nic Ferrier
Subject Re: streaming result sets: progress
Date
Msg-id 87n0oclzhy.fsf@pooh-sticks-bridge.tapsellferrier.co.uk
Whole thread Raw
In response to Re: streaming result sets: progress  (Barry Lind <blind@xythos.com>)
Responses PostgreSQL/Oracle/MSSQL differences (was: streaming result sets: progress)  ("David Hooker" <dhooker@a4networks.com>)
Re: streaming result sets: progress  (snpe <snpe@snpe.co.yu>)
List pgsql-jdbc
Barry Lind <blind@xythos.com> writes:

> nferrier@tapsellferrier.co.uk wrote:
> > snpe <snpe@snpe.co.yu> writes:
> >
> > Yes. But the reason I send:
> >
> > DECLARE JDBC_CURS_1 CURSOR FOR select * from tab FETCH FORWARD 100 FROM JDBC_CURS_1;
> >
> > is because the SQL statement you supply is _supposed_ to end with a
> > ";". The code for the above is actually doing:
> >
> >    DECLARE JDBC_CURS_1 CURSOR FOR $userquery  FETCH FORWARD 100 FROM JDBC_CURS_1;
> >
> > where $userquery is what comes in from the client code, eg:
> >
> >    Statement st = con.createStatement();
> >    ResultSet rs = con.executeQuery("select * from tab;");
> >
> > then "select * from tab;" is inserted as $userquery. It must always
> > end with ";" because that's how PGSQL's normal query processing works.
> >
>
> The the ; is not required for the rest of the jdbc driver.  In fact in
> other areas of the code (like server prepared statements, batch updates)
> the requirement is that the user supplied sql statement does *not* end
> in a ;.
>
> This is also consistent with other jdbc drivers.  In fact oracle gives
> you an error if a sql statement ends with a ;.

Apologies to everyone paying attention to this thread... in my
experience postgres has always complained when I haven't supplied the
";".

I will investigate and fix the patch.


Nic

pgsql-jdbc by date:

Previous
From: Barry Lind
Date:
Subject: Re: streaming result sets: progress
Next
From: "David Hooker"
Date:
Subject: PostgreSQL/Oracle/MSSQL differences (was: streaming result sets: progress)