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