db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "A B (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-681) Eliminate the parser's rewriting of the abstract syntax tree for queries with GROUP BY and/or HAVING clauses
Date Thu, 08 Mar 2007 21:38:24 GMT

    [ https://issues.apache.org/jira/browse/DERBY-681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12479436

A B commented on DERBY-681:

Thank you for the second patch, Manish.  I looked it over and it does indeed address most
of my comments, so I think we're getting closer.  The reason I say "closer" is because I noticed
the following problems with the second patch, and I think these should be addressed before
the patch can be committed:

  - Looks like the formatting for the first couple of lines in the license
    text for views.sql has changed.  I assume this was just an accident?

  - This patch adds an explicit connection to views.sql, which I do not
    think is right:

        @@ -17,6 +14,7 @@
         -- tests for views
         -- set autocommit off
        +connect 'jdbc:derby:wombat';
         autocommit off;

    Notice that the result (in views.out) is a security access violation:

        @@ -17,7 +14,9 @@
         -- tests for views
         -- set autocommit off
        -autocommit off;
        +connect 'jdbc:derby:wombat';
        +JAVA ERROR: java.security.AccessControlException: access denied (java.util.PropertyPermission
ij.URLCheck read)
        +ij> autocommit off;

    This looks wrong to me.  Is the additional connect statement an intentional change,
    or is that just a remnant from some testing you were doing? If possible I think the
    extra call to "connect" should be removed and the master file updated accordingly.
    If you made the change intentionally then can you explain why it is necessary?

  - There is also the following diff in the RunTest and RunSuite classes:

-		classpath = sp.getProperty("classpath");
+		classpath = sp.getProperty("java.class.path");

    Again, can you explain why this particular change is necessary?  Were you
    experiencing problems while running the tests?  If so, what were those problems?

Other than these test issues I think the patch is ready for commit...

> 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
>         Assigned To: Manish Khettry
>         Attachments: 681.patch.txt, 681.patch2.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.

View raw message