Re: Case-sensitive problem in AS clause? - Mailing list pgsql-jdbc

From David Johnston
Subject Re: Case-sensitive problem in AS clause?
Date
Msg-id 014c01cd6379$8f14a560$ad3df020$@yahoo.com
Whole thread Raw
In response to Re: Case-sensitive problem in AS clause?  (Dave Cramer <pg@fastcrypt.com>)
List pgsql-jdbc
> -----Original Message-----
> From: davecramer@gmail.com [mailto:davecramer@gmail.com] On Behalf
> Of Dave Cramer
> Sent: Monday, July 16, 2012 12:56 PM
> To: David Johnston
> Cc: dmp; Laurent Mazuel; PostgreSQL JDBC
> Subject: Re: [JDBC] Case-sensitive problem in AS clause?
>
> The name of the column is not always case sensitive in fact postgresql all
> names are folded to lower case unless quoted
>
> Dave Cramer
>
> dave.cramer(at)credativ(dot)ca
> http://www.credativ.ca
>
>
> On Mon, Jul 16, 2012 at 12:49 PM, David Johnston <polobo@yahoo.com>
> wrote:
> >> -----Original Message-----
> >> From: pgsql-jdbc-owner@postgresql.org [mailto:pgsql-jdbc-
> >> owner@postgresql.org] On Behalf Of dmp
> >> Sent: Monday, July 16, 2012 12:05 PM
> >> To: Laurent Mazuel; PostgreSQL JDBC
> >> Subject: Re: [JDBC] Case-sensitive problem in AS clause?
> >>
> >> Again as the as identifier is not quoting it default to the default
> > behavior for
> >> assignment. As far as the isCaseSensitive() it is found that the
> >> method in
> > the
> >> Pgjdbc, org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java is:
> >>
> >> /*
> >>       * Does a column's case matter? ASSUMPTION: Any field that is
> >>       * not obviously case insensitive is assumed to be case sensitive
> >>       *
> >>
> >> >
> >> > Then, the column name is changed from StudentId to studentid, but
> >> > the "isCaseSensitive" flag is "true". I think it is not correct,
> >> > since it is impossible from now, when a user ask for the StudentId
> >> > column to retrieve it from a resultset. The "isCaseSensitive" don't
> >> > authorize to accept the string StudentId as a valid column name for
> >> > the studentid column in the ResultSet.
> >>
> >> Recommed you quote AS "StudentID" to get the behavior you desire.
> >>
> >> danap.
> >
> > Does the "isCaseSensitive(int)" function return whether the "value"
> > stored in the column is case-sensitive or does it return whether the
> > "name" of the column is case-sensitive?
> >
> > The OP is using it to determine whether the "name" is case-sensitive -
> > which it is always.
> >
> > My assumption is that it would indicate whether the "value" is
> > case-sensitive - which is also true because varchar/text is
case-sensitive.
> >
> > The fact that different fields may or may not be case-sensitive
> > supports this since the "case-sensitive" property of a column "name"
> > should be constant throughout the database/product.
> >
> > David J.
> >

Folding to lower-case does not negate the fact that the name itself is
always case-sensitive.  It is just when you don't put the name in quotes a
pre-processing phase translates the name into lower-case.  I get that this
is semantics but in a true case-insensitive system it would not matter
whether you used quotes or not when providing the name.  So in PostgreSQL
names are always case-sensitive but if the name is not quoted the case of
the name is automatically converted to lower-case before the case-sensitive
comparison is made.  In other words - once the name is stored it no longer
matters how the value was entered (i.e., with or without qutotes) its value
is stored in a case-sensitive manner.  There is no way to store an
mixed-case value and then compare to it in a case-insensitive manner.  E.G.,
If my field name has been stored as "ColumnA" there is no way to reference
that column other than by writing: SELECT "ColumnA" ... Futhermore the
system cannot distinguish between (columna) AND ("columna") - both
representations are equivalent.  By your logic the former should return
"case-insensitive" while the later should return "case-sensitive".

David J.





pgsql-jdbc by date:

Previous
From: Radim Kolar
Date:
Subject: not fetching all query results
Next
From: dmp
Date:
Subject: Re: Case-sensitive problem in AS clause?