Lists: | pgsql-hackers |
---|
From: | Andrei Kovalevski <andyk(at)commandprompt(dot)com> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | PREPARE vs query with MULTIPLE statements |
Date: | 2007-11-21 05:51:53 |
Message-ID: | 4743C779.6080904@commandprompt.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Hello.
I have found an interesting FRONTEND/BACKEND protocol behaviour. Let's
consider following query:
"SELECT 1; SELECT 2; SELECT3; SELECT4;"
1) If I send it as a simple query - I'm getting:
- correct results for SELECT 1; SELECT 2; SELECT3; SELECT4;
- and then one ReadyForQuery response
from backend.
[send_simple.log & recv_simple.log]
2) If I send it as 'PREPARE "SQL_CUR1" AS SELECT 1; SELECT 2; SELECT3;
SELECT4;' and then 'EXECUTE "SQL_CUR1" - I'm getting:
- results for SELECT 1; SELECT2; SELECT 3;
- ReadyForQuery response
- results for SELECT 4;
- one more ReadyForQuery response
from backend
[send_prepared.log & recv_prepared.log]
Is this behavour is correct and expected?
P.s. Tested on Windows with PostgreSQL 8.0, 8.1 and 8.2 with the same
results.
Thank You,
Andrei.
Attachment | Content-Type | Size |
---|---|---|
recv_prepare.log | text/plain | 753 bytes |
recv_simple.log | text/plain | 734 bytes |
send_prepare.log | text/plain | 221 bytes |
send_simple.log | text/plain | 178 bytes |
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andrei Kovalevski <andyk(at)commandprompt(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: PREPARE vs query with MULTIPLE statements |
Date: | 2007-11-21 05:57:35 |
Message-ID: | 27155.1195624655@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Andrei Kovalevski <andyk(at)commandprompt(dot)com> writes:
> 2) If I send it as 'PREPARE "SQL_CUR1" AS SELECT 1; SELECT 2; SELECT3;
> SELECT4;' and then 'EXECUTE "SQL_CUR1" - I'm getting:
> - results for SELECT 1; SELECT2; SELECT 3;
> - ReadyForQuery response
> - results for SELECT 4;
> - one more ReadyForQuery response
> from backend
> Is this behavour is correct and expected?
You seem to have some odd ideas about what the semicolons mean.
The prepare command there is PREPARE "SQL_CUR1" AS SELECT 1
... no more and no less.
regards, tom lane
From: | Andrei Kovalevski <andyk(at)commandprompt(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: PREPARE vs query with MULTIPLE statements |
Date: | 2007-11-21 06:10:46 |
Message-ID: | 4743CBE6.5070705@commandprompt.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Yes, Thank you!
Tom Lane wrote:
> Andrei Kovalevski <andyk(at)commandprompt(dot)com> writes:
>
>> 2) If I send it as 'PREPARE "SQL_CUR1" AS SELECT 1; SELECT 2; SELECT3;
>> SELECT4;' and then 'EXECUTE "SQL_CUR1" - I'm getting:
>> - results for SELECT 1; SELECT2; SELECT 3;
>> - ReadyForQuery response
>> - results for SELECT 4;
>> - one more ReadyForQuery response
>> from backend
>>
>
>
>> Is this behavour is correct and expected?
>>
>
> You seem to have some odd ideas about what the semicolons mean.
> The prepare command there is PREPARE "SQL_CUR1" AS SELECT 1
> ... no more and no less.
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faq
>