[
https://issues.apache.org/jira/browse/DERBY-2222?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jørgen Løland updated DERBY-2222:
---------------------------------
Attachment: ijMultipleResultSetResult.java
DERBY-2222-1.stat
DERBY-2222-1.diff
By fixing DERBY-1484, DatabaseMetaData#getIndexInfo will no longer allow null
values for the table name. This breaks the "show indexes" functionality of ij
in its current implementation.
To remedy this, the "show index" functionality has been rewritten to something
like:
---- code ---
ij.jj#showIndexes (schema, table){
if (table != null) return new ijResultSetResult(dbmd.getIndexInfo(schema,
table))
else
dbmd.getTables(schema)
for each tablename in schema
resultSetList.add(dbmd.getIndexInfo(schema, table))
return new ijMultipleResultSetResult(resultSetList)
---- /code ---
The posted patch adds a new subclass of ijResultImpl (currently called
ijMultipleResultSetResult) that effectively is a List of ResultSet.
JDBCDisplayUtil is modified to handle this by showing the banner first, and
then show all the rows in all resultsets in the ijMultipleResultSetResult
object.
I will apply the same fix to all ij functionality that uses methods in
DatabaseMetaData where table = null is no longer allowed. See DERBY-1484 for
details.
> 'show indexes in SCHEMANAME' does not work with the client driver
> -----------------------------------------------------------------
>
> Key: DERBY-2222
> URL: https://issues.apache.org/jira/browse/DERBY-2222
> Project: Derby
> Issue Type: Bug
> Components: Network Client, Tools
> Affects Versions: 10.2.2.0, 10.3.0.0
> Reporter: Kristian Waagan
> Assigned To: Jørgen Løland
> Attachments: DERBY-2222-1.diff, DERBY-2222-1.stat,
> ijMultipleResultSetResult.java
>
>
> The ij command 'show indexes in SCHEMANAME' does not work at all with the
> client driver.
> It does work with the embedded driver.
> Sample output from ij:
> ij> connect 'jdbc:derby://localhost/myDB;create=true';
> ij> create table test (id int primary key);
> 0 rows inserted/updated/deleted
> ij> show indexes in app;
> ERROR XJ103: Table name can not be null
> ij> show indexes from test;
> TABLE_NAME |COLUMN_NAME |NON_U&|TYPE|ASC&|CARDINA&|PAGES
> ----------------------------------------------------------------------------
> TEST |ID |0 |3 |A |NULL |NULL
> 1 row selected
> ij> show indexes from app.test;
> TABLE_NAME |COLUMN_NAME |NON_U&|TYPE|ASC&|CARDINA&|PAGES
> ----------------------------------------------------------------------------
> TEST |ID |0 |3 |A |NULL |NULL
> 1 row selected
> ij>
> Using delimited table and/or schema names does not work, but I think this is
> according to documentation.
> I.e.:
> ij> show indexes from "TEST";
> ERROR 42X01: Syntax error: Encountered "show" at line 1, column 1.
> ij> show indexes from "APP".test;
> ERROR 42X01: Syntax error: Encountered "show" at line 1, column 1.
> ij> show indexes from "APP"."TEST";
> ERROR 42X01: Syntax error: Encountered "show" at line 1, column 1.
> ij>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.