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.
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? |