"Heikki Linnakangas" <heikki@enterprisedb.com> writes:
> Luiz K. Matsumura wrote:
>> But, with the 'replace' command, this isn't implicit ?
>> If they found a view, replace the existing view with the new one (on the
>> other words, drop and create again?)
> Replacing is not exactly the same thing as dropping and recreating it.
> If the view has dependencies, you can't drop it without dropping the
> dependent objects first, and likewise you can't change its datatypes
> because it would affect the dependent objects as well (hence the
> limitation on CREATE OR REPLACE VIEW).
Right. And the reason this appears to be a data type change is that
"NULL" is not length-constrained, so the type computed for the first
UNION's output is just bpchar (ie, unconstrained-length character)
rather than character(3) which is what you get in the second case.
regards, tom lane