Tom Lane wrote:
>> How about introducing a "varchar2" type as in Oracle?
>
> Maybe. I think right now we don't allow input functions to decide
> that a non-null input string should be converted to a NULL, but
> that might be fixable. It'd still be an ugly mess though, since
> I suspect you'd have to introduce a whole structure of varchar2
> functions/operators paralleling text. For example, what is Oracle's
> handling of || ? AFAICS they can't be standards compliant there,
> which means you need a varchar2-specific nonstrict implementation
> of ||, and then to make that work the way Oracle users would expect,
> varchar2-ness rather than text-ness would have to propagate through
> anything else that might be done to a column before it reaches the ||.
Curiously enough, Oracle has it so that || of null arguments treats the
arguments as empty string.
It's beyond comprehension.
But yeah, a varchar2 type with a full set of functions and operators
could work. If you choose not to bother with supporting the char type.