Commit graph

36509 commits

Author SHA1 Message Date
unknown
35659a285d Fixed bug #27954.
This bug affects multi-row INSERT ... ON DUPLICATE into table
with PRIMARY KEY of AUTO_INCREMENT field and some additional UNIQUE indices.
If the first row in multi-row INSERT contains duplicated values of UNIQUE
indices, then following rows of multi-row INSERT (with either duplicated or
unique key field values) may me applied to _arbitrary_ records of table as
updates.
This bug was introduced in 5.0. Related code was widely rewritten in 5.1, and
5.1 is already free of this problem. 4.1 was not affected too.

When updating the row during INSERT ON DUPLICATE KEY UPDATE, we called
restore_auto_increment(), which set next_insert_id back to 0, but we
forgot to set clear_next_insert_id back to 0.
restore_auto_increment() function has been fixed.


sql/sql_class.h:
  Fixed bug #27954.
  Added commentary for THD::clear_next_insert_id variable.
sql/handler.cc:
  Fixed bug #27954.
  When updating the row during INSERT ON DUPLICATE KEY UPDATE, we called
  restore_auto_increment(), which set next_insert_id back to 0, but we
  forgot to set clear_next_insert_id back to 0.
  restore_auto_increment() function has been fixed.
mysql-test/t/insert_update.test:
  Added test case for bug #27954.
mysql-test/r/insert_update.result:
  Added test case for bug #27954.
2007-05-08 00:24:25 +05:00
unknown
44e54a30de Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/28133-bug-5.0-opt-mysql


sql/item_cmpfunc.cc:
  Auto merged
mysql-test/r/type_datetime.result:
  SCCS merged
mysql-test/t/type_datetime.test:
  SCCS merged
2007-05-07 22:22:51 +04:00
unknown
0fd2b3ddc6 Bug#28133: Wrong DATE/DATETIME comparison in IN() function.
The IN function was comparing DATE/DATETIME values either as ints or as
strings. Both methods have their disadvantages and may lead to a wrong
result.

Now IN function checks whether all of its arguments has the STRING result
types and at least one of them is a DATE/DATETIME item. If so it uses either
an object of the in_datetime class or an object of the cmp_item_datetime
class to perform its work. If the IN() function arguments are rows then
row columns are checked whether the DATE/DATETIME comparator should be used
to compare them.
The in_datetime class is used to find occurence of the item to be checked
in the vector of the constant DATE/DATETIME values. The cmp_item_datetime
class is used to compare items one by one in the DATE/DATETIME context.
Both classes obtain values from items with help of the get_datetime_value()
function and cache the left item if it is a constant one.



mysql-test/t/type_datetime.test:
  Added a test case for the bug#28133: Wrong DATE/DATETIME comparison in IN() function.
mysql-test/r/type_datetime.result:
  Added a test case for the bug#28133: Wrong DATE/DATETIME comparison in IN() function.
mysql-test/r/func_in.result:
  A test case result is corrected after the fix for the bug#28133.
sql/item_cmpfunc.h:
  Bug#28133: Wrong DATE/DATETIME comparison in IN() function.
  Two DATE/DATETIME comparison classes are added.
  The in_datetime class is used to find occurence of the item to be checked
  in the vector of the constant DATE/DATETIME values. The cmp_item_datetime
  class is used to compare items one by one in the DATE/DATETIME context.
  Both classes obtain values from items with help of the get_datetime_value()
  function and cache the left item if it is a constant one.
sql/item_cmpfunc.cc:
  Bug#28133: Wrong DATE/DATETIME comparison in IN() function.
  Now IN function checks whether all of its arguments has the STRING result
  types and at least one of them is a DATE/DATETIME item. If so it uses either
  an object of the in_datetime class or an object of the cmp_item_datetime
  class to perform its work. If the IN() function arguments are rows then
  row columns are checked whether the DATE/DATETIME comparator should be used
  to compare them.
2007-05-07 22:20:43 +04:00
unknown
48cdd9fcc1 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug27976/my50-bug27976
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
2007-05-07 12:45:39 -04:00
unknown
dab034503d Fix new error message list in v5.
mysql-test/r/repair.result:
  New error listing in v5.
2007-05-07 12:38:43 -04:00
unknown
bc23584b87 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug27976/my41-bug27976
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-4.1-maint
2007-05-07 11:09:44 -04:00
unknown
cac1dc9b96 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug27976/my50-bug27976
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
2007-05-07 11:03:53 -04:00
unknown
cc33cf2983 item_func.cc:
Fixed compiler warnings.


sql/item_func.cc:
  Fixed compiler warnings.
2007-05-07 18:24:46 +04:00
unknown
b953566011 New SCI Transporter Build scripts 2007-05-07 15:33:27 +02:00
unknown
ef4445187c Fix SCI Transporter
config/ac-macros/ha_ndbcluster.m4:
  Fix SCI Transporter build part
libmysqld/Makefile.am:
  Fix SCI Transporter build part
libmysqld/examples/Makefile.am:
  Fix SCI Transporter build part
2007-05-07 15:25:24 +02:00
unknown
187ccf4bca Merge mysql.com:/d2/hf/mrg/mysql-4.1-opt
into  mysql.com:/d2/hf/mrg/mysql-5.0-opt
2007-05-07 16:09:05 +05:00
unknown
3a04df06ca Merge bk@192.168.21.1:mysql-5.0
into  mysql.com:/d2/hf/mrg/mysql-5.0-opt


sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
2007-05-07 16:08:29 +05:00
unknown
30b4f5d0dd Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/d2/hf/mrg/mysql-4.1-opt
2007-05-07 16:07:52 +05:00
unknown
632e03f86d Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-05-07 11:12:52 +02:00
unknown
49ff174061 Merge adventure.(none):/home/thek/Development/cpp/bug26977/my50-bug26977
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
2007-05-07 10:32:00 +02:00
unknown
72569cc66d Bug#26977 exception handlers never hreturn
- In some cases, flow control optimization implemented in sp::optimize
    removes hreturn instructions, causing SQL exception handlers to:
      * never return
      * execute wrong logic
  - This patch overrides default short cut optimization on hreturn instructions
    to avoid this problem.


mysql-test/r/sp-code.result:
  Added test case
mysql-test/t/sp-code.test:
  Added test case
sql/sp_head.cc:
  Override opt_mark to get correct execution paths without jump short cut 
  optimization.
sql/sp_head.h:
  Added override sp_instr_hreturn::opt_shortcut_jump so that jump short cuts aren't
  performed on hreturn instructions operating on handlers which are set to CONTINUE
  after interruption.
2007-05-07 10:23:10 +02:00
unknown
2b7cad6503 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug27976/my41-bug27976
into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug27976/my50-bug27976


mysql-test/r/repair.result:
  Auto merged
myisam/sort.c:
  Manual merge.
2007-05-04 19:04:09 -04:00
unknown
d64e63b360 Bug #27976: Misleading error message, 'Sort buffer to small'
The message is gramatically wrong, and factually wrong.

Change it to refer to the myisam_sort_buffer_size variable and change
"to" to "too".


myisam/sort.c:
  Change error messages to be gramatically correct and to refer to the
  correct variable.
mysql-test/r/repair.result:
  Refer to the correct variable.  Message changed.
2007-05-04 17:38:29 -04:00
unknown
e63cc253e2 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/27759-bug-5.0-opt-mysql


sql/item_func.cc:
  Auto merged
2007-05-04 21:38:05 +04:00
unknown
edb949c55f Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug27173/my41-bug27173
into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug27173/my50-bug27173


sql/ha_myisam.cc:
  SCCS merged
2007-05-04 13:27:33 -04:00
unknown
4d263c4994 Bug #27173: "Enabling keys got errno ..." does not say which table
Warnings may show up in the error log that complain about a table, yet
don't tell us which table.

Add the database and table names to the message.


sql/ha_myisam.cc:
  Add the database and table names to the warning message.
2007-05-04 13:17:07 -04:00
unknown
359b0e59c9 bug #27531:
fixed coverage of out-of-mem errors
2007-05-04 18:55:01 +03:00
unknown
99bde6d9ec Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
The LEAST/GREATEST functions compared DATE/DATETIME values as
strings which in some cases could lead to a wrong result.

A new member function called cmp_datetimes() is added to the
Item_func_min_max class. It compares arguments in DATETIME context
and returns index of the least/greatest argument.
The Item_func_min_max::fix_length_and_dec() function now detects when
arguments should be compared in DATETIME context and sets the newly
added flag compare_as_dates. It indicates that the cmp_datetimes() function
should be called to get a correct result.
Item_func_min_max::val_xxx() methods are corrected to call the
cmp_datetimes() function when needed.
Objects of the Item_splocal class now stores and reports correct original
field type.


mysql-test/t/type_datetime.test:
  Added a test case for the bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
mysql-test/r/type_datetime.result:
  Added a test case for the bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
mysql-test/r/sp-vars.result:
  A test case result corrected after the fix for the bug#27759.
sql/mysql_priv.h:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  Added the prototype of the get_datetime_value() function.
sql/item_func.h:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  A new member function called cmp_datetimes() is added to the
  Item_func_min_max class.
sql/item_func.cc:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  A new member function called cmp_datetimes() is added to the
  Item_func_min_max class. It compares arguments in DATETIME context
  and returns index of the least/greatest argument.
  The Item_func_min_max::fix_length_and_dec() function now detects when
  arguments should be compared in DATETIME context and sets the newly
  added flag compare_as_dates. It indicates that the cmp_datetimes() function
  should be called to get a correct result.
  Item_func_min_max::val_xxx() methods are corrected to call the
  cmp_datetimes() function when needed.
sql/item_cmpfunc.cc:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  The get_datetime_value() function is no longer static.
sql/item.h:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  Objects of the Item_splocal class now stores and reports correct original
  field type.
sql/item.cc:
  Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
  Objects of the Item_splocal class now stores and reports correct original
  field type.
2007-05-04 18:57:10 +04:00
unknown
7539cb43e3 Merge magare.gmz:/home/kgeorge/mysql/work/B27531-4.1-opt
into  magare.gmz:/home/kgeorge/mysql/work/B27531-5.0-opt


mysql-test/t/join.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/r/join.result:
  SCCS merged
2007-05-04 16:47:58 +03:00
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
1084f2d62b Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
2007-05-04 14:42:32 +05:00
unknown
13cfc4775c Bug#28181 Access denied to 'information_schema when select into out file (regression)
allow select into out file from I_S if user has FILE privilege
otherwise issue an error


mysql-test/r/outfile.result:
  test result
mysql-test/t/outfile.test:
  test case
sql/sql_parse.cc:
  allow select into out file from I_S if user has FILE privilege
  otherwise issue an error
2007-05-04 14:41:58 +05:00
unknown
3ebd2e55b9 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B27807-5.0-opt
2007-05-04 12:09:29 +03:00
unknown
74c794d0e4 Merge moonbone.local:/mnt/gentoo64/work/23656-bug-4.1-opt-mysql
into  moonbone.local:/mnt/gentoo64/work/23656-bug-5.0-opt-mysql


mysql-test/r/cast.result:
  Auto merged
mysql-test/t/cast.test:
  Auto merged
sql/item_func.cc:
  Manual merge
2007-05-04 12:27:21 +04:00
unknown
ad06c4c08e Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B27807-5.0-opt


sql/sql_select.cc:
  Auto merged
mysql-test/r/subselect.result:
  merge to 5.0-opt
mysql-test/t/subselect.test:
  merge to 5.0-opt
2007-05-04 10:57:14 +03:00
unknown
0ad4e1b2a6 Bug #27807.
Non-correlated scalar subqueries may get executed
in EXPLAIN at the optimization phase if they are
part of a right hand sargable expression.
If the scalar subquery uses a temp table to 
materialize its results it will replace the 
subquery structure from the parser with a simple
select from the materialization table.
As a result the EXPLAIN will crash as the 
temporary materialization table is not to be shown
in EXPLAIN at all.
Fixed by preserving the original query structure
right after calling optimize() for scalar subqueries
with temp tables executed during EXPLAIN.


mysql-test/r/subselect.result:
  Bug #27807: test case
mysql-test/t/subselect.test:
  Bug #27807: test case
sql/item_subselect.cc:
  Bug #27807: preserve the join structure
sql/sql_select.cc:
  Bug #27807: introduce initialization function for tmp_join
sql/sql_select.h:
  Bug #27807: introduce initialization function for tmp_join
2007-05-04 10:48:51 +03:00
unknown
6b7b95637a BUG#24732 manifest file was not included in VS2005 amd64 builds
CMakeLists.txt:
  BUG#24732 prevent VS2005 from overwriting our generated manifest
2007-05-04 09:37:50 +02:00
unknown
a196d66f45 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-4.1-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-4.1-build-work
2007-05-04 08:56:54 +02: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
ad33a48afc Better distinction between "CLEANFILES" and "DISTCLEANFILES" for some generated files
(here: "scripts/mysql_fix_privilege_tables{.sql,_sql.c}"). Important for cross-builds.


scripts/Makefile.am:
  Generated files like "mysql_fix_privilege_tables{.sql,_sql.c}" should survive
  a "make clean", this is essential for cross-builds.
  So move them from "CLEANFILES" to "DISTCLEANFILES".
2007-05-03 15:51:02 +02:00
unknown
dc39e2c20e Merge obarnir@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  linux.site:/home/omer/source/bld50_2
2007-05-02 11:32:03 -07:00
unknown
2478a8be0c Resolve a possible timing issue with "scripts/mysql_fix_privilege_tables_sql.c" in the
source tarball, this is essential for cross builds, like for NetWare.


scripts/Makefile.am:
  On a fast build machine, both the source (mysql_fix_privilege_tables.sql) 
  and the generated file (mysql_fix_privilege_tables_sql.c) may have identical timestamps
  (granularity is one second only, may be too coarse).
  If that happens, the Makefile rule will fire, and "comp_sql" will be built and called -
  which fails in a cross build, like for NetWare.
  
  Prevent that by sleeping for 5 (five) seconds, this will ensure a time difference.
2007-05-02 20:07:01 +02:00
unknown
2f2f11b3de Merge trift2.:/MySQL/M50/spec-5.0
into  trift2.:/MySQL/M50/push-5.0
2007-05-02 19:45:30 +02:00
unknown
77ed50c4d1 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-4.1-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-4.1-build-work
2007-05-02 19:37:42 +02:00
unknown
eb92ed037c Merge dfischer@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build


CMakeLists.txt:
  Auto merged
2007-05-02 19:21:50 +02:00
unknown
4ac4ee4bf1 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work-cmake-map-files
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build


CMakeLists.txt:
  Auto merged
2007-05-02 19:19:46 +02:00
unknown
b9985ebae8 Minor fix.
scripts/CMakeLists.txt:
  Fix broken bk native builds.
2007-05-02 12:41:36 -04:00
unknown
03e7683565 Merge weblab.(none):/home/marcsql/TREE/mysql-5.0-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.0-rt-merge


mysql-test/t/sp.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-05-02 09:59:39 -06:00
unknown
898fc2e210 Merge trift2.:/MySQL/M50/mysql-5.0
into  trift2.:/MySQL/M50/push-5.0


scripts/Makefile.am:
  Auto merged
2007-05-02 17:15:48 +02:00
unknown
95aa256dda Merge trift2.:/MySQL/M41/spec-4.1
into  trift2.:/MySQL/M50/spec-5.0


support-files/mysql.spec.sh:
  SCCS merged
2007-05-02 16:53:54 +02:00
unknown
09812630ca RPM spec file error: Trailing '*' to cover '.gz' for a man page was missing.
support-files/mysql.spec.sh:
  Man pages may/will be compressed, so the file name needs trailing '*' to cover '.gz'.
2007-05-02 16:51:15 +02:00
unknown
3630525429 Coeection to the bug format to for better search - review comment 2007-05-02 07:50:47 -07:00
unknown
11a630c4ca generate map files on windows
CMakeLists.txt:
  Generate map files for executables
2007-05-02 15:50:08 +02:00
unknown
2b73a6c85d Bug#27994 Expose counter for stored procedure calls in Com_% status
- Expose the already existing counter for number of stored procedure calls


sql/mysqld.cc:
  Expose counter for "Com_call_procedure"
2007-05-02 14:25:11 +02:00
unknown
589ae7b4e0 Format corrections for various "Makefile.am": Leading tab, no trailing blank.
client/Makefile.am:
  "Makefile" command lines must start with a tab, not with blanks.
libmysqld/Makefile.am:
  "Makefile" command lines must start with a tab, not with blanks.
netware/Makefile.am:
  "Makefile" command lines must start with a tab, not with blanks.
scripts/Makefile.am:
  "Makefile" command lines must start with a tab, not with blanks.
win/Makefile.am:
  After a backslash (to mark a continuation line) there must not be a trailing blank.
2007-05-02 14:01:49 +02:00