Agreed. Although given that you can cast text to unknown, and NULL to text, it's not intuitively clear why this would have to fail absent replanning. However, knowing nothing about Postgres internals, I'm happy to take your word for it! Thanks again.
Ken
On Sun, Nov 17, 2013 at 7:59 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Ken Tanzer <ken.tanzer@gmail.com> writes: > But thinking about it some more, the function runs one of 5 possible > queries. 4 of them select NULL as comment (no cast), while the fifth (and > the one that caused this error) selects 'a string'.
Ah. Fixing that so all the variants produce the same (explicit) type should take care of this.
> I assume this will go away if I change my lazy query and cast my NULLs, but > still wonder if this is something that should be expected to fail?
Ideally it wouldn't, but it's not clear what it'd cost to fix it. If we just silently replanned when the query output types changed, then this type of situation would work but would carry a large hidden performance penalty. That's not too appetizing either.