1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-09 08:01:34 +03:00
Commit Graph

15176 Commits

Author SHA1 Message Date
unknown
8cfdb8eb15 Use the mtr_file_exists function to detect if ndbapi_example is available 2006-09-11 12:15:04 +02:00
unknown
62dd7e5183 Bug#20922 mysql removes a name of first column in a table
0xFF is internal separator for SET|ENUM names. 
If this symbol is present in SET|ENUM names then we replace it with 
','(deprecated symbol for SET|ENUM names) during frm creation
and restore to 0xFF during frm opening


mysql-test/r/type_enum.result:
  Bug#20922 mysql removes a name of first column in a table
  test case
mysql-test/t/type_enum.test:
  Bug#20922 mysql removes a name of first column in a table
  test case
sql/table.cc:
  Bug#20922 mysql removes a name of first column in a table
  Replace all ',' symbols with NAMES_SEP_CHAR in interval names.
sql/unireg.cc:
  Bug#20922 mysql removes a name of first column in a table
  if NAMES_SEP_CHAR symbols are present in interval name
  then replace all NAMES_SEP_CHAR symbols with ','
2006-09-11 14:50:46 +05:00
unknown
c490d7ab02 Merge alik.:/mnt/raid/alik/MySQL/devel/5.0-tree
into  alik.:/mnt/raid/alik/MySQL/devel/5.0-rt-merged
2006-09-11 13:13:35 +04:00
unknown
41aaa0f085 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B21772-5.0-opt
2006-09-11 10:58:47 +03:00
unknown
c7f93b4170 Merge orca.ndb.mysql.com:/export/home/space/pekka/ndb/version/my51-ndb
into  orca.ndb.mysql.com:/export/home/space/pekka/ndb/version/my51-bug20612


mysql-test/r/ndb_dd_basic.result:
  manual 1+1
mysql-test/t/ndb_dd_basic.test:
  manual 1+1
2006-09-11 08:45:22 +02:00
unknown
e1876e84c5 ndb - bug#20612 ins-del fix in tup
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
  allocate separate copy tuple for delete after insert or update in same tx, instead of sharing pointer to same copy tuple.  this is an easy fix independent of commit/abort order of operations
mysql-test/r/ndb_dd_basic.result:
  test INS-DEL via assert in disk data code
mysql-test/t/ndb_dd_basic.test:
  test INS-DEL via assert in disk data code
2006-09-10 21:58:51 +02:00
unknown
5371adca31 Merge rurik.mysql.com:/home/igor/mysql-5.0-opt
into  rurik.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug5500


sql/sql_select.cc:
  Auto merged
2006-09-09 10:23:13 -07:00
unknown
a65342f38d Post-pushbuild corrections for fix of bug #21698. 2006-09-09 09:43:09 -07:00
unknown
2a00a073c2 Bug #21540: Subqueries with no from and aggregate functions return
wrong results
 Mark the containing Item(s) (Item_subselect descendant usually) of 
 a subselect as containing aggregate functions if it has references
 to aggregates functions that are calculated outside its context.
 This tels end_send_group() not to make an Item_subselect descendant in
 select list a copy and causes the correct value being returned.


mysql-test/r/func_group.result:
  Bug #21540: Subqueries with no from and aggregate functions return
              wrong results
   - test cases
mysql-test/r/subselect.result:
  Bug #21540: Subqueries with no from and aggregate functions return
              wrong results
   - fixed the result of an existing testcase.
mysql-test/t/subselect.test:
  Bug #21540: Subqueries with no from and aggregate functions return
              wrong results
   - test cases
sql/item_sum.cc:
  Bug #21540: Subqueries with no from and aggregate functions return
              wrong results
   Mark the containing Item (Item_subselect descendant usually) of 
   a subselect as containing aggregate functions if it has references
   to aggregates functions that are calculated outside its context.
   This tels end_send_group() not to make an Item_subselect descendant in
   select list a copy and causes the correct value being returned.
2006-09-08 19:04:46 +03:00
unknown
b430d54aa7 "crash_commit_before" need innodb
mysql-test/t/crash_commit_before.test:
  Server need to be compiled with innodb support for this test case to suceed
2006-09-08 16:26:35 +02:00
unknown
04fcc426aa Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-kt
2006-09-08 16:12:48 +02:00
unknown
d0a978e9c8 Merge shellback.(none):/home/msvensson/mysql/mysql-5.1
into  shellback.(none):/home/msvensson/mysql/mysql-5.1-new-maint


sql/ha_innodb.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
storage/csv/ha_tina.cc:
  Auto merged
mysql-test/mysql-test-run.pl:
  Merge
2006-09-08 16:01:51 +02:00
unknown
925802234f Fix problem running mysql-test-run.pl when running in a clone not compiled with ndb support
mysql-test/mysql-test-run.pl:
  Don't set LD_LIBRARY_PATH  to the ndb dirs if ndb support is not available
2006-09-08 15:55:11 +02:00
unknown
026737aa75 Fix for BUG#22074: mysql-test-run.pl abort test run if it fails
to start instance manager.

The problem was that if IM failed to start, test suite aborts.

The fix is to mark current test as failed, and continue running
test suite.

The fix affects only test suite.


mysql-test/mysql-test-run.pl:
  Report IM-test as failed if IM failed to start.
2006-09-08 16:41:35 +04:00
unknown
e701346dcf This is another patch for test suite to make IM tests work smoothly.
The patch affects only test suite and has the following changes:

1. On starting Instance Manager -- added code for waiting for guarded
mysqld instances to create PID files;
2. Polishing;
3. Move IM-related operations out of mtr_process.pl into new dedicated
for IM file -- mtr_im.pl


mysql-test/mysql-test-run.pl:
  1. Require new file with IM-related operations;
  2. Added timeout to wait for PID files of guarded instances;
  3. Polishing.
mysql-test/lib/mtr_process.pl:
  Move IM-related operations to new file.
mysql-test/lib/mtr_im.pl:
  File for IM-related operations.
2006-09-08 16:19:19 +04:00
unknown
24f9f35eb6 Merge dator5.(none):/home/pappa/clean-mysql-5.1
into  dator5.(none):/home/pappa/bug21210


sql/ha_partition.cc:
  Auto merged
2006-09-08 06:29:35 -04:00
unknown
f364dcd413 Merge dator5.(none):/home/pappa/valgrind_test
into  dator5.(none):/home/pappa/bug21210
2006-09-08 06:28:45 -04:00
unknown
0eb5442fd9 Bug #21772: can not name a column 'upgrade' when create a table in version 5.0.24
Upgrade was a reserved word. Unreserve UPGRADE so it can be used in unquoted identifiers.


mysql-test/r/create.result:
  Bug #21772: can not name a column 'upgrade' when create a table in version 5.0.24
   - test case
mysql-test/t/create.test:
  Bug #21772: can not name a column 'upgrade' when create a table in version 5.0.24
   - test case
sql/sql_yacc.yy:
  Bug #21772: can not name a column 'upgrade' when create a table in version 5.0.24
   - unreserve UPGRADE.
2006-09-08 13:10:14 +03:00
unknown
f64483cb90 Bug #20924: CAST(expr as UNSIGNED) returns SIGNED value when used in various functions
- Honor unsigned_flag in the corresponding functions
- Use compare_int_signed_unsigned()/compare_int_unsigned_signed() instead of explicit comparison in GREATEST() and LEAST()


mysql-test/r/case.result:
  Added test case for bug #20924
mysql-test/r/func_if.result:
  Added test case for bug #20924
mysql-test/r/func_test.result:
  Added test case for bug #20924
mysql-test/r/user_var.result:
  Added test case for bug #20924
mysql-test/t/case.test:
  Added test case for bug #20924
mysql-test/t/func_if.test:
  Added test case for bug #20924
mysql-test/t/func_test.test:
  Added test case for bug #20924
mysql-test/t/user_var.test:
  Added test case for bug #20924
sql/item_cmpfunc.cc:
  Bug #20924: CAST(expr as UNSIGNED) returns SIGNED value when used in various functions
  
  - Moved some code out of Arg_comparator to external functions to be reused in Item_func_min_max
  - Fixed IFNULL(), IF(), CASE() and COALESCE()
sql/item_cmpfunc.h:
  Bug #20924: CAST(expr as UNSIGNED) returns SIGNED value when used in various functions
  
  - Moved some code out of Arg_comparator to external functions to be reused in Item_func_min_max
sql/item_func.cc:
  Bug #20924: CAST(expr as UNSIGNED) returns SIGNED value when used in various functions
  
  Fixed LEAST(), GREATEST() and "SET @a=..." parts
sql/item_func.h:
  Bug #20924: CAST(expr as UNSIGNED) returns SIGNED value when used in various functions
  
  Fixed "SET @a=..." part
sql/sql_class.h:
  Bug #20924: CAST(expr as UNSIGNED) returns SIGNED value when used in various functions
  
  Fixed "SET @a=..." part
2006-09-08 14:08:29 +04:00
unknown
39dd292bc4 Need to set symbolic-links=1 for valgrind builds for the partition test
mysql-test/t/partition-master.opt:
  BitKeeper file /home/pappa/valgrind_test/mysql-test/t/partition-master.opt
2006-09-08 05:57:37 -04:00
unknown
54caf667ca Bug#21555: incorrect behavior with INSERT ... ON DUPL KEY UPDATE and VALUES
VALUES() was considered a constant. This caused replacing 
 (or pre-calculating) it using uninitialized values before the actual
 execution takes place.
 Mark it as a non-constant (still not dependent of tables) to prevent
 the pre-calculation.


mysql-test/r/insert_update.result:
  Bug#21555: incorrect behavior with INSERT ... ON DUPL KEY UPDATE and VALUES
   - test case.
   - EXPLAIN output changed due to VALUES() not being considered a constant 
     anymore
mysql-test/t/insert_update.test:
  Bug#21555: incorrect behavior with INSERT ... ON DUPL KEY UPDATE and VALUES
   - test case.
sql/item.h:
  Bug#21555: incorrect behavior with INSERT ... ON DUPL KEY UPDATE and VALUES
   - mark Item_insert_value as non-constant to prevent early calculation.
2006-09-08 10:24:14 +03:00
unknown
d710ccf82c Rearranged test cases, move InnoDB test cases to partition_innodb 2006-09-08 03:18:05 -04:00
unknown
53267edaf6 fix build 2006-09-08 00:49:37 +02:00
unknown
aa840645e6 query_cache.result, func_time.test, type_date.result, func_time.result:
Corrected test case after removal of fix for bug#16377         
type_date.test:
  Corrected test case after removal of fix for bug#16377
item_cmpfunc.cc:
  Removed changes to the agg_cmp_type() made in the for bug#16377


mysql-test/t/type_date.test:
  Corrected test case after removal of fix for bug#16377
mysql-test/t/func_time.test:
  Corrected test case after removal of fix for bug#16377
mysql-test/r/type_date.result:
  Corrected test case after removal of fix for bug#16377
mysql-test/r/query_cache.result:
  Corrected test case after removal of fix for bug#16377
mysql-test/r/func_time.result:
  Corrected test case after removal of fix for bug#16377
sql/item_cmpfunc.cc:
  Removed changes to the agg_cmp_type() made in the for bug#16377
2006-09-08 00:59:34 +04:00
unknown
4b14a01f51 Merge chilla.local:/home/mydev/mysql-5.0-bug14400
into  chilla.local:/home/mydev/mysql-5.1-bug14400


mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
storage/myisam/mi_rkey.c:
  Auto merged
2006-09-07 22:07:52 +02:00
unknown
21be389b46 Merge rurik.mysql.com:/home/igor/mysql-5.0-opt
into  rurik.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug21698


sql/sql_select.cc:
  Auto merged
2006-09-07 11:10:36 -07:00
unknown
8716670229 Fixed bug #21698: erroneously a field could be replaced by an
equal constant under any circumstances.
In fact this substitution can be allowed if the field is
not of a type string or if the field reference serves as 
an argument of a comparison predicate.  


mysql-test/r/func_str.result:
  Added test cases for bug #21698.
mysql-test/r/heap_hash.result:
  Adjusted results after the fix for bug #21198.
mysql-test/t/func_str.test:
  Added test cases for bug #21698.
sql/item.cc:
  Fixed bug #21198.
  Added a method to check whether a field reference can be 
  substituted for a constant equal to the field.
  This substitution is allowed if the field is not of a type string
  or if the field reference serves as an argument of a comparison
  predicate.
sql/item.h:
  Fixed bug #21698.
  Added a new virtual transformation method for a item 'compile'
  with two callback function parameters.
  Added a new virtual method 'subst_argument_checker' to be used
  as an amnalyzer method.
  This method is supposed to set its in/out argument to NULL for
  the nodes where substitution of a string field for a constant
  is not valid.
sql/item_cmpfunc.cc:
  Fixed bug #21698.
  Added an implementation of the compile method for class Item_cond.
  First it processes the Item_cond node with a callback function and if
  the latter returns TRUE it proceeds with a transformation performed by
  another callback function.
sql/item_cmpfunc.h:
  Fixed bug #21698.
  Added the implementations of 'subst_argument_checker'
  for the Item_func and Item_cond classes.
  This method is supposed to set its in/out argument to NULL for
  the nodes where substitution of a string field for a constant
  is not valid.
  Added the declaration of an implementation of the compile method for 
  class Item_cond.
  First it processes the Item_cond node with a callback function and if
  the latter returns TRUE it proceeds with a transformation performed by
  another callback function.
sql/item_func.cc:
  Fixed bug #21698.
  Added an implementation of the compile method for class Item_func.
  First it processes the Item_func node with a callback function and if
  the latter returns TRUE it proceeds with a transformation performed by
  another callback function.
sql/item_func.h:
  Fixed bug #21698.
  Added the declaration of the implementation of the compile method for
  class Item_func.
  First it processes the Item_func node with a callback function and if
  the latter returns TRUE it proceeds with a transformation performed by
  another callback function.
sql/sql_select.cc:
  Fixed bug #21698.
  Limited the conditions at which a field can be substituted 
  a for an equal constant in a formula. 
  This substitution is allowed if the field is not of a type string
  or if the field reference serves as an argument of a comparison
  predicate.
2006-09-07 11:06:37 -07:00
unknown
86ce30966e Merge chilla.local:/home/mydev/mysql-4.1-bug14400
into  chilla.local:/home/mydev/mysql-5.0-bug14400


mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
myisam/mi_rkey.c:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Manual merge from 4.1
2006-09-07 18:46:37 +02:00
unknown
a6a1aba27a Removing sleeps; rpl_row_basic_8partition falls from 2 minutes
15 seconds to less than a second.
The sleeps used to be necessary but not anymore as NDB has been fixed
wrt sync_slave_with_master.


mysql-test/include/rpl_multi_engine3.inc:
  Sleeps are not necessary anymore
  because NDB has been fixed wrt sync_slave_with_master.
2006-09-07 18:01:42 +02:00
unknown
203d099962 Merge chilla.local:/home/mydev/mysql-4.0-bug14400
into  chilla.local:/home/mydev/mysql-4.1-bug14400


myisam/mi_rkey.c:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Manual merge from 4.0
mysql-test/r/myisam.result:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Manual merge from 4.0
mysql-test/t/myisam.test:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Manual merge from 4.0
2006-09-07 16:46:20 +02:00
unknown
71314617ae Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
Additional fix for full keys and test case.


myisam/mi_rkey.c:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Additional fix for full keys.
mysql-test/r/myisam.result:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Additional results.
mysql-test/t/myisam.test:
  Bug#14400 - Query joins wrong rows from table which is subject of
              "concurrent insert"
  Additional test case.
2006-09-07 15:39:31 +02:00
unknown
dc6243e588 after merge fix
include/mysql_com.h:
  USERNAME_LENGTH is changed to USERNAME_BYTE_LENGTH
mysql-test/r/ctype_utf8.result:
  result fix
mysql-test/t/ctype_utf8.test:
  test fix
sql/sp.cc:
  NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
  USERNAME_LENGTH constant is changed to USERNAME_BYTE_LENGTH for user name buffer
sql/sp_head.cc:
  NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
  USERNAME_LENGTH constant is changed to USERNAME_BYTE_LENGTH for user name buffer
sql/sql_acl.cc:
  NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
  USERNAME_LENGTH constant is changed to USERNAME_BYTE_LENGTH for user name buffer
sql/sql_class.h:
  NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
sql/sql_parse.cc:
  NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
  Function check_string_length() is fixed, now it check string lenght in symbols
sql/sql_repl.h:
  NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
  USERNAME_LENGTH constant is changed to USERNAME_BYTE_LENGTH for user name buffer
2006-09-07 18:09:49 +05:00
unknown
146049d2e4 Merge mysql.com:/home/gluh/MySQL/Merge/4.1-merge
into  mysql.com:/home/gluh/MySQL/Merge/5.0


include/mysql_com.h:
  Auto merged
mysql-test/t/ctype_utf8.test:
  Auto merged
sql/item_func.h:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_strfunc.h:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/table.cc:
  Auto merged
mysql-test/r/ctype_utf8.result:
  manual merge
sql/sql_acl.cc:
  manual merge
2006-09-07 15:17:46 +05:00
unknown
82ad4ae19d Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-kt
2006-09-07 04:57:46 +02:00
unknown
51e8434e4d make partition_mgm test deterministic wrt results of ls
mysql-test/t/partition_mgm.test:
  make partition_mgm test deterministic
2006-09-07 04:18:17 +02:00
unknown
53a7a2670c Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  salvation.intern.azundris.com:/home/tnurnberg/21913/my51-21913
2006-09-07 02:58:47 +02:00
unknown
0f20c8a41b Merge rama.(none):/home/jimw/my/mysql-5.1-19874
into  rama.(none):/home/jimw/my/mysql-5.1-clean


sql/sql_parse.cc:
  Auto merged
2006-09-06 12:58:48 -07:00
unknown
c463d2cd7b Merge bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-4.1-maint
2006-09-06 14:44:59 -04:00
unknown
4b8526869f Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  salvation.intern.azundris.com:/home/tnurnberg/21913/my51-21913
2006-09-06 20:32:23 +02:00
unknown
5e9324a838 Fix merge problems; work around disparate "ls" behaviors.
mysql-test/r/ctype_recoding.result:
  Case change in 5.1.
mysql-test/t/heap_btree.test:
  Fixes bad merge.
mysql-test/t/partition.test:
  Split terrible "ls" test into two parts so that the different sorting orders
  of sundry OSes don't affect the output.
2006-09-06 14:23:39 -04:00
unknown
004464a04a Updated test case due to pb test failure on sol10-sparc-a' -max 2006-09-06 19:42:01 +02:00
unknown
06ab97125e Merge romeo.(none):/home/bkroot/mysql-5.1-new-rpl
into  romeo.(none):/home/bk/b17620-mysql-5.1-new-rpl


sql/log_event.cc:
  Auto merged
2006-09-06 19:34:02 +02:00
unknown
452a885e1f Merge production.mysql.com:/usersnfs/rburnett/tmp_merge2
into  production.mysql.com:/usersnfs/rburnett/mysql-5.1


libmysqld/libmysqld.def:
  Auto merged
mysql-test/t/handler.test:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql/sql_select.cc:
  Auto merged
2006-09-06 18:27:26 +02:00
unknown
d247c70d26 BUG#17620: Row-based replication fails when query cache enabled on slave
Invalidating query cache when processing rows for a statement on the slave.


mysql-test/r/rpl_row_basic_11bugs.result:
  Result file change
mysql-test/t/rpl_row_basic_11bugs.test:
  Adding test to trigger failure
sql/log_event.cc:
  Adding code to invalidate the query cache just after opening the tables
  for processing the rows of one statement.
2006-09-06 17:45:27 +02:00
unknown
22c3e7b4e1 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.
 


mysql-test/r/group_by.result:
  Adjusted results after the fix for bug #5500.
mysql-test/r/information_schema.result:
  Adjusted results after the fix for bug #5500.
mysql-test/r/olap.result:
  Adjusted results after the fix for bug #5500.
mysql-test/r/range.result:
  Adjusted results after the fix for bug #5500.
mysql-test/r/view.result:
  Added a test case for bug #5500.
  Adjusted other results.
mysql-test/r/view_grant.result:
  Adjusted results after the fix for bug #5500.
mysql-test/t/view.test:
  Added a test case for bug #5500.
2006-09-06 08:21:43 -07:00
unknown
9a204629f9 Removed unused variable "glob_cygwin_shell" 2006-09-06 15:06:22 +02:00
unknown
b4baded858 Merge jmiller@bk-internal.mysql.com:/home/bk/mysql-5.1-ndb
into  mysql.com:/data2/mysql-5.1-new-ndb
2006-09-06 14:58:28 +02:00
unknown
23a46f410f Merge bk-internal.mysql.com:/data0/bk/mysql-5.1-runtime
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-wl3337


client/mysqltest.c:
  Auto merged
libmysqld/Makefile.am:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/events.result:
  Auto merged
mysql-test/r/not_embedded_server.result:
  Auto merged
mysql-test/t/events.test:
  Auto merged
sql/CMakeLists.txt:
  Auto merged
sql/Makefile.am:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
2006-09-06 14:35:27 +02:00
unknown
325c699eff Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  gbichot3.local:/home/mysql_src/mysql-5.1-2
2006-09-06 12:52:59 +02:00
unknown
c3cef377fe New way to fix BUG#19243 "wrong LAST_INSERT_ID() after ON DUPLICATE KEY UPDATE".
This bug report was two problems:
1) LAST_INSERT_ID() returns a value which does not exist in the table
2) the reporter would want it to return the autoinc id of the updated
row.
1) is a real bug, 2) is a feature request.
In July I implemented 2) in 5.1 (which automatically fixes 1).
This has not yet been documented or released, so is changeable.
Precisely, recently Paul and a user found an easy workaround to give
2), which works in 4.1-5.0-5.1. So I can revert my code for 2),
because it's not needed, that's what I do here;
we forget about 2) (we will document the workaround).
But when I revert my code for 2), 1) comes back. We solve 1) by saying
that if INSERT ON DUPLICATE KEY UPDATE updates a row, it's like a
regular UPDATE: LAST_INSERT_ID() should not be affected (instead of
returning a non-existent value).
So note: no behaviour change compared to the last released 5.1; just
a bugfix for 1).


mysql-test/r/innodb_mysql.result:
  result update
mysql-test/t/innodb_mysql.test:
      test for the new way to fix BUG#19243: that if INSERT ON DUPLICATE
      KEY UPDATE updates a row, SELECT LAST_INSERT_ID() is not affected.
      Test of the workaround for people who want SELECT LAST_INSERT_ID()
      to return the autoinc id of the updated row.
sql/sql_insert.cc:
  No need to change LAST_INSERT_ID() if INSERT ON DUPLICATE KEY UPDATE
  updates a row, there is a workaround to achieve this without changing
  code: just add "autoinc_col=LAST_INSERT_ID(autoinc_col)" to your
  ON DUPLICATE KEY UPDATE clause.
  Prevent LAST_INSERT_ID() to contain an inexistent value in this case:
  if the row is updated it should be like a regular UPDATE: don't
  affect LAST_INSERT_ID() (achieved by marking that we didn't generate
  an id for this row: insert_id_for_cur_row=0).
2006-09-06 12:50:42 +02:00