All the tests passed.
The current implementation can be optimized.
In this patch, at the time of aggregation, all the values corresponding to the grouping sets are passed.
This will increase the data across the map-reduce boundary.
It is still better than the current work-around for the cube and rollup in hive, which is to perform
multiple group bys for the same base table.