[ https://issues.apache.org/jira/browse/DERBY-2352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12536899 ]
Bryan Pendleton commented on DERBY-2352: ---------------------------------------- A naive attempt to use other data types in the repro script via CAST expressions is not so successful: ij> select substr( cast ('abc' as long varchar), 1) from d2352 order by substr(cast ('abc' as long varchar), 1); ERROR X0X67: Columns of type 'LONG VARCHAR' may not be used in CREATE INDEX, ORDER BY, GROUP BY, UNION, INTERSECT, EXCEPT or DISTINCT statements because comparisons are not supported for that type. ij> select substr( cast ('abc' as char for bit data), 1) from d2352 order by substr( cast ('abc' as char for bit data), 1); ERROR 42846: Cannot convert types 'CHAR' to 'CHAR () FOR BIT DATA'. ij> select substr( cast ('abc' as clob), 1) from d2352 order by substr( cast ('abc' as clob), 1); ERROR X0X67: Columns of type 'CLOB' may not be used in CREATE INDEX, ORDER BY, GROUP BY, UNION, INTERSECT, EXCEPT or DISTINCT statements because comparisons are not supported for that type. Perhaps I can still invoke substring, trim, and ansiTrim on these other data types, just not in the ORDER BY or GROUP BY clauses. > Assertion Failure with order by and group by expression > ------------------------------------------------------- > > Key: DERBY-2352 > URL: https://issues.apache.org/jira/browse/DERBY-2352 > Project: Derby > Issue Type: Bug > Components: SQL > Affects Versions: 10.2.2.0, 10.3.1.4 > Environment: Any > Reporter: Yip Ng > Assignee: Bryan Pendleton > Attachments: substringReturnsChar.diff > > > Assertion failure with order by expression: > ij> select substr('abc', 1) from t1 order by substr('abc', 1); > ERROR XJ001: Java exception: 'ASSERT FAILED col1.getClass() (class > org.apache.derby.iapi.types.SQLVarchar) expected to be the same as > col2.getClass() (class org.apache.derby.iapi.types.SQLChar): > org.apache.derby.shared.common.sanity.AssertFailure'. > Stacktrace: > org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED > col1.getClass() (class org.apache.derby.iapi.types.SQLVarchar) expected to be > the same as col2.getClass() (class org.apache.derby.iapi.types.SQLChar) > at > org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:149) > at > org.apache.derby.impl.store.access.sort.MergeSort.checkColumnTypes(MergeSort.java:472) > at > org.apache.derby.impl.store.access.sort.MergeInserter.insert(MergeInserter.java:106) > at > org.apache.derby.impl.sql.execute.SortResultSet.loadSorter(SortResultSet.java:318) > at > org.apache.derby.impl.sql.execute.SortResultSet.openCore(SortResultSet.java:269) > at > org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(ProjectRestrictResultSet.java:169) > at > org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(BasicNoPutResultSetImpl.java:260) > at > org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:358) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1182) > at > org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:585) > at > org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:517) > at org.apache.derby.impl.tools.ij.ij.executeImmediate(ij.java:321) > at org.apache.derby.impl.tools.ij.utilMain.doCatch(utilMain.java:517) > at > org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:370) > at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:268) > at org.apache.derby.impl.tools.ij.Main.go(Main.java:204) > at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:170) > at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:56) > at org.apache.derby.tools.ij.main(ij.java:71) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.