diff options
author | igor@olga.mysql.com <> | 2007-04-29 16:04:43 -0700 |
---|---|---|
committer | igor@olga.mysql.com <> | 2007-04-29 16:04:43 -0700 |
commit | ce0be732d08b4966115486191fc37af5e1478b00 (patch) | |
tree | ad655f83591da9e2ddefe8be314cbb25a66a1ab8 /pstack | |
parent | 2d8037610c7c767e698b66bfb85f2a021d9e124b (diff) | |
download | mariadb-git-ce0be732d08b4966115486191fc37af5e1478b00.tar.gz |
Fixed bug #24856: the result set of a ROLLUP query with DISTINCT could lack
some rollup rows (rows with NULLs for grouping attributes) if GROUP BY
list contained constant expressions.
This happened because the results of constant expressions were not put
in the temporary table used for duplicate elimination. In fact a constant
item from the GROUP BY list of a ROLLUP query can be replaced for an
Item_null_result object when a rollup row is produced .
Now the JOIN::rollup_init function wraps any constant item referenced in
the GROYP BY list of a ROLLUP query into an Item_func object of a special
class that is never detected as constant item. This ensures creation of
fields for such constant items in temporary tables and guarantees right
results when the result of the rollup operation first has to be written
into a temporary table, e.g. in the cases when duplicate elimination is
required.
Diffstat (limited to 'pstack')
0 files changed, 0 insertions, 0 deletions