[ 
https://issues.apache.org/jira/browse/DERBY-4430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Leroux updated DERBY-4430:
----------------------------------

    Attachment: DERBY-4430.ij.out
                DERBY-4430.sql
                DERBY-4430.patch

Hi,

Here is a first fix for this issue.
As Knut suggested, it uses 'stores{Upper,Lower}CaseIdentifiers'. However, I'm 
not sure it's very efficient to call getMetaData each time an identifier is 
encountered.

The other two attachments are:
- DERBY-4430.sql: the SQL file I used to manually test that patch against 
Postgre8.3
- DERBY-4430.ij.out: the output of ij when running this file

I've added a test in ij7 to ensure that lower case identifiers are still 
converted to upper case when we are running ij against Derby. 
This test passed - but only after I removed two white lines at the top of 
ij7.sql ???

One thing I was wondering: why using the ENGLISH locale when converting an 
identifier to upper/lower case?


> Make ij's SHOW and DESCRIBE commands more db agnostic
> -----------------------------------------------------
>
>                 Key: DERBY-4430
>                 URL: https://issues.apache.org/jira/browse/DERBY-4430
>             Project: Derby
>          Issue Type: Improvement
>          Components: Tools
>    Affects Versions: 10.6.0.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Sylvain Leroux
>            Priority: Minor
>         Attachments: DERBY-4430.ij.out, DERBY-4430.patch, DERBY-4430.sql
>
>
> ij's SHOW and DESCRIBE commands use DatabaseMetaData in order to be portable 
> to other databases than Derby, and in many cases they work fine with other 
> databases. However, the variants of the commands that take a table name or a 
> schema name assume that unquoted identifiers are converted to and stored in 
> upper case internally. This is not true for all databases, and since these 
> commands don't accept quoted identifiers, there's currently no way to access 
> tables/schemas that are not all upper case.
> One possible fix is to make the identifier() method in ij.jj use the 
> DatabaseMetaData methods storesLowerCaseIdentifiers(), 
> storesMixedCaseIdentifiers() and storesUpperCaseIdentifiers() to decide 
> whether it should convert the identifier to lower case, keep it unchanged, or 
> convert it to upper case. Currently, that method always converts the 
> identifiers to upper case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to