Tatsuo Ishii wrote:
> test=# select * from "t1"_foo;
> select * from "t1"_foo;
> i
> ---
> (0 rows)
>
> It seems PostgreSQL thinks "t1"_foo is equivalent to t1. Is this an
> expected behavior?
That code looks badly written in any event. Delimiters should be put around
each part of an identifier or chain as a whole, such as:
select * from "t1_foo";
Or with schema-delimited objects, for example, any of these:
schema.table
"schema".table
schema."table"
"schema"."table"
Personally, I treat all of my identifiers as being case-sensitive. Knowing that
Pg treats non-delimited identifiers as being lowercase, I write undelimited when
the identifier is entirely lowercase, and I delimit ones that have any
uppercase. And by doing this consistently everything works correctly. Since
most of my identifiers are lowercase anyway, the code also reads cleanly in general.
-- Darren Duncan