Re: Array passing
От | Kris Jurka |
---|---|
Тема | Re: Array passing |
Дата | |
Msg-id | 49DCCAAA.3080604@ejurka.com обсуждение исходный текст |
Ответ на | Re: Array passing ("John Lister" <john.lister-ps@kickstone.com>) |
Список | pgsql-jdbc |
John Lister wrote: > I've applied the patch, but there seems to be a couple of issues. > > To do binary transfer, it needs to do a describe before the bind so as > to get the returned field types. This seems to only be done when > ForceBinaryTransfer is set. > My memory of what the patch does is a little fuzzy and I've only looked at the binary receive patch, but here's how I understood it. The current driver execution does not bother retrieving the describe results before executing a query. This means we don't know what types will be returned beforehand, so we don't know if we can support retrieving them in binary and must retrieve them as text. This is done to avoid an extra network roundtrip for query execution. What the patch does is to look at a prepared statement and see if we've already prepared it. If we have, then we have the previous describe results and know what fields we can handle as binary. So without ForceBinaryTransfer, binary will only kick in on the second execution (or perhaps prepareThreshold executions, I forget). ForceBinaryTransfer is really a hack to test this which prepares a query twice to make this work, so don't be fooled by the first preparation and wait for the second one. > Secondly when it does the describe, sendParse trashes the fields details > by setting them to null before the main query is executed. > I'm not sure what you're referring to specifically. sendParse certainly doesn't adjust any of the params that are passed in, and it doesn't touch anything if the query is already prepared. > Did this patch use to work, i can't see how in its current form. > It did work and I have no reason to believe that's changed. Perhaps it just isn't working as you're expecting. Perhaps you're trying it with arrays which it might not support? I'd try getting it working with a plain int or two first. Kris Jurka
В списке pgsql-jdbc по дате отправления: