From: | Doug Doole <ddoole(at)salesforce(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Konstantin Knizhnik <k(dot)knizhnik(at)postgrespro(dot)ru>, Serge Rielau <serge(at)rielau(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Cached plans and statement generalization |
Date: | 2017-04-25 22:48:16 |
Message-ID: | CAP6UvaO9bS8+U-Upt-1Fkn7tgUyNW_BiCFbh9a4LgcHqh84kQw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
>
> (FWIW, on this list we don't do top-quotes)
>
I know. Forgot and just did "reply all". My bad.
It's not always that simple, at least in postgres, unless you disregard
> search_path. Consider e.g. cases like
>
> CREATE SCHEMA a;
> CREATE SCHEMA b;
> CREATE TABLE a.foobar(somecol int);
> SET search_patch = 'b,a';
> SELECT * FROM foobar;
> CREATE TABLE b.foobar(anothercol int);
> SELECT * FROM foobar; -- may not be cached plan from before!
>
> it sounds - my memory of DB2 is very faint, and I never used it much -
> like similar issues could arise in DB2 too?
>
DB2 does handle this case. Unfortunately I don't know the details of how it
worked though.
A naive option would be to invalidate anything that depends on table or
view *.FOOBAR. You could probably make it a bit smarter by also requiring
that schema A appear in the path.
- Doug
From | Date | Subject | |
---|---|---|---|
Next Message | Finnerty, Jim | 2017-04-25 22:57:15 | Re: Cached plans and statement generalization |
Previous Message | David G. Johnston | 2017-04-25 22:38:23 | Re: Cached plans and statement generalization |