Re: Limit vs setMaxRows issue
От | Oliver Jowett |
---|---|
Тема | Re: Limit vs setMaxRows issue |
Дата | |
Msg-id | 44B34751.7010704@opencloud.com обсуждение исходный текст |
Ответ на | Re: Limit vs setMaxRows issue (Marc Herbert <Marc.Herbert@continuent.com>) |
Список | pgsql-jdbc |
Marc Herbert wrote: > Tom Lane <tgl@sss.pgh.pa.us> writes: > > >>No, it would take a protocol change to add such a thing out-of-line >>(that is, not as a LIMIT clause in the query text). The reason is that >>the planning is done at PARSE time, or at the latest BIND time. The >>row limit field in the EXECUTE message comes far too late to affect the >>query plan. > > > > If planning is done at time of creation of the PreparedStatement > object (reminder: the example given above has no parameters), then the > setMaxRows() call will come too late whatever is the protocol change. > I mean: no protocol change can go back in time and "optimize" by not > doing useless work already done. > > Thanks in advance for pointing out my mistake(s) here. We do not special-case the no-parameters case, so it's handled just like all the other cases: the query is parsed and planned immediately before execution. We also avoid an extra round-trip by doing it at that point. If you're interested in the details of this, the driver source code is really your best reference.. -O
В списке pgsql-jdbc по дате отправления: