Ivan Sergio Borgonovo <mail(at)webthatworks(dot)it> writes:
> Still why does the else condition get evaluated anyway when at least
> one of the "when" condition is true?
Because 'literal'::type is a literal of that type; it does not represent
a run-time conversion. I think we document that under the discussion
of constants in the syntax chapter.
regards, tom lane