Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Duplicate
-
10.1.1.0
-
None
-
None
Description
I think in place compress option should not be allowed on synonyms, currenly engine throws assert on debug build, will throw NPE on insane build.
repro:
ij version 10.1
ij> connect 'jdbc:derby:wombat;create=true';
ij> create table t1(a int ) ;
0 rows inserted/updated/deleted
ij> create synonym s1 for t1 ;
0 rows inserted/updated/deleted
ij> call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE('APP' , 'S1' , 1 , 1, 1) ;
ERROR 38000: The exception 'org.apache.derby.iapi.services.sanity.AssertFailure:
ASSERT FAILED cd is expected to be non-null for S1' was thrown while evaluating
an expression.
ERROR XJ001: Java exception: 'ASSERT FAILED cd is expected to be non-null for S1
: org.apache.derby.iapi.services.sanity.AssertFailure'.
ij>
stack::
org.apache.derby.iapi.services.sanity.AssertFailure: ASSERT FAILED cd is expecte
d to be non-null for T1
at org.apache.derby.iapi.services.sanity.SanityManager.THROWASSERT(Sanit
yManager.java:150)
at org.apache.derby.iapi.sql.dictionary.TableDescriptor.getHeapConglomer
ateId(TableDescriptor.java:340)
at org.apache.derby.iapi.db.OnlineCompress.defragmentRows(OnlineCompress
.java:228)
at org.apache.derby.iapi.db.OnlineCompress.compressTable(OnlineCompress.
java:154)
at org.apache.derby.catalog.SystemProcedures.SYSCS_INPLACE_COMPRESS_TABL
E(SystemProcedures.java:745)
at org.apache.derby.exe.acf81e0010x0104x7d99xc315x0000001688d81.g0(Unkno
wn Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.derby.impl.services.reflect.ReflectMethod.invoke(ReflectMe
thod.java:45)
at org.apache.derby.impl.sql.execute.CallStatementResultSet.open(CallSta
tementResultSet.java:67)
at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPre
paredStatement.java:366)
at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedState
ment.java:1108)
at org.apache.derby.impl.jdbcI th.EmbedStatement.execute(EmbedStatement.java
:517)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java
:475)
at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:299)
at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:433)
at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:310)
at org.apache.derby.impl.tools.ij.Main.go(Main.java:203)
at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:169)
at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:55)
at org.apache.derby.tools.ij.main(ij.java:60)
============= end nested exception, level (1) ===========