[pgpool-hackers: 3706] Re: Query mis cached

Tatsuo Ishii ishii at sraoss.co.jp
Thu Jul 9 21:46:00 JST 2020


> Hi pgpool hackers,
> 
> 
> 
> I found the following SQL will be cached, when enabled memory query cache,
> 
> 
> 
>         "with cte as (insert into test2 values(1) returning *) select * from test2;"
> 
> 
> 
> I think the SQL has Data-Modifying Statements in with clause should not be cached.
> 
> Because Once cached, the Data-Modifying Statements will not be executed again which is not expected.

You are right.

> It seems to be better to analyze the with clause like the following:
> 
> 
> 
> --------For UPDATE/INSERT/DELETE type SQL:
> 
>                 extract oids from its with clause which will be invalidated.
> 
> 
> 
> --------For SELECT type SQL:
> 
>                 If Data-Modifying Statements in its with clause, the select will not be cached,
> 
>                 and the oids from with clause will be invalidated too.
> 
> 
> 
> What do you think?
> 
> 
> 
> I try to solve the problem and made a patch for the code.

Thank you for the patch! I will look into this.

Best regards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp


More information about the pgpool-hackers mailing list