Commit graph

51165 commits

Author SHA1 Message Date
unknown
1ebb563422 Bug #31177: Server variables can't be set to their current values
fixes for SLES10


mysql-test/r/change_user.result:
  It's unsigned.
mysys/my_getopt.c:
  Failsafe no longer needed, we handle signedness correctly now.
sql/set_var.cc:
  ha_rows can be derived from all kinds of types, but
  they're all unsigned. Display it as such.
tests/mysql_client_test.c:
  cannot easily check this here due to types.
  check with Alik whether we need this on top
  of change_user.test.
2007-12-10 08:12:41 +01:00
unknown
85eed9de26 Bug#31177: Server variables can't be set to their current values
initialise limits properly for getopt_ll_limit()
(fixes falcon_opt test)


sql/sql_plugin.cc:
  initialise limits properly for getopt_ll_limit()
2007-12-06 18:03:30 +01:00
unknown
f448c62558 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/31177/51-31177
2007-12-06 08:56:04 +01:00
unknown
55dea2fc98 Merge mysql.com:/misc/mysql/31177/50-31177
into  mysql.com:/misc/mysql/31177/51-31177


BitKeeper/deleted/.del-ps_6bdb.result:
  Auto merged
mysys/my_getopt.c:
  Auto merged
mysql-test/r/ps_2myisam.result:
  manual merge
mysql-test/r/ps_3innodb.result:
  manual merge
mysql-test/r/ps_4heap.result:
  manual merge
mysql-test/r/ps_5merge.result:
  manual merge
mysql-test/suite/ndb/r/ps_7ndb.result:
  manual merge
mysql-test/t/variables.test:
  manual merge
sql/mysqld.cc:
  NULL
sql/item_func.cc:
  Signedness is already propagated properly for user-vars in 5.1.
sql/set_var.cc:
  add correct handling of signedness when assigning 64-bit
  values to sysvars.
sql/set_var.h:
  cleanliness.
2007-12-06 01:46:49 +01:00
unknown
4618d68d6d Bug#31177: Server variables can't be set to their current values
additional fixes for BDB and correct assignment of both signed
and unsigned 64-bit data to unsigned system variables


mysql-test/r/ps_2myisam.result:
  account for UNSIGNED_FLAG
mysql-test/r/ps_3innodb.result:
  account for UNSIGNED_FLAG
mysql-test/r/ps_4heap.result:
  account for UNSIGNED_FLAG
mysql-test/r/ps_5merge.result:
  account for UNSIGNED_FLAG
mysql-test/r/ps_6bdb.result:
  account for UNSIGNED_FLAG
mysql-test/r/ps_7ndb.result:
  account for UNSIGNED_FLAG
mysys/my_getopt.c:
  We have correct signed/unsigned information now, so we no longer
  need to err on the side of caution.
sql/item_func.cc:
  Copy unsigned info over from entry so the item's data
  correctly describe it.
sql/mysqld.cc:
  BDB log buffer size: default can't be less than minimum
sql/set_var.cc:
  Handle signedness of in-values correctly when assigning to
  unsigned types, all the way up to 64-bit. Use handler from
  all three unsigned sysvar types.
sql/set_var.h:
  thd_ulonglong: Override default check with one for unsigned types
2007-12-06 01:28:01 +01:00
unknown
3d91b3ac61 Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  dl145s.mysql.com:/data0/mhansson/my51-bug30234
2007-12-04 16:53:55 +01:00
unknown
7d89be3f4f test case fix 2007-12-04 12:48:11 +04:00
unknown
09bf5b9169 Bug#31177: Server variables can't be set to their current values
additional fixes for 64-bit
---
Merge mysql.com:/misc/mysql/31177/50-31177
into  mysql.com:/misc/mysql/31177/51-31177
---
Bug#31177: Server variables can't be set to their current values

additional 5.1 fixes (for plugins)


mysql-test/t/variables.test:
  replace 32-bit and 64-bit values
  ---
  manual merge
mysys/my_getopt.c:
  'mod' no longer used.
  on 64-bit, limit to (signed) (LONG)LONG_MAX to prevent badness
  in classes using longlong.
sql/sql_plugin.cc:
  handle signedness in plugin-vars so we won't hit an assert()
  in getopt_*_limit_value()
2007-12-04 01:17:52 +01:00
unknown
714d0dcb44 Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  dl145s.mysql.com:/data0/mhansson/my51-bug30234


mysql-test/r/delete.result:
  Auto merged
mysql-test/t/delete.test:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-12-03 12:34:36 +01:00
unknown
062af09eb5 Bug#30234: Post-null-merge fix
Restores files that were automerged during null merge.


mysql-test/r/delete.result:
  Bug#30234: Post-null-merge fix
mysql-test/t/delete.test:
  Bug#30234: Post-null-merge fix
2007-12-03 11:39:49 +01:00
unknown
d67022a227 Merge linux-st28.site:/home/martin/mysql/src/bug30234/my50-bug30234
into  linux-st28.site:/home/martin/mysql/src/bug30234/my51-bug30234
2007-12-03 11:31:44 +01:00
unknown
b4a146a6eb Bug#30234: Unexpected behavior using DELETE with AS and USING
Anti-patch. This patch undoes the previously pushed patch. It is 
null-merged in versions 5.1 and above since there the original 
patch is still desired.


mysql-test/r/delete.result:
  Bug#30234: Anti-patch
mysql-test/t/delete.test:
  Bug#30234: Anti-patch
sql/sql_yacc.yy:
  Bug#30234: Anti-patch
2007-12-03 10:08:58 +01:00
unknown
53f7db282d Bug#31177: Server variables can't be set to their current values
additional fixes for 64-bit


mysql-test/t/variables.test:
  replace 32-bit and 64-bit values
mysys/my_getopt.c:
  'mod' no longer used.
  on 64-bit, limit to (signed) (LONG)LONG_MAX to prevent badness
  in classes using longlong.
2007-12-03 10:01:56 +01:00
unknown
d892e68269 Bug#31177: Server variables can't be set to their current values
extra 5.1 fixes


mysql-test/t/order_fill_sortbuf-master.opt:
  If we set the variable below minimum, we'll get a warning
  at start-up that we don't want in the tests.
2007-12-02 05:18:34 +01:00
unknown
70cb41a240 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/31177/51-31177


client/mysql.cc:
  Auto merged
mysql-test/r/index_merge_myisam.result:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Auto merged
mysql-test/r/ps.result:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
mysql-test/r/type_bit.result:
  Auto merged
mysql-test/t/variables.test:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_plugin.cc:
  Auto merged
2007-12-02 03:19:07 +01:00
unknown
58f10e554a Bug#31177: Server variables can't be set to their current values
5.1+ specific fixes (plugins etc.)


include/my_getopt.h:
  make both ull and ll global
mysql-test/r/index_merge_myisam.result:
  we throw warnings to the client, yea, verily
mysql-test/r/innodb.result:
  we throw warnings to the client, yea, verily
mysql-test/r/variables.result:
  we throw warnings to the client, yea, verily
mysql-test/t/variables.test:
  correct result, is multiple of variable's block_size now
mysys/my_getopt.c:
  export getopt_ll_limit_value(), check for integer wrap-around
  in it, same as in ull variant.  Only print warnings to reporter
  when caller didn't ask for diagnostics, otherwise assume caller
  will handle any warnings (id est, throw them client-wards)
sql/mysqld.cc:
  correct signedness of "concurrent-insert"
sql/sql_plugin.cc:
  Throw sys-var out-of-range warnings client-wards for
  plugins, too.
2007-12-01 19:55:06 +01:00
unknown
54ad7d88d0 Merge mysql.com:/misc/mysql/31177/50-31177
into  mysql.com:/misc/mysql/31177/51-31177


include/m_string.h:
  Auto merged
include/my_getopt.h:
  Auto merged
mysql-test/r/delayed.result:
  Auto merged
mysql-test/r/innodb.result:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Auto merged
mysql-test/r/key_cache.result:
  Auto merged
mysql-test/r/ps.result:
  Auto merged
mysql-test/r/type_bit.result:
  Auto merged
mysql-test/r/type_bit_innodb.result:
  Auto merged
mysql-test/t/variables.test:
  Auto merged
sql/mysql_priv.h:
  Auto merged
BitKeeper/deleted/.del-index_merge.result:
  Auto merged
sql/set_var.cc:
  Auto merged
mysql-test/r/variables.result:
  manual merge
client/mysql.cc:
  manual merge
client/mysqltest.c:
  manual merge
mysql-test/r/subselect.result:
  manual merge
mysys/my_getopt.c:
  manual merge
sql/mysqld.cc:
  manual merge
2007-12-01 15:53:56 +01:00
unknown
25886c069e Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/32707/51-32707


sql/protocol.cc:
  Auto merged
2007-12-01 13:10:59 +01:00
unknown
4e89776619 Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/mrg/my51-mrg
2007-12-01 13:13:16 +04:00
unknown
2850d7bd04 merging 2007-12-01 13:07:28 +04:00
unknown
9b1665b18c Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/32180/51-32180
2007-12-01 02:02:13 +01:00
unknown
51f5ac6b29 Merge mysql.com:/home/hf/work/mrg/my50-mrg
into  mysql.com:/home/hf/work/mrg/my51-mrg


sql/mysqld.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
storage/federated/ha_federated.cc:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
include/mysql_com.h:
  merging
libmysqld/lib_sql.cc:
  merging
mysql-test/r/federated.result:
  merging
mysql-test/t/federated.test:
  merging
storage/federated/ha_federated.h:
  mergin
2007-12-01 00:46:44 +04:00
unknown
4100e3e4c2 Merge mysql.com:/home/hf/work/mrg/my41-mrg
into  mysql.com:/home/hf/work/mrg/my50-mrg


include/mysql_com.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-11-30 22:29:34 +04:00
unknown
11c1729421 Merge mysql.com:/home/hf/work/32624/my50-32624
into  mysql.com:/home/hf/work/mrg/my50-mrg
2007-11-30 22:28:23 +04:00
unknown
104bba773b Merge mysql.com:/home/hf/work/32374/my50-32374
into  mysql.com:/home/hf/work/mrg/my50-mrg
2007-11-30 22:26:48 +04:00
unknown
65b77b9df6 Merge mysql.com:/home/hf/work/31890/my51-31890
into  mysql.com:/home/hf/work/mrg/my51-mrg


mysql-test/r/partition.result:
  SCCS merged
mysql-test/t/partition.test:
  merging
2007-11-30 22:25:03 +04:00
unknown
69f539affb Merge mysql.com:/home/hf/work/30430/my51-30430
into  mysql.com:/home/hf/work/mrg/my51-mrg
2007-11-30 22:19:05 +04:00
unknown
6959d20472 Bug #30430 crash:./mtr --embedded-server --ps-protocol cache_innodb func_misc...
PS-protocol data is stored in different format - the MYSQL_RECORDS->data
contains the link to the record content, not to array of the links to
the field's contents. So we have to handle it separately for
embedded-server query cache.


libmysqld/emb_qcache.cc:
  Bug #30430 crash:./mtr --embedded-server --ps-protocol cache_innodb func_misc...
  
  ps_protocol data now stored in it's particular way.
libmysqld/emb_qcache.h:
  Bug #30430 crash:./mtr --embedded-server --ps-protocol cache_innodb func_misc...
  
  Querycache_stream::load_char/store_char  ->
    load_uchar/store_uchar
mysql-test/r/func_misc.result:
  Bug #30430 crash:./mtr --embedded-server --ps-protocol cache_innodb func_misc...
  
  test result
mysql-test/t/func_misc.test:
  Bug #30430 crash:./mtr --embedded-server --ps-protocol cache_innodb func_misc...
  
  the test uses t2 table, so let's make sure it doesn't exist befor the start
2007-11-30 22:17:11 +04:00
unknown
d87a75c15d Merge mysql.com:/home/hf/work/31900/my41-31900
into  mysql.com:/home/hf/work/mrg/my41-mrg
2007-11-30 22:08:29 +04:00
unknown
c6f076f64a Merge polly.(none):/home/kaa/src/opt/bug9481/my51-bug9481
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt


sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
2007-11-30 18:49:29 +03:00
unknown
f904aab43e Merge polly.(none):/home/kaa/src/opt/bug9481/my50-bug9481
into  polly.(none):/home/kaa/src/opt/bug9481/my51-bug9481


sql/sql_class.h:
  Null merge.
sql/sql_insert.cc:
  Null merge.
tests/mysql_client_test.c:
  Null merge.
2007-11-30 18:27:00 +03:00
unknown
ff7e7fcb67 Bug#32775 problems with SHOW EVENTS and Information_Schema
removed unnecessary privilege checks for I_S schema


mysql-test/r/information_schema.result:
  test result
mysql-test/t/information_schema.test:
  test case
sql/events.cc:
  There is no events in I_S so we don't need to execute check_access here.
sql/sql_parse.cc:
  removed unnecessary check
2007-11-30 18:48:22 +04:00
unknown
cef31e05e5 Bug #32374 crash with filesort when selecting from federated table and view.
filesort() uses file->estimate_rows_upper_bound() call to allocate
internal buffers. If this function returns a value smaller than
a number of row that will be returned later in find_all_keys(),
that can cause server crash.
Fixed by implementing ha_federated::estimate_rows_upper_bound() to
return maximum possible number of rows.
Present estimation for FEDERATED always returns 0 if the linked to the VIEW.


mysql-test/r/federated.result:
  Bug #32374 crash with filesort when selecting from federated table and view.
  
  test result
mysql-test/t/federated.test:
  Bug #32374 crash with filesort when selecting from federated table and view.
  
  test case
sql/ha_federated.cc:
  Bug #32374 crash with filesort when selecting from federated table and view.
  
  ha_federated::estimate_rows_upper_bound() implemented
sql/ha_federated.h:
  Bug #32374 crash with filesort when selecting from federated table and view.
  
  ha_federated::estimate_rows_upper_bound() interface
2007-11-30 17:08:00 +04:00
unknown
945f29aa67 Merge mysql.com:/misc/mysql/32707/50-32707
into  mysql.com:/misc/mysql/32707/51-32707


sql/protocol.cc:
  manual merge
2007-11-30 12:48:03 +01:00
unknown
a5efa43c7c Merge mysql.com:/misc/mysql/32707/41-32707
into  mysql.com:/misc/mysql/32707/50-32707


sql/protocol.cc:
  manual merge
2007-11-30 12:44:28 +01:00
unknown
89a208850a Bug#31177: Server variables can't be set to their current values
Default values of variables were not subject to upper/lower bounds
and step, while setting variables was. Bounds and step are also
applied to defaults now; defaults are corrected quietly, values
given by the user are corrected, and a correction-warning is thrown
as needed. Lastly, very large values could wrap around, starting
from 0 again. They are bounded at the maximum value for the
respective data-type now if no lower maximum is specified in the
variable's definition.


client/mysql.cc:
  correct maxima in options array
client/mysqltest.c:
  adjust minimum for "sleep" option so default value is no longer
  out of bounds.
include/m_string.h:
  ullstr() - the unsigned brother of llstr()
include/my_getopt.h:
  Flag if we bounded the value (that is, correct anything aside from
  making value a multiple of block-size)
mysql-test/r/delayed.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/index_merge.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/innodb.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/innodb_mysql.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/key_cache.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/packet.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/ps.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/subselect.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/type_bit.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/type_bit_innodb.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/variables.result:
  correct results: bounds and step apply to variables' default values, too
mysql-test/t/variables.test:
  correct results: bounds and step apply to variables' default values, too
mysys/my_getopt.c:
  - apply bounds/step to default values of variables (based on work by serg)
  - print complaints about incorrect values for variables (truncation etc.,
    by requestion of consulting)
  - if no lower maximum is specified in variable definition, bound unsigned
    values at their maximum to prevent wrap-around
  - some calls to error_reporter had a \n, some didn't. remove \n from calls,
    let reporter-function handle it, so the default reporter behaves like that
    in mysqld
sql/mysql_priv.h:
  correct RANGE_ALLOC_BLOCK_SIZE (cleared with monty)
sql/mysqld.cc:
  correct maxima to correct data-type.
  correct minima where higher than default.
  correct range-alloc-block-size.
  correct inno variables so GET_* corresponds to actual variable's type.
sql/set_var.cc:
  When the new value for a variable is out of bounds, we'll send the
  client a warning (but not if the value was simply not a multiple of
  'blocksize').  sys_var_thd_ulong had this, sys_var_long_ptr_global
  didn't; broken out and streamlined to avoid duplication of code.
strings/llstr.c:
  ullstr() - the unsigned brother of llstr()
2007-11-30 06:32:04 +01:00
unknown
23e402bf45 Bug #29085 A small double precision number becomes zero.
Denormalized DOUBLE-s can't be properly handled by old MIPS processors.
So we need to enable specific mode for them so IRIX will do use
software round to handle such numbers. 


sql/mysqld.cc:
  Bug #29085 A small double precision number becomes zero.
  
  reset_floating_point_exeption() renamed as set_proper_floating_point_mode()
  #ifdef __sgi code added to enable denormalized DOUBLE-s on IRIX
2007-11-29 14:52:36 +04:00
unknown
1d062682f5 Bug #32624 Error with multi queries in MySQL embedded server 5.1.22.
server status wasn't properly sent to the client after the error
by the embedded server. Wasn't noticed before as one usually stopped
retrieving results after he gets an error.


libmysqld/lib_sql.cc:
  Bug #32624 Error with multi queries in MySQL embedded server 5.1.22.
  
  server status transferred to the client after errors
sql/protocol.cc:
  Bug #32624 Error with multi queries in MySQL embedded server 5.1.22.
  
  set server status before net_send_error_packet() call as this
  function sends it to the client in the embedded server
tests/mysql_client_test.c:
  Bug #32624 Error with multi queries in MySQL embedded server 5.1.22.
  
  testcase added
2007-11-29 10:37:07 +04:00
unknown
f4a7464f1e Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/psergey/mysql-5.1-bug32772
2007-11-28 22:43:52 +03:00
unknown
b9d8e34925 Bug#25629 CREATE TABLE LIKE does not work with INFORMATION_SCHEMA
added new func mysql_create_like_schema_frm() which creates frm file based on I_S table


mysql-test/r/create.result:
  test result
mysql-test/t/create.test:
  test case
sql/sql_table.cc:
  added new func mysql_create_like_schema_frm() which creates frm file based on I_S table
2007-11-28 15:37:00 +04:00
unknown
b5c0cf454d BUG#32772: partition crash 1: enum column
The bug was that for ordered index scans, ha_partition::index_init() did
not put index columns into table->read_set if the underlying storage 
engine did not have HA_PARTIAL_COLUMN_READ flag. 
This was causing assertion failure when handle_ordered_index_scan() tried
to sort the records according to index order.

Fixed by making ha_partition::index_init() put index columns into table->read_set
for all ordered scans. 


mysql-test/r/partition.result:
  BUG#32772: partition crash 1: enum column
  - Testcase
mysql-test/t/partition.test:
  BUG#32772: partition crash 1: enum column
  - Testcase
sql/ha_partition.cc:
  BUG#32772: partition crash 1: enum column
  - Make ha_partition::index_init() include index columns in the read_set
    whenever an ordered scan is initialized, no matter if
    HA_PARTIAL_COLUMN_READ is set or not.
2007-11-28 03:02:05 +03:00
unknown
7c0db983ad Bug#32707: misdimensioned buffer in protocol layer
Miscalculation in protocol-layer: size buffer correctly so
even really long error messages cannot overflow our buffer.


sql/protocol.cc:
  size buffer correctly so really long error messages cannot overflow it.
2007-11-27 18:24:24 +01:00
unknown
9d503cea20 Merge magare.gmz:/home/kgeorge/mysql/work/B30355-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B30355-5.1-opt


include/mysql_com.h:
  Auto merged
mysql-test/r/udf.result:
  Auto merged
mysql-test/t/udf.test:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/udf_example.c:
  Auto merged
2007-11-27 17:19:51 +02:00
unknown
63b6516953 Bug #30355: Incorrect ordering of UDF results
There's currently no way of knowing the determinicity of an UDF.
And the optimizer and the sequence() UDFs were making wrong
assumptions about what the is_const member means.
Plus there was no implementation of update_system_tables()
causing the optimizer to overwrite the information returned by
the <udf>_init function.

Fixed by equating the assumptions about the semantics of 
is_const and providing a implementation of update_used_tables().
Added a TODO item for the UDF API change needed to make a better 
implementation.


include/mysql_com.h:
  Bug #30355: comment added
mysql-test/r/udf.result:
  Bug #30355: test case
mysql-test/t/udf.test:
  Bug #30355: test case
sql/item_func.cc:
  Bug #30355: keep const_item_cache and used_tables_cache in sync
sql/item_func.h:
  Bug #30355: 
   - a better implementation of update_used_tables()
   - keep const_item_cache and used_tables_cache in sync
sql/udf_example.c:
  Bug #30355: Wrong value for const_item fixed.
2007-11-27 17:16:52 +02:00
unknown
3058e02573 Many files:
Test case for the bug#31048 is moved to the subselect_notembedded tests as the embedded server isn't affected by this bug.


mysql-test/r/subselect.result:
  Test case for the bug#31048 is moved to the subselect_notembedded tests as the embedded server isn't affected by this bug.
mysql-test/r/subselect_notembedded.result:
  Test case for the bug#31048 is moved to the subselect_notembedded tests as the embedded server isn't affected by this bug.
mysql-test/t/subselect.test:
  Test case for the bug#31048 is moved to the subselect_notembedded tests as the embedded server isn't affected by this bug.
mysql-test/t/subselect_notembedded.test:
  Test case for the bug#31048 is moved to the subselect_notembedded tests as the embedded server isn't affected by this bug.
2007-11-26 22:21:46 +03:00
unknown
8ae8b2e5ef Merge polly.(none):/home/kaa/src/opt/bug28837/my51-bug29131
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt


storage/myisam/ha_myisam.cc:
  Auto merged
mysql-test/r/merge.result:
  Manual merge.
mysql-test/r/myisam.result:
  Manual merge.
mysql-test/t/merge.test:
  Manual merge.
mysql-test/t/myisam.test:
  Manual merge.
2007-11-26 20:15:30 +03:00
unknown
ed48025916 Merge polly.(none):/home/kaa/src/opt/bug28837/my50-bug29131
into  polly.(none):/home/kaa/src/opt/bug28837/my51-bug29131


mysql-test/r/merge.result:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
mysql-test/r/myisam.result:
  Manual merge.
mysql-test/t/myisam.test:
  Manual merge.
storage/myisam/ha_myisam.cc:
  Manual merge.
storage/myisammrg/ha_myisammrg.cc:
  Manual merge.
2007-11-26 20:02:04 +03:00
unknown
67bf39f241 Fix for bug #28837: MyISAM storage engine error (134) doing delete with
self-join

When doing DELETE with self-join on a MyISAM or MERGE table, it could
happen that a record being retrieved in join_read_next_same() has
already been deleted by previous iterations. That caused the engine's
index_next_same() method to fail with HA_ERR_RECORD_DELETED error and
the whole DELETE query to be aborted with an error.

Fixed by suppressing the HA_ERR_RECORD_DELETED error in
hy_myisam::index_next_same() and ha_myisammrg::index_next_same(). Since
HA_ERR_RECORD_DELETED can only be returned by MyISAM, there is no point
in filtering this error in the SQL layer.


mysql-test/r/merge.result:
  Added a test case for bug #28837.
mysql-test/r/myisam.result:
  Added a test case for bug #28837.
mysql-test/t/merge.test:
  Added a test case for bug #28837.
mysql-test/t/myisam.test:
  Added a test case for bug #28837.
sql/ha_myisam.cc:
  Skip HA_ERR_RECORD_DELETED silently when calling mi_rnext_same().
sql/ha_myisammrg.cc:
  Skip HA_ERR_RECORD_DELETED silently when calling mi_rnext_same().
2007-11-26 18:58:54 +03:00
unknown
1836b73600 5.0 version of the fix for bug #9481: mysql_insert_id() returns 0 after
insert ... select.

The 5.0 manual page for mysql_insert_id() does not mention anything
about INSERT ... SELECT, though its current behavior is incosistent
with what the manual says about the plain INSERT.

Fixed by changing the AUTO_INCREMENT and mysql_insert_id() handling
logic in INSERT ... SELECT to be consistent with the INSERT behavior,
the manual, and the changes in 5.1 introduced by WL3146:


- mysql_insert_id() now returns the first automatically generated
AUTO_INCREMENT value that was successfully inserted by INSERT ... SELECT

-  if an INSERT ... SELECT statement is executed, and no automatically
generated value is successfully inserted, mysql_insert_id() now returns
the ID of the last inserted row.


sql/sql_class.h:
  Replaced last_insert_id with autoinc_value_of_last_inserted_row to be
  consistent with 5.1 code.
sql/sql_insert.cc:
  Revised the AUTO_INCREMENT and mysql_insert_id() handling logic in
  INSERT ... SELECT to be consistent with INSERT behavior, the manual, and
  changes in 5.1 introduced by WL3146:
  
  - mysql_insert_id() now returns the first automatically generated
  AUTO_INCREMENT value that was successfully inserted;
  
  -  if an INSERT ... SELECT statement is executed, and no automatically
  generated value is successfully inserted, mysql_insert_id() now returns
  the ID of the last inserted row.
tests/mysql_client_test.c:
  Backported the test cases related to INSERT ... SELECT and
  mysql_insert_id() from WL3146 patch to 5.0.
2007-11-26 18:36:05 +03:00
unknown
185b9efe8c merge of 5.0-opt to 5.1-opt 2007-11-26 16:06:46 +02:00