Commit graph

37 commits

Author SHA1 Message Date
igor@olga.mysql.com
f9ac5b43cc Merge olga.mysql.com:/home/igor/mysql-4.1-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug24856
2007-04-29 18:32:59 -07:00
igor@olga.mysql.com
395d8751d5 Fix in comments. 2007-04-29 18:28:58 -07:00
igor@olga.mysql.com
ce0be732d0 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.
2007-04-29 16:04:43 -07:00
igor@olga.mysql.com
ec4593f59a Fixed bug #26830: a crash for the query with a subselect containing ROLLUP.
Crash happened because the function get_best_group_min_max detected
joins with ROLLUP incorrectly.
2007-03-10 02:47:47 -08:00
gkodinov@dl145s.mysql.com
c77fae407b Merge dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-4.1-opt
into  dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt
2006-10-19 15:04:12 +02:00
evgen@moonbone.local
0c9f941bb2 Fixed bug#20825: rollup puts non-equal values together
Fix for bug 7894 replaces a field(s) in a non-aggregate function with a item
reference if such a field was specified in the GROUP BY clause in order to
get a correct result.
When ROLLUP is involved this lead to a wrong result due to value of a such
field is got through a copy function and copying happens after the function
evaluation.
Such replacement isn't needed if grouping is also done by such a function.

The change_group_ref() function now isn't called for a function present in
the group list.
2006-09-29 20:02:53 +04:00
evgen@moonbone.local
3065cc0edf Manual merge 2005-09-15 22:21:30 +04:00
evgen@moonbone.local
1685040e2b Fix bug#12887 Distinct is not always applied after rollup
For queries with GROUP BY and without hidden GROUP BY fields DISTINCT is
optimized away becuase such queries produce result set without duplicates.
But ROLLUP can add rows which may be same to some rows and this fact was
ignored.

Added check so if ROLLUP is present DISTINCT can't be optimized away.
2005-09-15 21:34:11 +04:00
sergefp@mysql.com
57c3ed9e1c Post-merge fixes 2005-09-09 11:50:38 +04:00
sergefp@mysql.com
3d6759d190 Merge 4.1->5.0 2005-09-09 10:54:59 +04:00
igor@rurik.mysql.com
6bbdd66e89 olap.result, olap.test:
Added a test case with VIEW for bug #12885.
2005-09-08 15:45:31 -07:00
igor@rurik.mysql.com
b2f0f9085f Manual merge 2005-09-08 13:45:49 -07:00
igor@rurik.mysql.com
19192328f2 sql_select.cc:
Fixed bug #12885.
  Forced inheritence of the maybe_null flag for the expressions
  containing GROUP BY attributes in selects with ROLLUP.
olap.test, olap.result:
  Added test case for bug #12885.
2005-09-08 12:37:16 -07:00
monty@mysql.com
15d48525af Merge mysql.com:/home/my/mysql-4.1
into  mysql.com:/home/my/mysql-5.0
2005-07-28 17:09:54 +03:00
monty@mysql.com
3c12d0ae54 Added end marker for tests to make future merges easier 2005-07-28 03:22:47 +03:00
konstantin@mysql.com
52ba7b69d7 After-merge fixes. 2005-07-19 03:01:25 +04:00
konstantin@mysql.com
52b8928b09 Merge mysql.com:/home/kostja/mysql/mysql-4.1-root
into  mysql.com:/home/kostja/mysql/mysql-5.0-merge
2005-07-19 00:55:37 +04:00
igor@rurik.mysql.com
343e8effa9 olap.result, olap.test:
Added a test case for bug #11543.
sql_select.cc:
  Fixed bug #11543.
  A ROLLUP query could return a wrong result set when
  its GROUP BY clause contained references to the same
  column.
2005-07-01 07:40:22 -07:00
igor@rurik.mysql.com
347687f71e view.result:
Fixed the results of a test for group_concat.
  After the fix foor bug #11639 the results became
  correct.
olap.result, olap.test:
  Added a test case for bug #11639.
sql_select.cc:
  Fixed bug #11639: a wrong result set when using a view
  instead of the underlying table in a rollup query 
  executed through filesort.
  The old code did not take into account that we always
  use an Item_ref object when referring to a view column.
item.h:
  Fixed bug #11639.
  Now if two Item_ref items ref1 and ref2 refer to the same field
  then ref1->eq(ref2) returns 1.
2005-07-01 03:46:08 -07:00
igor@rurik.mysql.com
f987085aa4 Manual post merge 2005-05-30 05:47:50 -07:00
igor@rurik.mysql.com
10cc5a46df olap.result, olap.test:
Added test cases for bug #7894.
sql_select.cc:
  Fixed bug #7894: GROUP BY queries with ROLLUP returned
  wrong results for expressions containing group by columns.
  The fix ensured correct results by replacement of all
  occurrences of group by fields in non-aggregate expressions
  for corresponding ref objects and preventing creation of
  fields in temporary tables for expression containing group
  by fields.
2005-05-30 03:01:51 -07:00
jimw@mysql.com
3f6aad900c Resolve merge from 4.1 2005-05-18 11:06:34 -07:00
igor@rurik.mysql.com
80aa0062db olap.result, olap.test:
Added test cases for bug #7914.
sql_select.cc:
  Fixed bug #7914: rollup over expresssions such as sum(a)+1.
2005-05-18 05:15:48 -07:00
holyfoot@hf-ibm.(none)
8f3647005c Tests and results fixed with last precision/decimal related modifications 2005-05-06 01:01:39 +05:00
igor@rurik.mysql.com
87ade2e6f7 Merge of the fix for bug #9681 4.1->5.0 2005-04-19 19:00:02 -07:00
igor@rurik.mysql.com
25c396628a sql_select.cc:
Fixed bug #9681.
  The bug happened with queries using derived tables specified by
  a SELECT with ROLLUP, such as:
  SELECT * FROM (SELECT a, SUM(a) FROM t1 GROUP BY a WITH ROLLUP) t2,
  if column a of table t1 is declared as NOT NULL.
  This was to the fact that the first column of the temporary table
  created to contain the derived table erroneously inherited the NOT NULL
  attribute from column a.
olap.result, olap.test:
  Added a test case for bug #9681.
2005-04-19 16:54:30 -07:00
monty@mysql.com
a1ab786091 Cleanups during review of code
Fixed newly introduced bug in rollup
2005-03-21 23:41:28 +02:00
igor@rurik.mysql.com
6f5fbaad59 olap.test:
Added a test case for bug #8617.
sql_select.cc:
  Fixed bug #8617.
  Queries with ROLLUP and LIMIT n returned more than n rows
  if SQL_CALC_FOUND_ROWS was used.
2005-03-17 20:18:19 -08:00
igor@rurik.mysql.com
45ba13889d olap.result, olap.test:
Added a test for bug #8615.
sql_select.cc:
  Fixed bug #8615.
  This fix only removed the cause of the reported crash.
  It does not resolve other problems of rollup queries
  with DISTINCT. They were fixed in the previous patch 
  for bug 8616.
2005-03-16 15:55:04 -08:00
igor@rurik.mysql.com
ce6c390c39 olap.result, olap.test:
Added a test case for bug #8616.
item.h:
  Fixed bug #8616.
  Added class Item_null_result used in rollup processing.
sql_select.h, sql_select.cc:
  Fixed bug #8616.
  Added JOIN::rollup_write_data to cover rollup queries
  with DISTINCT. Modified other rollup methods.
2005-03-15 22:50:54 -08:00
igor@rurik.mysql.com
f2b9c5f491 olap.test, olap.result:
Added test case for bug #4767.
item_sum.cc:
  Added a correct setting of the maybe_null flag for a copy of 
  an Item_sum object where the argument was a field of an inner table
  in an outer join read from a temporary table.
  It's part of the fix for bug #4767.
sql_select.cc:
  Made change_refs_to_tmp_fields work correctly
  for test case of bug #4767 where Item_sum::get_tmp_table_item
  failed to build a correct copy of an Item_sum object referring
  to a field in a temporary table.
  It looks like a hack yet.
2004-08-12 00:02:29 -07:00
bell@sanja.is.com.ua
33346e26af added code covarage for functions convert(), nullif(), crc32(), is_used_lock(), char_lengtrh(), bit_xor()
added string length for more speed
made code covarage for print() method of Item
fixed printability of some items (SCRUM) (WL#1274)
2003-10-30 12:57:26 +02:00
monty@narttu.mysql.fi
1d0b539263 Fix for bug in ROLLUP when all tables where 'const' tables (Bug #714) 2003-08-26 20:23:48 +03:00
monty@narttu.mysql.fi
23145cfed7 Added SQLSTATE to client/server protocol
bmove_allign -> bmove_align
Added OLAP function ROLLUP
Split mysql_fix_privilege_tables to a script and a .sql data file
Added new (MEMROOT*) functions to avoid calling current_thd() when creating some common objects.
Added table_alias_charset, for easier --lower-case-table-name handling
Better SQL_MODE handling (Setting complex options also sets sub options)
New (faster) assembler string functions for x86
2003-06-04 18:28:51 +03:00
monty@mashka.mysql.fi
1f6ecc0cd3 Changed mysql-test to print warnings for not existing table to DROP TABLE
Cleaned up test; Removed wrong DROP TABLE commands and use standard table and database names.
changed store_warning() -> push_warning_print()
2003-01-06 01:48:59 +02:00
monty@mashka.mysql.fi
c702a1f8fd Removed wrong implementation of CUBE/ROLLUP
Fixed bugfix of INSERT ... SET db_name.table_name.column_name
Changed locking to external-locking
Fix client hangup for some invalid SQL queries.
2002-07-24 19:55:08 +03:00
Sinisa@sinisa.nasamreza.org
2e8fb546dc OLAP functionality plus some small bug fixes 2002-07-20 14:51:52 +03:00