It has already been done... by Dan. I meant it to be marked an 'Improvement', which is what it is now.
Satheesh Rick Hillegas wrote: > If anyone feels strongly about reclassifying this as an enhancement, > they are welcome to do so. I filed it as a bug fix because it seemed > to me to address the root cause of a nest of bugs. > > Cheers, > -Rick > > Satheesh Bandaram (JIRA) wrote: > >> [ >> http://issues.apache.org/jira/browse/DERBY-681?page=comments#action_12356724 >> ] >> Satheesh Bandaram commented on DERBY-681: >> ----------------------------------------- >> >> Should this be marked an Enhancement request? While I agree the >> current scheme of rewriting the query can be improved, it does >> achieve the functionality. Bugs in the current implementation have >> been logged separately. (like DERBY-280) Changing the mechanism >> should be marked an Enhancement, I think. >> >> >> >>> Eliminate the parser's rewriting of the abstract syntax tree for >>> queries with GROUP BY and/or HAVING clauses >>> ------------------------------------------------------------------------------------------------------------ >>> >>> >>> Key: DERBY-681 >>> URL: http://issues.apache.org/jira/browse/DERBY-681 >>> Project: Derby >>> Type: Improvement >>> Reporter: Rick Hillegas >>> >> >> >> >> >>> 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. >>> >> >> >> >> > > >
