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] Updated: (DERBY-4736) ASSERT FAIL when code generating a column reference in a join predicate in presence of other outer join reordering
Date Wed, 25 Aug 2010 00:16:16 GMT

     [ https://issues.apache.org/jira/browse/DERBY-4736?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Dag H. Wanvik updated DERBY-4736:

    Attachment: derby-4736-followup-a.diff

Attaching a patch which fixes the nullability issue and adds a new test case.

The problem is that the added call to SelectNode#bindResultColumns, in addition to calling
fromList.bindResultColumns, which what we need in for this issue, also calls super.bindResultColumns,
which sets up the datatypes over again, erroneously (i.e. without taking into consideration
the nature of outer join which can make values stemming from otherwise NOT NULL columns be
null in the final result set).

Replacing the call to SelectNode#bindResultColumns with fromTable.bindResultColumns avoids
this problem. Running regressions.

> ASSERT FAIL when code generating a column reference in a join predicate in presence of
other outer join reordering
> ------------------------------------------------------------------------------------------------------------------
>                 Key: DERBY-4736
>                 URL: https://issues.apache.org/jira/browse/DERBY-4736
>             Project: Derby
>          Issue Type: Sub-task
>          Components: SQL
>    Affects Versions:,,,,,,,,,,,,,,,
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>             Fix For:
>         Attachments: derby-4736-1a.diff, derby-4736-1a.stat, derby-4736-1b.diff, derby-4736-1b.stat,
derby-4736-1c.diff, derby-4736-1c.stat, derby-4736-1d.diff, derby-4736-1d.stat, derby-4736-followup-a.diff,
derby-4736-followup-a.stat, loj-analysis.txt, query_plan_derby_4736.pdf
> From schema given in DERBY-4712, this query gives an ASSERT with sane Derby:
> rs = s.executeQuery("SELECT 1 FROM (T0 LEFT JOIN (T1 LEFT JOIN (T2 LEFT JOIN " +
>                                " (T3 LEFT JOIN T4 ON 1=1) ON T2.X = T3.X) ON 1=1) ON
1=1) " +
>                                " LEFT JOIN " +
>                                " (T5 INNER JOIN T6 ON 1=1) " +
>                                " ON T2.X = 1 ");
> Cf the attachments in DERBY-4712 assert-bind-opt-trees.*. 
> From preliminary analysis, this error seems to be unrelated to the NPEs reported in DERBY-4712,
so filing this as a sub-issue.

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

View raw message