Re: BUG #3052: Inconsistent results from PQexec... with rules
От | Tom Lane |
---|---|
Тема | Re: BUG #3052: Inconsistent results from PQexec... with rules |
Дата | |
Msg-id | 27359.1172246793@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #3052: Inconsistent results from PQexec... with rules ("brian blakey" <bmb4605@yahoo.co.uk>) |
Список | pgsql-bugs |
"brian blakey" <bmb4605@yahoo.co.uk> writes: > Shouldn't all three PQexec... functions return the same results for > equivalent requests. No, because they're using different underlying protocols with different feature sets. AFAICT you do get back "INSERT 0 0" command status in both cases, but the non-PQexec functions are using extended query protocol which will not return tuples for a non-SELECT query. There's a relevant comment in PortalRunMulti: /* * If the destination is DestRemoteExecute, change to DestNone. The * reason is that the client won't be expecting any tuples, and indeed has * no way to know what they are, since there is no provision for Describe * to send a RowDescription message when this portal execution strategy is * in effect. This presently will only affect SELECT commands added to * non-SELECT queries by rewrite rules: such commands will be executed, * but the results will be discarded unless you use "simple Query" * protocol. */ The old simple-Query protocol is fairly laid back about this, and can indeed tolerate several SELECTs with different row descriptors generated from a single command. (Although PQexec has its own limitations, and will summarily discard all but the last one...) The newer protocol is designed to be a lot more predictable from the client's point of view, so it won't allow that. regards, tom lane
В списке pgsql-bugs по дате отправления: