Tom, * Tom Lane (t...@sss.pgh.pa.us) wrote: > Stephen Frost <sfr...@snowman.net> writes: > > * Tom Lane (t...@sss.pgh.pa.us) wrote: > >> I have a vague feeling that the code for dumping casts and/or transforms > >> may have some assumptions that the underlying function is also being > >> dumped. Although maybe the assumption was really only what's fixed here, > >> ie that there be a DumpableObject for the function. Anyway, take a close > >> look for that. > > > I'll look around and see, though my hunch is that, at some point, we > > were just pulling all functions and then an optimization was added to > > exclude pg_catalog and no one noticed that it broke casts using built-in > > functions. > > Nah, that's historical revisionism --- the exclusion for system functions > is very ancient. It certainly predates transforms altogether, and > probably predates the cast-dumping code in anything like its current form.
Oh, certainly it predates transforms entirely, but I completely expect that code to have been copied from dumpCast(). > I think the expectation was that casts using built-in functions were > also built-in and so needn't be dumped. There may be a comment about it > somewhere, which would need to be revised now. I'll look and see. > (Actually, the most likely way in which this would break things is if > it started causing built-in casts to get dumped ... have you checked?) I did and it doesn't cause built-in casts to be dumped because we have the FirstNormalObjectId check in selectDumpableCast(). We don't have that for transforms (it just uses the generic selectDumpableObject routine), but we also don't have any built-in transforms. Thanks! Stephen
Description: Digital signature