Re: Case-sensitive problem in AS clause?

From: dmp <danap(at)ttc-cmc(dot)net>
To: David Johnston <polobo(at)yahoo(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Case-sensitive problem in AS clause?
Date: 2012-07-16 18:31:23
Message-ID: 50045DFB.8010508@ttc-cmc.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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.

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2012-07-16 18:48:22 Re: Case-sensitive problem in AS clause?
Previous Message David Johnston 2012-07-16 17:36:39 Re: Case-sensitive problem in AS clause?