Обсуждение: inquiry
hello,
I have read the source code of postgres.c. Two strang things I can't understand.
Souce code of Postgres.c:
..
Foreach(parsetree_list的元素parsetree){ //In what situation here will be many parsetrees?
…
(List *)querytree_list = pg_analyze_and_rewrite(parsetree);foreach(querytree_list中的每个querytree){ //In what situation
herewill be many querytrees?
Who can tell me the reason?
Thank you very much
Jinqiang Han
Jinqiang Han wrote:
> hello,
>
> I have read the source code of postgres.c. Two strang things I can't understand.
> Souce code of Postgres.c:
> ..
> Foreach(parsetree_list��Ԫ��parsetree){ //In what situation here will be many parsetrees��
> ��
You can send multiple queries in a single string, "SELECT;SELECT".
> (List *)querytree_list = pg_analyze_and_rewrite(parsetree);
> foreach(querytree_list�е�ÿ��querytree){ //In what situation here will be many querytrees��
A RULE may have additional queries to fire.
>
> Who can tell me the reason?
> Thank you very much
>
> Jinqiang Han
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html
>
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square,
Pennsylvania19073
hi,Bruce Momjian
I think you are wrong. multiple query in a string, such as ""SELECT;SELECT" will invoke pg_execute_query_string twice,
Itwon't generate two parsetree.
======= 2003-03-26 10:20:00 您在来信中写道:=======
>Jinqiang Han wrote:
>> hello,
>>
>> I have read the source code of postgres.c. Two strang things I can't understand.
>> Souce code of Postgres.c:
>> ..
>> Foreach(parsetree_list的元素parsetree){ //In what situation here will be many parsetrees?
>> …
>
>You can send multiple queries in a single string, "SELECT;SELECT".
>
>> (List *)querytree_list = pg_analyze_and_rewrite(parsetree);
>> foreach(querytree_list中的每个querytree){ //In what situation here will be many querytrees?
>
>A RULE may have additional queries to fire.
>
>>
>> Who can tell me the reason?
>> Thank you very much
>>
>> Jinqiang Han
>>
>>
>> ---------------------------(end of broadcast)---------------------------
>> TIP 5: Have you checked our extensive FAQ?
>>
>> http://www.postgresql.org/docs/faqs/FAQ.html
>>
>
>--
> Bruce Momjian | http://candle.pha.pa.us
> pgman@candle.pha.pa.us | (610) 359-1001
> + If your life is a hard drive, | 13 Roberts Road
> + Christ can be your backup. | Newtown Square, Pennsylvania 19073
>
>.
= = = = = = = = = = = = = = = = = = = =
"Jinqiang Han" <postgresql@db.pku.edu.cn> writes:
> hi,Bruce Momjian
> I think you are wrong. multiple query in a string, such as ""SELECT;SELECT" will invoke pg_execute_query_string
twice,It won't generate two parsetree.
Try it in something other than psql. psql splits such a string into
multiple submissions to the backend --- but other interfaces don't.
regards, tom lane