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

From dmp
Subject Re: Case-sensitive problem in AS clause?
Date
Msg-id 50045DFB.8010508@ttc-cmc.net
Whole thread Raw
In response to Re: Case-sensitive problem in AS clause?  ("David Johnston" <polobo@yahoo.com>)
Responses Re: Case-sensitive problem in AS clause?  (Dave Cramer <pg@fastcrypt.com>)
List pgsql-jdbc
David Johnston wrote:

>> 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
>>        *
> public boolean isCaseSensitive(int column) throws SQLException
>     {
>         Field field = getField(column);
>         return connection.getTypeInfo().isCaseSensitive(field.getOID());
>     }
> 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.

Case sensitivity appears to by based on the "type", not column "name" or
"value":

connection.getTypeInfo() returns TypeInfo
TypeInfo.isCaseSensitive() takes the field.getOID() which is a Type.

Test:

Connection Created
Select * from "Student"
Column: ID Type: 4 Type Name: int4 isSensitive: false
Column: Name Type: 12 Type Name: varchar is Sensitive: true
Connection Closed

Connection Created
Select ('Student' || "ID" ) AS StudentId from "Student"
Column: studentid Type: 12 Type Name: text isSensitive: true
Connection Closed

Your assumption appears be true, but based on type, which I guess you
could argue is value. The op is making the false assumption isCaseSenstive()
is based on column name which it is not looks from the code.

danap.

pgsql-jdbc by date:

Previous
From: "David Johnston"
Date:
Subject: Re: Case-sensitive problem in AS clause?
Next
From: Dave Cramer
Date:
Subject: Re: Case-sensitive problem in AS clause?