DatabaseMetaData getColumns/getIndexInfo : what is 'valid' input?

43 views
Skip to first unread message

persistability

unread,
Aug 14, 2014, 3:21:33 AM8/14/14
to xer...@googlegroups.com
Hi,

tried accessing table/column/index info using DatabaseMetaData.getColumns and DatabaseMetaData.getIndexInfo and simply receive unintelligible exceptions. I am wondering what is "valid" input data for catalogName, schemaName etc for these methods. Can anyone help? I'm using 3.8.5-pre1 (the latest in Maven Central).

I performed the following

CREATE TABLE SCHEMA_TABLE_1
(
    TABLE1_ID1 bigint NOT NULL,
    TABLE1_ID2 bigint NOT NULL,
    "NAME" TEXT(255) NULL,
    OTHER_ID bigint NULL,
    CONSTRAINT TABLE1_PK PRIMARY KEY (TABLE1_ID1,TABLE1_ID2)
);
CREATE INDEX SCHEMA_TABLE_1_N49 ON SCHEMA_TABLE_1 (OTHER_ID);
and committed the connection.


Using DatabaseMetaData.getIndexInfo(conn, null, null, "SCHEMA_TABLE_1", false, true) I am getting

java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "0": syntax error)
    at org.sqlite.core.DB.newSQLException(DB.java:890)
    at org.sqlite.core.DB.newSQLException(DB.java:901)
    at org.sqlite.core.DB.throwex(DB.java:868)
    at org.sqlite.core.NativeDB.prepare(Native Method)
    at org.sqlite.core.DB.prepare(DB.java:211)
    at org.sqlite.jdbc3.JDBC3Statement.executeQuery(JDBC3Statement.java:81)
    at org.sqlite.jdbc3.JDBC3Statement.executeQuery(JDBC3Statement.java:71)
    at org.sqlite.jdbc3.JDBC3DatabaseMetaData.getIndexInfo(JDBC3DatabaseMetaData.java:1532)

I got the same thing passing "" for catalog/schema.



Using DatabaseMetaData.getColumns(conn, null, null, null, null); I am getting the even more pleasant

java.lang.NullPointerException
    at org.sqlite.core.CoreDatabaseMetaData.escape(CoreDatabaseMetaData.java:182)
    at org.sqlite.jdbc3.JDBC3DatabaseMetaData.getColumns(JDBC3DatabaseMetaData.java:1114)



Any ideas? 
TIA
Reply all
Reply to author
Forward
0 new messages