Commit graph

22018 commits

Author SHA1 Message Date
unknown
353b6f26b1 Bug #27531: the 4.1 fix.
When checking for applicability of join cache
we must disable its usage only if there is no
temp table in use.
When a temp table is used we can use join
cache (and it will not make the result-set 
unordered) to fill the temp table. The filesort() 
operation is then applied to the data in the temp 
table and hence is not affected by join cache
usage.
Fixed by narrowing the condition for disabling 
join cache to exclude the case where temp table
is used.


mysql-test/r/join.result:
  Bug #27531: test case
mysql-test/t/join.test:
  Bug #27531: test case
sql/sql_select.cc:
  Bug #27531: 
  Disable join cache only if not using temp table
2007-05-04 16:43:29 +03:00
unknown
1a0e3a2858 Bug#23656: Wrong conversion result of a DATETIME to integer using CAST function.
The generic string to int conversion was used by the Item_func_signed and
the Item_func_unsigned classes to convert DATE/DATETIME values to the
SIGNED/UNSIGNED type. But this conversion produces wrong results for such
values.

Now if the item which result has to be converted can return its result as
longlong then the item->val_int() method is used to allow the item to carry
out the conversion itself and return the correct result.
This condition is checked in the Item_func_signed::val_int() and the
Item_func_unsigned::val_int() functions.


mysql-test/t/cast.test:
  Added a test case for the bug#23656: Wrong conversion result of a DATETIME to integer using CAST function.
mysql-test/r/cast.result:
  Added a test case for the bug#23656: Wrong conversion result of a DATETIME to integer using CAST function.
sql/item_func.cc:
  Bug#23656: Wrong conversion result of a DATETIME to integer using CAST function.
  Now if the item which result has to be converted can return its result as
  longlong then the item->val_int() method is used to allow the item to carry
  out the conversion itself and return the correct result.
  This condition is checked in the Item_func_signed::val_int() and the
  Item_func_unsigned::val_int() functions.
2007-05-04 00:53:37 +04:00
unknown
c004ad0944 Fix in comments. 2007-04-29 18:28:58 -07:00
unknown
dd34042ec1 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.  


mysql-test/r/olap.result:
  Added a test case for bug #24856.
mysql-test/t/olap.test:
  Added a test case for bug #24856.
sql/item_func.h:
  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.
  
  Itroduced class Item_func_rollup_const derived from Item_func. The object of
  this class are never detected as constant items.
  We use them for wrapping constant items from the GROUP BY list of any ROLLUP
  query. This wrapping allows us to ensure writing constant items into temporary
  tables whenever the result of the ROLLUP operation has to be written into a
  temporary table, e.g. when ROLLUP is used together with DISTINCT in the SELECT
  list.
sql/sql_select.cc:
  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.
  
  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
unknown
0cd6377f28 Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/d2/hf/mrg/mysql-4.1-opt
2007-04-29 18:39:45 +05:00
unknown
e822507364 Patch to eliminate compilation errors under VC after bug #13191 fix. 2007-04-29 11:56:23 +05:00
unknown
2503382629 Merge gshchepa.loc:/home/uchum/work/bk-trees/mysql-4.1-opt
into  gshchepa.loc:/home/uchum/work/bk-trees/mysql-4.1-opt-13191
2007-04-29 05:31:53 +05:00
unknown
3f16967847 Adjusted results after the fix for bug #20710. 2007-04-29 05:06:14 +05:00
unknown
98c0da4ed5 Fixed bug #13191.
INSERT...ON DUPLICATE KEY UPDATE may cause error 1032: 
"Can't find record in ..." if we are inserting into
InnoDB table unique index of partial key with
underlying UTF-8 string field.

This error occurs because INSERT...ON DUPLICATE uses a wrong
procedure to copy string fields of multi-byte character sets
for index search.


mysql-test/t/innodb_mysql.test:
  Added test case for bug #13191.
mysql-test/r/innodb_mysql.result:
  Added test case for bug #13191.
sql/field.h:
  Fixed bug #13191.
  Field_string::get_key_image() virtual function was overloaded
  to implement copying of variable length character (UTF-8) fields.
  Field::get_key_image() function prototype has been changed to
  return byte size of copied data.
sql/field.cc:
  Fixed bug #13191.
  Field_string::get_key_image() virtual function was overloaded
  to implement copying of variable length character (UTF-8) fields.
  Field::get_key_image() function prototype has been changed to
  return byte size of copied data.
sql/key.cc:
  Fixed bug #13191.
  INSERT...ON DUPLICATE KEY UPDATE may cause error 1032: 
  "Can't find record in ...".
  This error occurs because INSERT...ON DUPLICATE uses
  a wrong procedure to copy field parts for index search.
  key_copy() function has been fixed.
2007-04-29 04:16:17 +05:00
unknown
f90870e98f Fixed bug #20710.
This bug occurs when error message length exceeds allowed limit: my_error()
function outputs "%s" sequences instead of long string arguments.

Formats like %-.64s are very common in errmsg.txt files, however my_error()
function simply ignores precision of those formats.


mysys/my_error.c:
  Fixed bug #20710.
  This bug occurs when error message length exceeds allowed limit: my_error()
  function output "%s" sequences instead of long string arguments.
  my_error() function has been fixed to accept formats like %-.64s.
mysql-test/t/alter_table.test:
  Added test case for bug #20710.
mysql-test/r/alter_table.result:
  Added test case for bug #20710.
2007-04-29 00:50:33 +05:00
unknown
a4bfd85414 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1-build
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-4.1-engines
2007-04-27 00:32:51 +05:00
unknown
b6eb3e40fd Merge trift-lap.fambruehe:/MySQL/M41/mysql-4.1
into  trift-lap.fambruehe:/MySQL/M41/push-4.1
2007-04-26 16:09:19 +02:00
unknown
6d38c87d70 Merge mysql.com:/home/ram/work/mysql-4.1-maint
into  mysql.com:/home/ram/work/b27515/b27515.4.1
2007-04-24 14:33:15 +05:00
unknown
b9b1da75dd Merge mysql.com:/home/ram/work/mysql-4.1-maint
into  mysql.com:/home/ram/work/b27515/b27515.4.1
2007-04-24 14:20:28 +05:00
unknown
31b48d64cf Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/41
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/41
2007-04-23 21:36:46 +02:00
unknown
7d954c94fd Merge debian.(none):/M41/mysql-4.1
into  debian.(none):/M41/push-4.1
2007-04-23 11:36:30 +02:00
unknown
a8f639fccc Bug#27704: incorrect comparison of rows with NULL components
Support for NULL components was incomplete for row comparison,
fixed.  Added support for abort_on_null at compare_row() like
in 5.x


sql/item_cmpfunc.h:
  Bug#27704: incorrect comparison of rows with NULL components
  Added support for abort_on_null at Item_bool_func2
  like in 5.x
sql/item_cmpfunc.cc:
  Bug#27704: incorrect comparison of rows with NULL components
  Support for NULL components was incomplete for row comparison,
  fixed. Added support for abort_on_null at compare_row() like
  in 5.x
mysql-test/t/row.test:
  Test case updated for Bug#27704 (incorrect comparison 
  of rows with NULL components)
mysql-test/r/row.result:
  Test case updated for Bug#27704 (incorrect comparison 
  of rows with NULL components)
mysql-test/r/subselect.result:
  Test case updated for Bug#27704 (incorrect comparison 
  of rows with NULL components)
2007-04-20 15:14:09 +05:00
unknown
3673aaeb6b Fixed a warning on win64. 2007-04-19 11:53:25 +05:00
unknown
150646b62d Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG24342/mysql-4.1-engines
2007-04-18 16:16:58 +05:00
unknown
4e387d6c0f Merge siva.hindu.god:/home/tsmith/m/bk/41
into  siva.hindu.god:/home/tsmith/m/bk/maint/41
2007-04-17 15:38:59 -06:00
unknown
f7fae98232 Merge trift2.:/MySQL/M41/test-help-4.1
into  trift2.:/MySQL/M41/push-4.1
2007-04-17 19:48:18 +02:00
unknown
50e158402b Fix for bug #27515: DROP previlege is not required anymore for RENAME TABLE
Added missed DROP privilege check on the original table for RENAME TABLE command.


mysql-test/r/grant.result:
  Fix for bug #27515: DROP previlege is not required anymore for RENAME TABLE
    - test result.
mysql-test/t/grant.test:
  Fix for bug #27515: DROP previlege is not required anymore for RENAME TABLE
    - test case.
sql/sql_parse.cc:
  Fix for bug #27515: DROP previlege is not required anymore for RENAME TABLE
    - added DROP privilege check on the original table for RENAME TABLE command.
2007-04-17 16:52:50 +05:00
unknown
78c734b013 Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/d2/hf/mrg/mysql-4.1-opt
2007-04-14 14:54:28 +05:00
unknown
202f34e2f5 BUG#25951 - ignore/use index does not work with fulltext
IGNORE/USE/FORCE INDEX hints were honored when choosing FULLTEXT
index.

With this fix these hints are ignored. For regular indexes we may
perform table scan instead of index lookup when IGNORE INDEX was
specified. We cannot do this for FULLTEXT in NLQ mode.


mysql-test/r/fulltext.result:
  A test case for bug#25951.
mysql-test/t/fulltext.test:
  A test case for bug#25951.
sql/item_func.cc:
  IGNOR/USE/FORCE INDEX hints should not be honored when choosing FULLTEXT
  index.
  
  Use proper bitmap, that is not modified by IGNORE/USE/FORCE INDEX hints.
2007-04-13 02:31:34 +05:00
unknown
70d753c67a Merge whalegate.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-4.1-opt
2007-04-12 19:49:21 +02:00
unknown
aa051961c9 Fixed bug #27484: a crash when incompatible row expressions with nested rows
are used as arguments of the IN predicate.
Added a function to check compatibility of row expressions. Made sure that this
function to be called for Item_func_in objects by fix_length_and_dec().


mysql-test/r/row.result:
  Added a test case for bug #27484.
mysql-test/t/row.test:
  Added a test case for bug #27484.
2007-04-11 11:41:12 -07:00
unknown
cf31f9a899 Merge perch.ndb.mysql.com:/home/jonas/src/41-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-4.1-ndb
2007-04-11 08:26:52 +02:00
unknown
dbfe33869c Merge joreland@bk-internal.mysql.com:/home/bk/mysql-4.1-ndb
into  perch.ndb.mysql.com:/home/jonas/src/mysql-4.1-ndb
2007-04-11 08:26:23 +02:00
unknown
a908db7b74 ndb - bug#27748
fix commit trigger on multi-update


ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
  fix commit trigger on multi-update
2007-04-11 08:23:16 +02:00
unknown
cb8f4d4017 Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/kent/bk/tmp3/mysql-4.1-build
2007-04-11 01:51:33 +02:00
unknown
6866ca008c BUG#24342 - Incorrect results with query over MERGE table
MERGE engine may return incorrect values when several representations
of equal keys are present in the index. For example "groß" and "gross"
or "gross" and "gross " (trailing space), which are considered equal,
but have different lengths.

The problem was that key length was not recalculated after key lookup.

Only MERGE engine is affected.


myisam/mi_rkey.c:
  info->lastkey gets rewritten by mi_search. Later we recalculate found lastkey
  length. This is done to make sure that mi_rnext_same gets true, found (not
  searched) lastkey length. Searched and found key lengths may be different,
  for example in case searched key is "groß" and found is "gross" or in case
  a key has trailing spaces.
  
  Unfortunately we recalculate found lastkey length only for first
  underlying table. To recalculate found key length for non-first underlying
  table we need to know how much key segments were used to create this key.
  
  When mi_rkey is called for first underlying table of a merge table, store
  offset to last used key segment.
  
  Restore last_used_keyseg variable when mi_rkey is called for non-first
  underlying table.
myisam/myisamdef.h:
  Added last_used_keyseg variable to MI_INFO. It is used by merge engine to calculate
  key length.
myisammrg/myrg_rkey.c:
  Pass last used key segment returned by first table key read to other
  table key reads.
mysql-test/r/merge.result:
  A test case for bug#24342.
mysql-test/t/merge.test:
  A test case for bug#24342.
2007-04-11 01:40:35 +05:00
unknown
247c3a81a1 Update result(which mysterioulsy got lost) 2007-04-10 17:33:04 +02:00
unknown
da43360e1f Take into account wether vertical_results are in effect 2007-04-10 17:09:35 +02:00
unknown
3120134a0a Init dying to 1 just after passing the guard 2007-04-10 17:06:36 +02:00
unknown
3f96702b06 Add OPT_LOG_DIR 2007-04-10 17:05:22 +02:00
unknown
76f5c73bc2 Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-04-10 14:58:55 +02:00
unknown
5565d32936 Add --logdir option ot mysqltest 2007-04-10 14:45:13 +02:00
unknown
8163d5ec6e Merge 192.168.0.4:mysql/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint


client/mysqltest.c:
  Auto merged
mysql-test/r/mysqltest.result:
  Auto merged
mysql-test/t/mysqltest.test:
  Auto merged
2007-04-10 13:51:32 +02:00
unknown
bd44cc116a Merge trift2.:/MySQL/M41/mysql-4.1
into  trift2.:/MySQL/M41/push-4.1
2007-04-07 20:58:01 +02:00
unknown
2911bcd8e3 Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/d2/hf/mrg/mysql-4.1-opt
2007-04-07 11:35:14 +05:00
unknown
e3e600bcf1 Add "query_sorted" command to mysqltest
Usage:
  query_sorted <query>;


client/mysqltest.c:
  Add query_sorted command to mysqltest
mysql-test/r/mysqltest.result:
  Update result
mysql-test/t/mysqltest.test:
  Add tests for query_sorted
2007-04-05 20:12:56 +02:00
unknown
390a0ede48 Protect against dying twice
Cleanup exit handling
2007-04-05 13:53:44 +02:00
unknown
f76ab0c469 Deleted reject files accidently checked in
configure.in.rej
  include/my_global.h.rej
  BUILD/SETUP.sh.rej
  mysys/thr_alarm.c.rej
  include/my_pthread.h.rej


BitKeeper/deleted/.del-SETUP.sh.rej:
  Delete: BUILD/SETUP.sh.rej
BitKeeper/deleted/.del-configure.in.rej:
  Delete: configure.in.rej
BitKeeper/deleted/.del-my_global.h.rej:
  Delete: include/my_global.h.rej
BitKeeper/deleted/.del-my_pthread.h.rej:
  Delete: include/my_pthread.h.rej
BitKeeper/deleted/.del-thr_alarm.c.rej:
  Delete: mysys/thr_alarm.c.rej
2007-04-05 08:30:16 +02:00
unknown
b5d13fcbbf Bug#27344 Total failure to start the server
- length($sockdir) >= 80 !!


mysql-test/mysql-test-run.pl:
  Change check to create a tmp file for socket if length($sockdir) >= 80 !!
2007-04-04 19:19:26 +02:00
unknown
a3583bf3b5 Add "skip" function, makeing mysqltest return an
error code indicating test should be skipped
2007-04-04 15:15:40 +02:00
unknown
aaaf498146 Add expansion of $variables in "let from query",
"if with query" and "while with query"
2007-04-04 15:09:12 +02:00
unknown
e488e6f23a Improved coverage for the code added to fix bug 27532. 2007-04-03 19:45:37 -07:00
unknown
0ee34b1ca2 Fixed bug #27532: wrong results with ORDER/GROUP BY queries containing
IN/BETWEEN predicates in sorting expressions.
Wrong results may occur when the select list contains an expression
with IN/BETWEEN predicate that differs from a sorting expression by
an additional NOT only.
 
Added the method Item_func_opt_neg::eq to compare correctly expressions
containing [NOT] IN/BETWEEN.
The eq method inherited from the Item_func returns TRUE when comparing
'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.  


mysql-test/r/order_by.result:
  Added a test case for bug #27532.
mysql-test/t/order_by.test:
  Added a test case for bug #27532.
sql/item_cmpfunc.cc:
  Fixed bug #27532.
  Added the method Item_func_opt_neg::eq to compare correctly expressions
  containing [NOT] IN/BETWEEN.
  The eq method inherited from the Item_func returns TRUE when comparing
  'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
sql/item_cmpfunc.h:
  Added the method Item_func_opt_neg::eq to compare correctly expressions
  containing [NOT] IN/BETWEEN.
  The eq method inherited from the Item_func returns TRUE when comparing
  'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
2007-04-03 14:32:16 -07:00
unknown
96d879cb4b Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-04-02 10:48:11 +02:00
unknown
0bb2f43d2e Cset exclude: tsmith@siva.hindu.god|ChangeSet|20070328212513|13373
myisam/mi_open.c:
  Exclude
mysql-test/r/create.result:
  Exclude
mysql-test/t/create.test:
  Exclude
sql/table.cc:
  Exclude
2007-04-02 10:39:23 +02:00