Re: Case-sensitive problem in AS clause?

Поиск
Список
Период
Сортировка
От Dave Cramer
Тема Re: Case-sensitive problem in AS clause?
Дата
Msg-id CADK3HH+aHznmFJ5nVHm9SYVvzcDE8vZ-g2pCSCYgj7hyn_bPAw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Case-sensitive problem in AS clause?  (dmp <danap@ttc-cmc.net>)
Ответы Re: Case-sensitive problem in AS clause?  (Craig Ringer <ringerc@ringerc.id.au>)
Список pgsql-jdbc
Ok, I just looked up the tutorial and it really is whether the value
stored in the column is case sensitive, not the name of the column.

Yet another serious ambiguity in the API spec.

Dave Cramer

dave.cramer(at)credativ(dot)ca
http://www.credativ.ca


On Mon, Jul 16, 2012 at 2:31 PM, dmp <danap@ttc-cmc.net> wrote:
> 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.
>
>
> --
> Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-jdbc

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: dmp
Дата:
Сообщение: Re: Case-sensitive problem in AS clause?
Следующее
От: Craig Ringer
Дата:
Сообщение: Re: not fetching all query results