You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Rick Hillegas (JIRA)" <ji...@apache.org> on 2007/04/10 19:44:32 UTC

[jira] Resolved: (DERBY-854) DatabaseMetaData methods fail on read-only database

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

Rick Hillegas resolved DERBY-854.
---------------------------------

    Resolution: Fixed

Based on Sunitha's analysis, I'm marking this as resolved.

> DatabaseMetaData methods fail on read-only database
> ---------------------------------------------------
>
>                 Key: DERBY-854
>                 URL: https://issues.apache.org/jira/browse/DERBY-854
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.1.2.1
>         Environment: Win XP SP2 / Intel
>            Reporter: Alex Miller
>         Attachments: BirtSample.jar, TestGetDBMetaData.java
>
>
> I am using a read-only db in a zip file with Derby in embedded mode.  I ran an importer against it which basically just harvests info from DatabaseMetaData and got an error on several methods like this one.  The method in question here is DatabaseMetaData.getTableTypes().  The same thing seems to happen on other methods I've tried as well (getCatalogs, getProcedures, etc).
> Program:
>         Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
>         Connection conn = DriverManager.getConnection("jdbc:derby:jar:(d:\\derby\\bqt\\zipped\\bqt-mini.zip)bqt");
>         DatabaseMetaData dbmd = conn.getMetaData();
>         ResultSet rs = dbmd.getTableTypes();
> ERROR 40XD1: Container was opened in read-only mode.  
>         at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
>         at org.apache.derby.impl.store.raw.data.BaseContainer.use(Unknown Source)
>         at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
>         at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
>         at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
>         at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
>         at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
>         at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
>         at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
>         at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
>         at org.apache.derby.impl.sql.execute.RowChangerImpl.openForUpdate(Unknown Source)
>         at org.apache.derby.impl.sql.execute.RowChangerImpl.open(Unknown Source)
>         at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRows(Unknown Source)
>         at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRow(Unknown Source)
>         at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.dropDependentsStoredDependencies(Unknown Source)
>         at org.apache.derby.impl.sql.depend.BasicDependencyManager.clearDependencies(Unknown Source)
>         at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.compileStatement(Unknown Source)
>         at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
>         at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
>         at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
>         at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
>         at org.apache.derby.impl.sql.compile.ExecSPSNode.generate(Unknown Source)
>         at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
>         at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
>         at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
>         at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedConnection.prepareMetaDataStatement(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.prepareSPS(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getPreparedQuery(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getSimpleQuery(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getTableTypes(Unknown Source) 

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