Marc Munro <marc@bloodnok.com> writes:
> This works fine:
> "str2" varchar(40)
> This does not:
> "str2" "pg_catalog"."varchar"(40)
Yeah. That's because in all existing PG releases, type modifiers are
handled by hard-wired grammar productions that *only* work for VARCHAR,
CHARACTER VARYING, and so on, treated as keywords.
Teodor did some remarkable work for 8.3, fixing things so that any type
name could have modifiers attached, without (we hope ;-)) breaking any
cases that worked before. It had previously been assumed that this was
impossible, because a type-name-plus-modifier looks just about
indistinguishable from a function call, but he managed to find a way
that side-stepped all the grammatical ambiguities. Your examples all
work fine in CVS HEAD.
regards, tom lane