db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dag H. Wanvik (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4071) AssertFailure when selecting rows from a table with CHARACTER and VARCHAR columns
Date Sat, 07 Mar 2009 04:22:56 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12679825#action_12679825

Dag H. Wanvik commented on DERBY-4071:

I find I can reproduce with this simpler query:

            "WHERE CHR IN ( " + 
            "        SELECT MAX(CHR) " + 
            "        FROM DEMO.TEST T " + 
            "        WHERE S.VCHR = T.VCHR " + 
            "        GROUP BY T.VCHR " + 
            "        HAVING COUNT(T.VCHR) > 1 )"

I notice similarities with the erroneous mapArray index in DERBY-3880.

The ProjectRestrictResultSet under the GroupedAggregateResultSet
shares the result colum of the ##aggregate expression for COUNT
with the GroupedAggregateResultSet: That RC contains a VirtualColumnNode
which contains a column reference to the ##UnaggColumn (V.CHR). When the
mapArray is contructed it picks of the cirtual column id of the ##UnaggColumn (1), which
is wrong, since T.VCHR is column 2 in the underlying table.

I upload a hack, trialPatch.diff, which makes the above sample work, to illustrate the issue.
Not a solution, of course :)

The repro's method testAssertFailure doesn't crash now, although the assert, I do not get
an empty 
result set, just looking quickly at the data I think the query should return a row.

The repro's test method testParsesButFails now fails with another error (ClassCastException).

> AssertFailure when selecting rows from a table with CHARACTER and VARCHAR columns
> ---------------------------------------------------------------------------------
>                 Key: DERBY-4071
>                 URL: https://issues.apache.org/jira/browse/DERBY-4071
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions:
>            Reporter: Aaron Digulla
>         Attachments: DerbyTest.java
> When running a complex query on this table:
> [code]
> Create table DEMO.TEST (
>     CHR                            CHARACTER(26)                   ,
>     VCHR                           VARCHAR(25)                     )
> [code]
> then I get this exception:
> AssertFailure: ASSERT FAILED col1.getClass() (class ...SQLChar) expected to be the same
as col2.getClass() (class ....SQLVarchar)' was thrown while evaluating an expression.

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

View raw message