Re: streaming result sets: progress
От | snpe |
---|---|
Тема | Re: streaming result sets: progress |
Дата | |
Msg-id | 200211141646.01455.snpe@snpe.co.yu обсуждение исходный текст |
Ответ на | Re: streaming result sets: progress (nferrier@tapsellferrier.co.uk) |
Ответы |
Re: streaming result sets: progress
|
Список | pgsql-jdbc |
On Thursday 14 November 2002 04:30 pm, nferrier@tapsellferrier.co.uk wrote: > snpe <snpe@snpe.co.yu> writes: > > I add AbstractJdbc3Statement missing method from AbstractJdbc2Statement > > and it work.I don't test complete, but simple command on table with 1 > > mil. rows work fine. > > Ok. > > > > > 2) method nic_execute create query like : > > > > BEGIN; DECLARE JDBC_CURS_1 CURSOR FOR select * from tab FETCH FORWARD > > > > 100 FROM JDBC_CURS_1; > > > > I add ";" before FETCH > > > > > > Hmmm... that's odd. Does the statement you supply have a ";" on the > > > end of it? My patch only works if it does. > > > > You send this : > > BEGIN; DECLARE JDBC_CURS_1 CURSOR FOR select * from tab FETCH FORWARD 100 > > FROM JDBC_CURS_1; > > I change and send : > > BEGIN; DECLARE JDBC_CURS_1 CURSOR FOR select * from tab; FETCH FORWARD > > 100 FROM JDBC_CURS_1; > > 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. > > So if your code does this: > > Statement st = con.createStatement(); > ResultSet rs = con.executeQuery("select * from tab"); > > it won't work. AFAIK it won't work with unpatched PGSQL JDBC either > (please correct me if I'm wrong). > I can't use it, because I haven't change query in 3pty software (btw) In standard jdbc this is work : Statement st = con.createStatement(); ResultSet rs = con.executeQuery("select * from tab"); It is same with Your patch if I use next DECLARE JDBC_CURS_1 CURSOR FOR $userquery ; FETCH FORWARD 100 FROM JDBC_CURS_1; If is command like that query work unchanged in standard JDBC and with patch Of course, Your patch works with large tables regards Haris Peco
В списке pgsql-jdbc по дате отправления: