Re: Delimited identifier brhavior - Mailing list pgsql-hackers

From Darren Duncan
Subject Re: Delimited identifier brhavior
Date
Msg-id 4CDC7CFC.4090207@darrenduncan.net
Whole thread Raw
In response to Delimited identifier brhavior  (Tatsuo Ishii <ishii@postgresql.org>)
List 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


pgsql-hackers by date:

Previous
From: "Kevin Grittner"
Date:
Subject: Re: Delimited identifier brhavior
Next
From: Andrew Dunstan
Date:
Subject: Re: Delimited identifier brhavior