Re: Delimited identifier brhavior

From: Darren Duncan <darren(at)darrenduncan(dot)net>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Delimited identifier brhavior
Date: 2010-11-11 23:32:12
Message-ID: 4CDC7CFC.4090207@darrenduncan.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2010-11-12 00:08:03 Re: Delimited identifier brhavior
Previous Message Kevin Grittner 2010-11-11 23:12:30 Re: Delimited identifier brhavior