[
https://issues.apache.org/jira/browse/DERBY-2961?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12521127
]
Mamta A. Satoor commented on DERBY-2961:
----------------------------------------
With revision 567735, fixed the problem in main. The commit comments are as
follows (will merge the change into 10.3 codeline soon)
DERBY-2961
This commit fixes the ASSERT failure thrown by the SELECT statement in
following query
CREATE TABLE T_MAIN1 (ID INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, V XML);
INSERT INTO T_MAIN1(V) VALUES NULL;
SELECT ID, XMLSERIALIZE(V AS CLOB), XMLSERIALIZE(V AS CLOB) FROM T_MAIN1 ORDER
BY 1;
The SELECT statement was resulting in Assert Failure because the
StringDataValue generated for V AS CLOB was not taking collation type into
consideration ie it was always generating collation insensitive
StringDataValue. I have fixed that problem by passing the current compilation
schema's collation type to SqlXmlExecutor which then will get used in
determining whether for instance we should generate SQLChar vs CollatorSQLChar.
This collation information is required only for character string types.
> TriggerTest.testTypesINActionStatement fails with 'ASSERT FAILED
> col1.getClass() (class org.apache.derby.iapi.types.SQLClob) expected to be
> the same as col2.getClass() (class
> org.apache.derby.iapi.types.CollatorSQLClob)
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-2961
> URL: https://issues.apache.org/jira/browse/DERBY-2961
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.4.0.0
> Reporter: Kathey Marsden
> Assignee: Mamta A. Satoor
> Attachments: TypesInActionStatement.java
>
>
> I have not yet been able to create a stand-alone repro but the test
> TriggerTest.testTypesINActionStatement fails with 'ASSERT FAILED
> col1.getClass() (class org.apache.derby.iapi.types.SQLClob) expected to be
> the same as col2.getClass() (class
> org.apache.derby.iapi.types.CollatorSQLClob)
> Failed statement is:
> sqlMain = "SELECT ID, XMLSERIALIZE(V AS CLOB), " +
> "XMLSERIALIZE(V AS CLOB) FROM T_MAIN ORDER BY 1";
> 2)
> testTypesInActionStatement(org.apache.derbyTesting.functionTests.tests.lang.TriggerTest)java.sql.SQLException:
> Java exception: 'ASSERT FAILED col1.getClass() (class
> org.apache.derby.iapi.types.SQLClob) expected to be the same as
> col2.getClass() (class org.apache.derby.iapi.types.CollatorSQLClob):
> org.apache.derby.shared.common.sanity.AssertFailure'.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:88)
> at org.apache.derby.impl.jdbc.Util.javaException(Util.java:245)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:1572)
> at
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1293)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:596)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(EmbedStatement.java:153)
> at
> org.apache.derbyTesting.functionTests.tests.lang.TriggerTest.actionTypesCompareMainToAction(TriggerTest.java:769)
> at
> org.apache.derbyTesting.functionTests.tests.lang.TriggerTest.actionTypesInsertTest(TriggerTest.java:546)
> at
> org.apache.derbyTesting.functionTests.tests.lang.TriggerTest.actionTypeTest(TriggerTest.java:445)
> at
> org.apache.derbyTesting.functionTests.tests.lang.TriggerTest.testTypesInActionStatement(TriggerTest.java:427)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:23)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:23)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:23)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:23)
> Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED
> col1.getClass() (class org.apache.derby.iapi.types.SQLClob) expected to be
> the same as col2.getClass() (class
> org.apache.derby.iapi.types.CollatorSQLClob)
> at
> org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:162)
> at
> org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:147)
> at
> org.apache.derby.impl.store.access.sort.MergeSort.checkColumnTypes(MergeSort.java:467)
> at
> org.apache.derby.impl.store.access.sort.MergeInserter.insert(MergeInserter.java:98)
> at
> org.apache.derby.impl.sql.execute.SortResultSet.loadSorter(SortResultSet.java:317)
> at
> org.apache.derby.impl.sql.execute.SortResultSet.openCore(SortResultSet.java:268)
> at
> org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(BasicNoPutResultSetImpl.java:258)
> at
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1203)
> ... 45 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.