Hi Haibo,
I agree with both rules. On your CUBE example, 17 and 18 also give 2 rows,
so master's 4 is right.
v3 alone has one more problem. SELECT 1 AS x GROUP BY ROLLUP(x) HAVING 1
IS NOT NULL returns 2 rows on master but 1 with v3. The parser turns the
1 in HAVING into a GROUP Var.
A question on (b). SELECT now() IS NULL AS n GROUP BY ROLLUP(now())
gives f and t on 17 and with v3, but f and f on 18 and master. (b)
should keep f and f, which seems fine to me.
Thanks,
Shihao