[ 
https://issues.apache.org/jira/browse/DERBY-4479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12828585#action_12828585
 ] 

Knut Anders Hatlen commented on DERBY-4479:
-------------------------------------------

One alternative approach is to stop caching DDL statements that cannot 
reasonably be expected to be re-executed. The CREATE TABLE statement, for 
example, cannot be successfully re-executed until the table has been dropped or 
renamed, in which case the cached statement will have been invalidated anyway. 
So in effect it just takes up space in the statement cache for no added benefit.

But the patch looks like an improvement, so +1 from me too.

> after rename table a to b then create table a statement execute cause null 
> point exception
> ------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4479
>                 URL: https://issues.apache.org/jira/browse/DERBY-4479
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.0.2.1, 10.1.1.0, 10.2.2.0, 10.3.3.0, 10.4.2.0, 
> 10.5.3.0, 10.6.0.0
>         Environment: Windows XP SP2
> java version "1.5.0_16"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b02)
> Java HotSpot(TM) Client VM (build 1.5.0_16-b02, mixed mode, sharing)
>            Reporter: dragon lee
>            Assignee: Bryan Pendleton
>            Priority: Minor
>         Attachments: patch.diff
>
>
> step 1 : create original table
>               CREATE TABLE BPEL_ARCHIVE (
>                       EVENT_TIME              CHAR(17) NOT NULL,
>                       BUSINESS_ID             VARCHAR(100) NOT NULL,
>                       EVENT_TYPE              INT,
>                       EVENT_CONTENT   BLOB,
>                       PRIMARY KEY ( EVENT_TIME )
>               )
> step 2 : rename original table to backup table
>               RENAME TABLE BPEL_ARCHIVE TO 
> BPEL_ARCHIVE_200912171148_200912171148
> step 3 : create original table
>              cause error...
> java.sql.SQLException: Java exception: ': java.lang.NullPointerException'.
>       at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
>       at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
>       at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
> Source)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>       at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown 
> Source)
>       at 
> world.dragon.service.bpel.event.derby.DerbyArchiveEndpoint.switchTargetTable(DerbyArchiveEndpoint.java:295)
>         ...................................
> Caused by: java.lang.NullPointerException
>       at 
> org.apache.derby.impl.sql.execute.CreateIndexConstantAction.executeConstantAction(Unknown
>  Source)
>       at 
> org.apache.derby.impl.sql.execute.CreateConstraintConstantAction.executeConstantAction(Unknown
>  Source)
>       at 
> org.apache.derby.impl.sql.execute.CreateTableConstantAction.executeConstantAction(Unknown
>  Source)
>       at org.apache.derby.impl.sql.execute.MiscResultSet.open(Unknown Source)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
>       at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
> Source)
>       ... 28 more

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

Reply via email to