Re: BUG #19816: PL/Python SD dictionary is split by input collation in 19rc1

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

In response to

Responses

Browse pgsql-bugs by date

  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