From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
Cc: | Bryn Llewellyn <bryn(at)yugabyte(dot)com>, pgsql-general list <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Behavior of PL/pgSQL function following drop and re-create of a table that it uses |
Date: | 2023-03-08 04:49:15 |
Message-ID: | 121427.1678250955@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
"David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> writes:
> So I found where this difference in behavior is at least explicitly noted:
>/*
> * If it's a named composite type (or domain over one), find the typcache
> * entry and record the current tupdesc ID, so we can detect changes
> * (including drops). We don't currently support on-the-fly replacement
> * of non-composite types, else we might want to do this for them too.
> */
I'm not quite sure that that's related, really. That code is concerned
with detecting changes to an already-identified type (that is, type
OID NNN has different details now than it did before). It seemed to
me that Bryn's question was more about reacting to cases where a given
string of source code would resolve to a different type OID than it
did a moment ago. We don't have a great story on that, I'll agree.
You can get into that sort of problem without anywhere near the amount
of complexity embodied in this example --- for instance, I'm pretty
sure we don't re-parse type references just because somebody else
executed an ALTER TYPE RENAME somewhere.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | David G. Johnston | 2023-03-08 04:56:25 | Re: Behavior of PL/pgSQL function following drop and re-create of a table that it uses |
Previous Message | Tom Lane | 2023-03-08 04:28:50 | Re: could not bind IPv4 address "127.0.0.1": Address already in use |