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 "Knut Anders Hatlen (JIRA)" <ji...@apache.org> on 2010/11/15 14:26:15 UTC

[jira] Assigned: (DERBY-4904) Plan exporter doesn't work if XPLAIN schema has special characters

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

Knut Anders Hatlen reassigned DERBY-4904:
-----------------------------------------

    Assignee: Knut Anders Hatlen

Looks like the schema isn't escaped when AccessDatabase creates queries against the xplain tables. I'll see if I can come up with a fix.

> Plan exporter doesn't work if XPLAIN schema has special characters
> ------------------------------------------------------------------
>
>                 Key: DERBY-4904
>                 URL: https://issues.apache.org/jira/browse/DERBY-4904
>             Project: Derby
>          Issue Type: Bug
>          Components: Tools
>    Affects Versions: 10.7.1.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>
> If the XPLAIN schema contains lowercase characters (e.g, CALL SYSCS_UTIL.SYSCS_SET_XPLAIN_SCHEMA('my_stats_schema')), the plan exporter will fail with
> ERROR 42Y07: Schema 'MY_STATS_SCHEMA' does not exist
> 	at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:286)
> 	at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getSchemaDescriptor(DataDictionaryImpl.java:1528)
> (...)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(EmbedStatement.java:153)
> 	at org.apache.derby.impl.tools.planexporter.AccessDatabase.noOfNodes(AccessDatabase.java:417)
> 	at org.apache.derby.impl.tools.planexporter.AccessDatabase.initializeDataArray(AccessDatabase.java:323)
> 	at org.apache.derby.tools.PlanExporter.main(PlanExporter.java:59)
> If the schema contains spaces or special characters, like single-quotes or double-quotes, it will get a syntax error instead:
> ij> CALL SYSCS_UTIL.SYSCS_SET_RUNTIMESTATISTICS(1);
> ij> CALL SYSCS_UTIL.SYSCS_SET_XPLAIN_SCHEMA('my "quoted" schema');
> ij> SELECT * FROM SYSIBM.SYSDUMMY1;
> $ java org.apache.derby.tools.PlanExporter jdbc:derby:db 'my "quoted" schema' 6f2b430a-012c-4ec6-f4a1-00000d4d4fe5 -xml plan.xml -html plan.html
> ERROR 42X01: Syntax error: Encountered "schema" at line 1, column 34.
>     at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:286)
>     at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(ParserImpl.java:155)
> (...)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(EmbedStatement.java:153)
> 	at org.apache.derby.impl.tools.planexporter.AccessDatabase.noOfNodes(AccessDatabase.java:417)
> 	at org.apache.derby.impl.tools.planexporter.AccessDatabase.initializeDataArray(AccessDatabase.java:323)
> 	at org.apache.derby.tools.PlanExporter.main(PlanExporter.java:59)

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