| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | shihao zhong <zhong950419(at)gmail(dot)com> |
| Cc: | Marcos Castedo <marcos(dot)castedo(at)anachronics(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org |
| Subject: | Re: BUG #19816: PL/Python SD dictionary is split by input collation in 19rc1 |
| Date: | 2026-11-11 17:35:21 |
| Message-ID: | 3249682.1794418521@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
I wrote:
> So I'm now coming around to the conclusion that bug compatibility
> with the old behavior is the way to go. Maybe we will rethink
> that when/if we get around to supporting polymorphic arguments,
> but we don't have to make a decision about that today. If we
> split off a separate hashtable as Shihao's v1 patch does, then
> we've successfully decoupled the SD behavior from funccache.c's
> rules, and we will be free to go either way when the time comes.
> So I think Shihao's patch is the right thing (at least approximately,
> I haven't read it in detail), and I'll move forward with that.
Okay, so I started looking at the patch and immediately realized
that it's set up to replace SD any time the function is redefined.
I think that's taking bug-compatibility with the old behavior a
bit too far: you certainly would not get that impression from
the manual's description. I propose we drop that behavior and
just run with the function OID and trigger relation as hash keys.
As a minor criticism, I find it odd to make PLy_procedure_compile
sometimes create the SD dictionary and sometimes not. There are
only two callers, so I'm more inclined to require both callers
to handle that.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2026-11-11 20:23:49 | Re: BUG #19826: corr()/regr_r2() of constant input: NULL serially, 1 with partial aggregation |
| Previous Message | JF Intelligent Automation | 2026-11-11 16:55:31 | PostgreSQL 17.11 initdb on Windows: restricted-token errors 87 and 0 despite exit status 0 |