Commit graph

15208 commits

Author SHA1 Message Date
unknown
22440b5387 Bug #30596 GROUP BY optimization gives wrong result order
The optimization that uses a unique index to remove GROUP BY did not 
ensure that the index was actually used, thus violating the ORDER BY
that is implied by GROUP BY.
Fixed by replacing GROUP BY with ORDER BY if the GROUP BY clause contains
a unique index over non-nullable field(s). In case GROUP BY ... ORDER BY 
null is used, GROUP BY is simply removed.


mysql-test/include/mix1.inc:
  Bug#30596: Test case for InnoDB
  Here, as opposed to for MyISAM, row lookup is done using index 
  whenever the index covers the group list.
mysql-test/r/distinct.result:
  Bug#30596: Changed test case. 
  Prior to Bug#16458, These queries use temp table and filesort. The
  bug was that they used a temp table. However, that patch removed
  filesort also, in which case we can no longer gurantee correct ordering.
mysql-test/r/group_by.result:
  Bug#30596: Correct result
  The test case for IGNORE INDEX FOR GROUP BY gets degraded performance 
  (unneccesary filesort). This is due to Bug#30665, which will be fixed separately.
mysql-test/r/innodb_mysql.result:
  Bug#30596: Test result
mysql-test/t/group_by.test:
  Bug#30596: Test case
sql/sql_select.cc:
  Bug#30596: The fix: 
  - replace GROUP BY with ORDER BY unless ORDER BY [NULL|<constant>]
  - make sure to use the keys for GROUP BY in this ORDER BY.
2007-08-28 18:01:29 +02:00
unknown
fd7ff1d89f Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-08-21 17:57:09 +05:00
unknown
700c378618 Bug#27629 Possible security flaw in INFORMATION_SCHEMA and SHOW statements(addon for 5.1)
added TRIGGER_ACL check for I_S.TRIGGERS


mysql-test/r/information_schema.result:
  result fix
2007-08-21 17:55:49 +05:00
unknown
4a61b16b7c Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt


sql/sql_base.cc:
  Auto merged
2007-08-21 16:38:29 +05:00
unknown
56a6c1d04d Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-08-21 16:16:50 +05:00
unknown
4dfb90d832 Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt


mysql-test/r/information_schema.result:
  Auto merged
mysql-test/r/information_schema_db.result:
  Auto merged
mysql-test/t/information_schema.test:
  after merge fix
sql/sql_show.cc:
  after merge fix
2007-08-21 16:01:47 +05:00
unknown
d48e35b983 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
2007-08-20 11:25:45 +05:00
unknown
29ee5ed0a0 Bug#27629 Possible security flaw in INFORMATION_SCHEMA and SHOW statements
added SUPER_ACL check for I_S.TRIGGERS


mysql-test/r/information_schema.result:
  result fix
mysql-test/r/information_schema_db.result:
  result fix
mysql-test/t/information_schema.test:
  test case
sql/sql_show.cc:
  added SUPER_ACL check for I_S.TRIGGERS
2007-08-20 11:23:08 +05:00
unknown
0ece5608fc Bug #29307: status.test fails with different Table_locks_immediate
Finish premature patch which was accidentally pushed; remove debugging
info and correct the test.


mysql-test/r/status.result:
  Correct test results
mysql-test/t/status.test:
  Disable query log for one statement, and correct some comments
2007-08-18 02:28:08 -06:00
unknown
92838cc448 Merge ramayana.hindu.god:/home/tsmith/m/bk/51
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/51
2007-08-18 00:36:18 -06:00
unknown
92abaeee0c Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug30396
2007-08-16 21:04:28 -07:00
unknown
0d9046ecaf Post-merge fix. 2007-08-16 19:27:44 -07:00
unknown
59a1154675 Merge olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug30396
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.1-opt-bug30396


libmysql/libmysql.c:
  Auto merged
mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
tests/mysql_client_test.c:
  Manual merge
2007-08-16 17:22:50 -07:00
unknown
f4a163c3a5 Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  dl145s.mysql.com:/data0/mhansson/my50-bug28570


sql/opt_range.cc:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Bug#28570: Manual Merge
mysql-test/t/innodb_mysql.test:
  Bug#28570: Manual Merge
2007-08-16 14:13:07 +02:00
unknown
0a494e937b Merge ramayana.hindu.god:/home/tsmith/m/bk/51
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/51


mysql-test/r/innodb.result:
  Auto merged
sql/sql_table.cc:
  Auto merged
2007-08-15 15:48:57 -06:00
unknown
c44ead52b4 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge


mysql-test/suite/rpl/r/rpl_extraCol_innodb.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_extraCol_myisam.result:
  Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
  Auto merged
sql/field.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/field.h:
  Manual merge
2007-08-15 21:30:45 +02:00
unknown
a8f8e5483e Fixed bug #30396.
The bug caused memory corruption for some queries with top OR level
in the WHERE condition if they contained equality predicates and 
other sargable predicates in disjunctive parts of the condition.

The corruption happened because the upper bound of the memory
allocated for KEY_FIELD and SARGABLE_PARAM internal structures
containing info about potential lookup keys was calculated incorrectly
in some cases. In particular it was calculated incorrectly when the
WHERE condition was an OR formula with disjuncts being AND formulas
including equalities and other sargable predicates.


mysql-test/r/select.result:
  Added a test case for bug #30396.
mysql-test/t/select.test:
  Added a test case for bug #30396.
sql/item_cmpfunc.h:
  Removed max_members from the COND_EQUAL class as not useful anymore.
sql/sql_base.cc:
  Added the max_equal_elems field to the st_select_lex structure.
sql/sql_lex.cc:
  Added the max_equal_elems field to the st_select_lex structure.
sql/sql_lex.h:
  Added the max_equal_elems field to the st_select_lex structure.
  The field contains the maximal number of elements in multiple equalities
  built for the query conditions.
sql/sql_select.cc:
  Fixed bug #30396.
  The bug caused memory corruption for some queries with top OR level
  in the WHERE condition if they contained equality predicates and 
  other sargable predicates in disjunctive parts of the condition.
  
  The corruption happened because the upper bound of the memory
  allocated for KEY_FIELD and SARGABLE_PARAM internal structures
  containing info about potential lookup keys was calculated incorrectly
  in some cases. In particular it was calculated incorrectly when the
  WHERE condition was an OR formula with disjuncts being AND formulas
  including equalities and other sargable predicates.
   
  The max_equal_elems field to the st_select_lex structure is used now
  to calculate the above mentioned upper bound. The field contains the
  maximal number of elements in multiple equalities built for the query
  conditions.
2007-08-15 10:24:18 -07:00
unknown
fae4347f88 Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  dl145s.mysql.com:/data0/mhansson/my51-bug28570


sql/handler.cc:
  Auto merged
2007-08-15 12:42:39 +02:00
unknown
eea647b5d2 Merge linux-st28.site:/home/martin/mysql/src/bug28570/my50-bug28570
into  linux-st28.site:/home/martin/mysql/src/bug28570/my51-bug28570


sql/opt_range.cc:
  Auto merged
mysql-test/include/mix1.inc:
  Bug#28570: Hand merged test case
mysql-test/r/innodb_mysql.result:
  Bug#28570: Hand merged test result
sql/handler.cc:
  Bug#28570: Hand merged file
2007-08-15 12:03:11 +02:00
unknown
01f8130aa6 bug#28570: handler::index_read() is called with different find_flag when
ORDER BY is used

The range analysis module did not correctly signal to the 
handler that a range represents a ref (EQ_RANGE flag). This causes 
non-range queries like 
SELECT ... FROM ... WHERE keypart_1=const, ..., keypart_n=const 
ORDER BY ... FOR UPDATE
to wait for a lock unneccesarily if another running transaction uses
SELECT ... FOR UPDATE on the same table.

Fixed by setting EQ_RANGE for all range accesses that represent 
an equality predicate. 


mysql-test/r/innodb_mysql.result:
  bug#28570: Test Result
mysql-test/t/innodb_mysql.test:
  bug#28570: Test Case
sql/handler.cc:
  bug#28570: Updated comment
sql/opt_range.cc:
  bug#28570: Removed the criterion that key has to be unique (HA_NOSAME) in 
  order for the EQ_RANGE flag to be set. It is sufficient that the range 
  represent a ref access.
2007-08-15 09:23:44 +02:00
unknown
3925c3feee Updates to allow innodb.test to be run with --embedded-server,
including a small change to build_table_filename().


mysql-test/mysql-test-run.pl:
  Remove unused bad merge bitrot code.  This chunk of code is a repeat
  copy of an earlier chunk, and should never have been here.
mysql-test/r/innodb.result:
  Updates to allow innodb.test to be run with --embedded-server
mysql-test/suite/binlog/r/binlog_innodb.result:
  Updates to allow innodb.test to be run with --embedded-server
mysql-test/suite/binlog/t/binlog_innodb.test:
  Updates to allow innodb.test to be run with --embedded-server
mysql-test/t/innodb.test:
  Updates to allow innodb.test to be run with --embedded-server
sql/sql_table.cc:
  build_table_filename(): Don't add FN_ROOTDIR to mysql_data_home if
  it's already there.  This is done to make it easier to write tests
  which check the output of various error messages, and work with
  both the embedded server (mysql_data_home is full path, including
  trailing FN_ROOTDIR) and normal server (mysql_data_home is just ".").
2007-08-14 15:35:19 -06:00
unknown
a22a510479 Merge ramayana.hindu.god:/home/tsmith/m/bk/51
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/51
2007-08-13 12:46:35 -06:00
unknown
6aa5fa3a1d Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt


sql/field.cc:
  Auto merged
BitKeeper/deleted/.del-readme.txt~3:
  Auto merged
sql/field.h:
  Auto merged
sql/handler.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/unireg.h:
  Auto merged
sql/sql_select.cc:
  Merge with main tree.
2007-08-11 02:00:51 +05:00
unknown
5c5233cd2b Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-08-11 01:32:04 +05:00
unknown
3250963e7b Correct bad merge, and remove version numbers from test case.
mysql-test/r/mysqlbinlog2.result:
  Change test case to remove server version number.
mysql-test/t/mysqlbinlog2.test:
  Change test case to remove server version number.
mysys/mf_iocache2.c:
  Correcting bad merge.
2007-08-08 12:21:04 -04:00
unknown
6930ac5406 A fix for Bug#28830 Test case log_state fails on VMWare Windows clone due to loaded system
mysql-test/r/log_state.result:
  Update results (Bug#28830)
mysql-test/t/log_state.test:
  A fix for Bug#28830 Test case log_state fails on VMWare Windows clone due 
  to loaded system - make the test more deterministic.
2007-08-08 15:49:19 +04:00
unknown
b0301f7c27 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime


client/mysqldump.c:
  Auto merged
mysql-test/r/federated.result:
  Auto merged
mysql-test/t/federated.test:
  Auto merged
2007-08-08 11:36:55 +04:00
unknown
e6701d746d Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.(none):/opt/local/work/mysql-5.0-runtime


mysql-test/r/federated.result:
  Auto merged
mysql-test/t/federated.test:
  Auto merged
sql/item.cc:
  Auto merged
2007-08-08 11:34:35 +04:00
unknown
fa85d64d5b Merge mysql.com:/home/bar/mysql-work/mysql-5.0.b28875v2
into  mysql.com:/home/bar/mysql-work/mysql-5.1-new-rpl


mysql-test/r/ctype_recoding.result:
  Auto merged
mysql-test/t/ctype_recoding.test:
  Auto merged
sql/sql_string.cc:
  Auto merged
2007-08-07 19:30:23 +05:00
unknown
c6e8889946 Reversing additional change suggested by Serg
under terms of bug#28875 for better performance.
The change appeared to require more changes in item_cmpfunc.cc,
which is dangerous in 5.0.
    
Conversion between a latin1 column and an ascii string constant
stopped to work.


mysql-test/r/ctype_recoding.result:
  Adding test case.
mysql-test/t/ctype_recoding.test:
  Adding test case.
2007-08-07 19:25:45 +05:00
unknown
aa7519299a Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug27562/my51-bug27562
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint


strings/ctype-extra.c:
  Auto merged
2007-08-07 06:49:58 -04:00
unknown
8b10b39863 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint


mysys/mf_iocache2.c:
  Auto merged
2007-08-07 06:48:46 -04:00
unknown
34e42be436 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug27562/my50-bug27562
into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug27562/my51-bug27562


strings/ctype-extra.c:
  Auto merged
2007-08-07 06:22:52 -04:00
unknown
cfd34fe232 Bug#27562: ascii.xml invalid?
Two character mappings were way off (backtick and tilde were "E"
and "Y"!), and three others were slightly rotated.  The first 
would cause collisions, and the latter was probably benign.

Now, assign the character mappings exactly to their normal values.


sql/share/charsets/ascii.xml:
  Change the character mapping for 
   "`" to "`" (was "E") and 
   "[" to "[" (was "\") and 
   "\" to "\" (was "]") and
   "]" to "]" (was "[") and 
   "~" to "~" (was "Y").
strings/ctype-extra.c:
  Generated from charsets directory.
mysql-test/r/ctype_ascii.result:
  Add new test file.
  
  Test all combinations of printable letter comparisons for 
  similarity.
mysql-test/t/ctype_ascii.test:
  Add new test file.
  
  Test all combinations of printable letter comparisons for 
  similarity.
2007-08-07 05:35:20 -04:00
unknown
da6c340e16 Merge ramayana.hindu.god:/home/tsmith/m/bk/51
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/51


BitKeeper/deleted/.del-.del-README.txt:
  Auto merged
sql/item_func.cc:
  Auto merged
2007-08-06 16:34:30 -06:00
unknown
2d49f43750 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29536-5.0-opt
2007-08-06 06:37:05 -07:00
unknown
a97875e552 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
2007-08-06 08:17:49 -04:00
unknown
1f83b35181 Bug #29536: timestamp inconsistent in replication around 1970
MySQL replicates the time zone only when operations that involve
it are performed. This is controlled by a flag. But this flag
is set only on successful operation.
The flag must be set also when there is an error that involves
a timezone (so the master would replicate the error to the slaves). 

Fixed by moving the setting of the flag before the operation
(so it apples to errors as well).


mysql-test/r/rpl_timezone.result:
  Bug #29536: test case
mysql-test/t/rpl_timezone.test:
  Bug #29536: test case
sql/field.cc:
  Bug #29536: move setting of the flag before the operation
  (so it apples to errors as well).
sql/time.cc:
  Bug #29536: move setting of the flag before the operation
  (so it apples to errors as well).
2007-08-06 04:57:28 -07:00
unknown
0d69d9f627 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.1-opt


mysql-test/r/type_bit.result:
  Auto merged
mysql-test/t/type_bit.test:
  Auto merged
2007-08-06 01:08:28 -07:00
unknown
1d139a6565 Removed a query from the test case for bug 39219 that displayed in valgrind
a problem for BIT type values different from the one reported for the bug.
2007-08-06 01:01:22 -07:00
unknown
9e5f383b26 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.1-opt-bug30219


mysql-test/r/type_bit.result:
  Auto merged
mysql-test/t/type_bit.test:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
BitKeeper/deleted/.del-readme.txt~3:
  Auto merged
sql/field.h:
  Manual merge.
2007-08-05 18:39:12 -07:00
unknown
ccb32a5946 Bug #29804 UDF parameters don't contain correct string length
Previously, UDF *_init functions were passed constant strings with erroneous lengths.
The length came from the containing variable's size, not the length of the value itself.

Now the *_init functions get the constant as a null terminated string with the correct
length supplied.


mysql-test/r/udf.result:
  Test case to check constants passed UDFs.
mysql-test/t/udf.test:
  Test case to check constants passed UDFs.
sql/item_func.cc:
  UDF _init functions are now passed the length of the constants, rather than the max
  length of the var containing the constant.
sql/udf_example.c:
  Added check_const_len functions. The check_const_len_init functions checks that the
  lengths of constants are correctly passed.
2007-08-05 21:37:55 -04:00
unknown
e106b09ad3 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug30219
2007-08-05 14:21:36 -07:00
unknown
4e6e122061 Fix bug #30219.
This bug manifested itself for queries with grouping by columns of
the BIT type. It led to wrong comparisons of bit-field values and
wrong result sets.
Bit-field values never cannot be compared as binary values. Yet
the class Field_bit had an implementation of the cmp method that
compared bit-fields values as binary values. 
Also the get_image and set_image methods of the base class Field 
cannot be used for objects of the Field_bit class. 
Now these methods are declared as virtual and specific implementations
of the methods are provided for the class Field_bit.


mysql-test/r/type_bit.result:
  Added a test case for bug #30219.
mysql-test/t/type_bit.test:
  Added a test case for bug #30219.
sql/field.h:
  Fix bug #30219.
  This bug manifested itself for queries with grouping by columns of
  the BIT type. It led to wrong comparisons of bit-field values and
  wrong result sets.
  Bit-field values never cannot be compared as binary values. Yet
  the class Field_bit had an implementation of the cmp method that
  compared bit-fields values as binary values.
  Also the get_image and set_image methods of the base class Field
  cannot be used for objects of the Field_bit class. 
  Now these methods are declared as virtual and specific implementations
  of these methods are provided for the class Field_bit.
2007-08-05 14:16:49 -07:00
unknown
8860704088 Added test for bug #21281 "Pending write lock is incorrectly removed
when its statement being KILLed". The bug itself was fixed by separate
patch in 5.0 tree.


mysql-test/r/lock_multi.result:
  Added test for bug #21281 "Pending write lock is incorrectly removed
  when its statement being KILLed".
mysql-test/t/lock_multi.test:
  Added test for bug #21281 "Pending write lock is incorrectly removed
  when its statement being KILLed".
2007-08-05 13:55:37 +04:00
unknown
5b25fc5405 Merge mockturtle.local:/home/dlenev/src/mysql-5.0-bg21281
into  mockturtle.local:/home/dlenev/src/mysql-5.1-bg21281-2


mysql-test/t/federated.test:
  Auto merged
mysys/thr_lock.c:
  Auto merged
mysql-test/r/federated.result:
  SCCS merged
2007-08-05 13:26:10 +04:00
unknown
03e379d36f Merge olga.mysql.com:/home/igor/mysql-5.1
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.1-opt-merge


mysql-test/include/read_many_rows.inc:
  Auto merged
mysql-test/r/events_bugs.result:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Auto merged
mysql-test/r/read_many_rows_innodb.result:
  Auto merged
sql/handler.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_rcontext.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/sql_select.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_class.h:
  Manual merge.
storage/innobase/handler/ha_innodb.cc:
  Manual merge.
2007-08-04 22:36:54 -07:00
unknown
983cda8d36 Merge olga.mysql.com:/home/igor/mysql-5.0
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-merge


sql/mysqld.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2007-08-04 20:53:26 -07:00
unknown
4c33942f5a Made the test case for bug 28404 platform independent. 2007-08-04 17:15:33 -07:00
unknown
81d07e8cec Made sure that the test case for bug 28404 use the correct statistics. 2007-08-04 13:41:01 -07:00