Josh Berkus <josh@agliodbs.com> writes:
> UPDATE: Turns out the garbage characters were actually in the field names
> themselves. Somehow a previous bad connection caused line breaks to get
> replaced with unicode garbage when I created the table. It seems like, in
> PSQL, the use of non-ASCII characters should require quoted identifiers, but
> apparently not?
No, that's deliberate: any byte >= octal 200 is allowed as part of an
unquoted identifier. Non-English-speaking users would get quite upset
with us if they had to quote, say, e-acute to use it in an identifier.
Ideally I suppose we'd restrict it to just characters that actually have
some letter nature to them, but the trouble with that is it'd make the
backend lexical rules encoding-dependent, which is bad news for a number
of reasons. So we allow 200-377 in all cases.
regards, tom lane