Commit graph

49 commits

Author SHA1 Message Date
igor@olga.mysql.com
2cf753a1e8 Post-merge fix. 2007-04-29 20:14:35 -07:00
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
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
igor@rurik.mysql.com
b7ded1e34f Fixed bug #5500: EXPLAIN returned a wrong select_type for queries using views.
Select_type in the EXPLAIN output for the query SELECT * FROM t1 was
'SIMPLE', while for the query SELECT * FROM v1, where the view v1
was defined as SELECT * FROM t1, the EXPLAIN output contained 'PRIMARY'
for the select_type column.
2006-09-06 08:21:43 -07:00
igor@olga.mysql.com
f608064083 Fixed bug #19714.
DESCRIBE returned the type BIGINT for a column of a view if the column
was specified by an expression over values of the type INT.
    
E.g. for the view defined as follows:
  CREATE VIEW v1 SELECT COALESCE(f1,f2) FROM t1
DESCRIBE returned type BIGINT for the only column of the view if f1,f2 are
columns of the INT type.
At the same time DESCRIBE returned type INT for the only column of the table
defined by the statement:
  CREATE TABLE t2 SELECT COALESCE(f1,f2) FROM t1.
    
This inconsistency was removed by the patch.

Now the code chooses between INT/BIGINT depending on the
precision of the aggregated column type.
 
Thus both DESCRIBE commands above returns type INT for v1 and t2.
2006-07-13 20:48:26 -07: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
cd813a0911 Post-merge fixes 2005-09-09 12:57:00 +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
bcae525685 Manual merge 2005-09-08 13:44:36 -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
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
monty@mysql.com
775f17667b Merge with 4.1 2005-06-07 00:31:53 +03:00
monty@mysql.com
29fd1f2fd9 Move USE_PRAGMA_IMPLEMENTATION to proper place
Ensure that 'null_value' is not accessed before val() is called in FIELD() functions
Fixed initialization of key maps. This fixes some problems with keys when you have more than 64 keys
Fixed that ROLLUP don't always create a temporary table. This fix ensures that func_gconcat.test results are now predictable
2005-06-03 23:46:03 +03:00
igor@rurik.mysql.com
a7d28e20aa olap.result:
Fixed bug #10982.
item.cc:
  Fixed bug #10982. In the function Item_ref::val_decimal
  by mistake the method Item_ref::val_decimal was used
  instead of Item_ref::val_decimal_result.
2005-05-31 05:56:22 -07:00
igor@rurik.mysql.com
13351aae48 olap.result:
Post merge corrections.
2005-05-31 04:49:52 -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
d53423383b Manual merge 2005-03-17 21:47:46 -08: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
gluh@gluh.mysql.r18.ru
b435d6e862 Merge 4.1 -> 5.0 2005-03-17 16:51:07 +03: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
hf@deer.(none)
b94a482ee9 Precision Math implementation 2005-02-09 02:50:45 +04:00
monty@mysql.com
31122efde7 Merge with 4.1
(Includes merge of arena code in 4.1 and 5.0)
2004-09-06 15:14:10 +03: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
1e3f10a4b1 mark subquery in the FROM clause like derived and quoate all identifiers (BUG#4609) 2004-07-20 08:48:28 +03:00
bell@sanja.is.com.ua
4c774e0c18 fixed flags of printed query 2004-05-13 23:47:20 +03: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@hundin.mysql.fi
8832927d5c Added nety_retry_count as a changeable variable
Make safe_mysqld a symlink to mysqld_safe in binary distribution
Fixed problem with CTRL-C when using mysqld --bootstrap
2002-08-08 20:49:06 +03: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