[
https://issues.apache.org/jira/browse/DERBY-681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12710725#action_12710725
]
Rick Hillegas commented on DERBY-681:
-------------------------------------
Hi Kathey,
I don't have any smart ideas, short of borrowing a query generator from some
other project, generating a lot of queries (not just ones involving aggregates
and GROUP BY), and comparing the results between Derby and some other database.
Eliminating the parser's rewriting of the AST was a significant change to
Derby's SQL interpreter. 8 years of code had piled up on top of the assumption
that the AST was rewritten in the parser. The assumptions weren't linked to one
another in any systematic way and I don't know of any systematic way to track
them all down. So far, we have seen bugs related to GROUP BY, sort order,
subqueries, unions, and column aliasing. The bugs are peppered all across the
language.
> Eliminate the parser's rewriting of the abstract syntax tree for queries with
> GROUP BY and/or HAVING clauses
> ------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-681
> URL: https://issues.apache.org/jira/browse/DERBY-681
> Project: Derby
> Issue Type: Improvement
> Components: SQL
> Reporter: Rick Hillegas
> Assignee: Manish Khettry
> Fix For: 10.3.1.4
>
> Attachments: 681.patch.txt, 681.patch2.txt, 681.patch3.txt,
> followup.patch.txt, notes.txt
>
>
> If a query contains a GROUP BY or HAVING clause, the parser rewrites the
> abstract syntax tree, putting aggregates into a subselect and treating the
> HAVING clause as the WHERE clause of a fabricated outer select from the
> subquery. This allows the compiler to re-use some machinery since the HAVING
> clause operates on the grouped result the way that the WHERE clause operates
> on the from list. Unfortunately, this rewriting creates an explosion of
> special cases in the compiler after parsing is done. The rewriting is not
> systematically handled later on in the compiler. This gives rise to defects
> like bug 280. We need to eliminate this special rewriting and handle the
> HAVING clause in a straightforward way. This is not a small bugfix but is a
> medium sized project.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.