BTW, I was annoyed while looking things over that this patch had broken
a couple of comments in opr_sanity.sql:
@@ -823,7 +823,6 @@ WHERE a.aggfnoid = p.oid AND
-- Cross-check transfn against its entry in pg_proc.
-- NOTE: use physically_coercible here, not binary_coercible, because
--- max and min on abstime are implemented using int4larger/int4smaller.
SELECT a.aggfnoid::oid, p.proname, ptr.oid, ptr.proname
FROM pg_aggregate AS a, pg_proc AS p, pg_proc AS ptr
WHERE a.aggfnoid = p.oid AND
@@ -978,7 +977,6 @@ WHERE a.aggfnoid = p.oid AND
-- Check that all combine functions have signature
-- combine(transtype, transtype) returns transtype
-- NOTE: use physically_coercible here, not binary_coercible, because
--- max and min on abstime are implemented using int4larger/int4smaller.
SELECT a.aggfnoid, p.proname
FROM pg_aggregate as a, pg_proc as p
Just removing a fraction of the sentence is not good.
So I went looking for a different example to plug in there, and soon
found that there weren't any. If you change all the physically_coercible
calls in that script to binary_coercible, its output doesn't change.
I'm thinking that we ought to do that, and just get rid of
physically_coercible(), so that we have a tighter, more semantically
meaningful set of checks here. We can always undo that if we ever
have occasion to type-cheat like that again, but offhand I'm not sure
why we would do so.
regards, tom lane