Commit graph

48621 commits

Author SHA1 Message Date
unknown
8c56d8e89c Merge olga.mysql.com:/home/igor/mysql-5.0-rpl
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-merge
2007-07-13 19:05:30 -07:00
unknown
393e0f6541 Fix a compiler warning. 2007-07-14 05:22:24 +04:00
unknown
9a52e13ccb Fix a warning in a non-debug build. 2007-07-14 04:38:21 +04:00
unknown
31ea7d042b A follow up after the patch for Bug#21074 - even though
we now have exclusive name lock on the table name in mysql_rm_table_part2,
we still should keep LOCK_open - some storage engines are not
ready for locking scope change and assume that LOCK_open is kept.
Still, the binary logging and query cache invalidation calls
moved out of LOCK_open scope.
Fixes some of the broken 5.1-runtime tests (tests break on asserts).


sql/ha_ndbcluster.cc:
  Do not lock LOCK_open for mysql_rm_table_part2 - it does that
  for us now.
sql/mysql_priv.h:
  Remove an unused flag.
sql/sql_class.h:
  Fix an unrelated compiler warning.
sql/sql_db.cc:
  Adjust to the changed signature.
sql/sql_table.cc:
  mysql_rm_table_part2: we need to keep LOCK_open while calling
  storage engine functions, even though now 
  we have an exclusive lock on the table name. Some of them assume that it's 
  kept and attempt to unlock it.
2007-07-14 02:04:48 +04:00
unknown
11350e0767 correct cluster support check 2007-07-13 22:45:05 +02:00
unknown
fea623a1b9 symlink.test, symlink.result:
Minor fix for test case of bug #29325 to make emb test happy.


mysql-test/t/symlink.test:
  Minor fix for test case of bug #29325 to make emb test happy.
mysql-test/r/symlink.result:
  Minor fix for test case of bug #29325 to make emb test happy.
2007-07-14 01:34:46 +05:00
unknown
a0cf0927af Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-maint


mysql-test/suite/ndb/t/ndb_multi.test:
  Auto merged
mysql-test/suite/ndb/t/ndb_multi_row.test:
  Auto merged
2007-07-13 22:22:02 +02:00
unknown
d8effbe368 avoid multiple defines of server1/2 2007-07-13 22:21:19 +02:00
unknown
e4b46e7af6 Fix for bug #29253: csv table reportedly marked as crashed
Problem: the data file changes made during delete/update are not visible to 
other threads as the file is reopened, so reading data 
with old descriptors might miss the changes.

Fix: reopen the data file before reading if it was reopened during 
delete/update to ensure there's no data behind.

Note: there's no simple test case.


storage/csv/ha_tina.cc:
  Fix for bug #29253: csv table reportedly marked as crashed
    - use the data file version technic to ensure we always see changes
      made by other threads:
        a) increase share->data_file_version each time we reopen the data 
           file, i.e. at the end of update/delete.
        b) compare the local data file version with the shared one each time 
           we want to read data, reopen it if they differ.
storage/csv/ha_tina.h:
  Fix for bug #29253: csv table reportedly marked as crashed
    - use the data file version technic to ensure we always see changes
      made by other threads:
        a) increase share->data_file_version each time we reopen the data 
           file, i.e. at the end og update/delete.
        b) compare the local data file version with shared one each time 
           we want to read data, reopen it if they differ.
2007-07-14 00:13:37 +05:00
unknown
3a979065e9 Additional tests checking for symptoms observed within
Bug28309 First insert violates unique constraint - was "memory" table empty ?
---
Add missing phony targets


Makefile.am:
  Add execution of the ddl stress tests.
    (modified) test-bt: Short running variant added
    (new) test-ext-stress: Longer running variant
    (modified) test-ext: test-ext-stress added
    (modified) test-fast: Short running variant with MyISAM only added
  ---
  Declare test-ext-jp and test-ext-stress to PHONY make targets.
mysql-test/suite/stress/include/ddl.cln:
  Script for cleanup at execution end
mysql-test/suite/stress/include/ddl.pre:
  Script for general preparations at execution start
mysql-test/suite/stress/include/ddl1.inc:
  ddl stress script
mysql-test/suite/stress/include/ddl2.inc:
  ddl stress script
mysql-test/suite/stress/include/ddl3.inc:
  ddl stress script
mysql-test/suite/stress/include/ddl4.inc:
  ddl stress script
mysql-test/suite/stress/include/ddl5.inc:
  ddl stress script
mysql-test/suite/stress/include/ddl6.inc:
  ddl stress script
mysql-test/suite/stress/include/ddl7.inc:
  ddl stress script
mysql-test/suite/stress/include/ddl8.inc:
  ddl stress script
mysql-test/suite/stress/r/ddl_archive.result:
  File with expected results
mysql-test/suite/stress/r/ddl_csv.result:
  File with expected results
mysql-test/suite/stress/r/ddl_innodb.result:
  File with expected results
mysql-test/suite/stress/r/ddl_memory.result:
  File with expected results
mysql-test/suite/stress/r/ddl_myisam.result:
  File with expected results
mysql-test/suite/stress/r/ddl_ndb.result:
  File with expected results
mysql-test/suite/stress/t/ddl_archive.test:
  Storage engine specific toplevel testscript
mysql-test/suite/stress/t/ddl_csv.test:
  Storage engine specific toplevel testscript
mysql-test/suite/stress/t/ddl_innodb.test:
  Storage engine specific toplevel testscript
mysql-test/suite/stress/t/ddl_memory.test:
  Storage engine specific toplevel testscript
mysql-test/suite/stress/t/ddl_myisam.test:
  Storage engine specific toplevel testscript
mysql-test/suite/stress/t/ddl_ndb.test:
  Storage engine specific toplevel testscript
2007-07-13 18:32:22 +02:00
unknown
c14dce9059 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-07-13 20:54:36 +05:00
unknown
ec8a6c77cb Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt


sql/sql_class.h:
  Auto merged
2007-07-13 20:52:03 +05:00
unknown
a7e5f73abb Bug#27198: Error returns from time() are ignored
gettimeofday() can fail and presumably, so can time().
Keep an eye on it.

Since we have no data on this at all so far, we just
retry on failure (and log the event), assuming that
this is just an intermittant failure. This might of
course hang the threat until we succeed. Once we know
more about these failures, an appropriate more clever
scheme may be picked (only try so many times per thread,
etc., if that fails, return last "good" time() we got or
some such).  Using sql_print_information() to log as this
probably only occurs in high load scenarios where the debug-
trace likely is disabled (or might interfere with testing
the effect).  No test-case as this is a non-deterministic
issue.


sql/mysql_priv.h:
  Bug#27198: Error returns from time() are ignored
  
  move declarations for log.cc to before inclusion of
  sql_class.h as we now use sql_print_information() in
  there.
sql/sql_class.h:
  Bug#27198: Error returns from time() are ignored
  
  gettimeofday() can fail and presumably, so can time().
  Keep an eye on it.
2007-07-13 17:50:58 +02:00
unknown
85603b2e0b Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-13 20:49:21 +05:00
unknown
38f4c6137a BUG#29740: Wrong query results for index_merge/union over HEAP table.
- return HA_KEY_SCAN_NOT_ROR flag for HASH indexes;
- Fix ha_heap::cmp_ref() to work with BTREE index scans.


mysql-test/r/index_merge.result:
  BUG#29740: testcase
mysql-test/t/index_merge.test:
  BUG#29740: testcase
sql/ha_heap.h:
  BUG#29740: Wrong query results for index_merge/union over HEAP table.
  - make HEAP table engine return HA_KEY_SCAN_NOT_ROR flag for HASH 
    indexes,as HASH index does not guarantee any ordering for rows
    within the hash bucket.
  - Fix BTREE indexes: make ha_heap::cmp_ref() compare the rowids in the 
    same way as ha_key_cmp() does.
sql/opt_range.cc:
  BUG#29740: Fix comment about ROR scans.
2007-07-13 19:13:40 +04:00
unknown
fde9c7d5b8 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt


mysql-test/r/create_not_windows.result:
  Auto merged
mysql-test/r/join_nested.result:
  Auto merged
mysql-test/r/symlink.result:
  Auto merged
mysql-test/r/type_ranges.result:
  Auto merged
mysql-test/r/type_time.result:
  Auto merged
mysql-test/t/create.test:
  Auto merged
mysql-test/t/create_not_windows.test:
  Auto merged
mysql-test/t/symlink.test:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/r/create.result:
  Merge with 5.0-opt.
mysql-test/r/type_enum.result:
  Merge with 5.0-opt.
mysql-test/t/type_enum.test:
  Merge with 5.0-opt.
sql/field_conv.cc:
  Merge with 5.0-opt.
2007-07-13 19:36:10 +05:00
unknown
23ab9bd4db update bug dependency on failing test
mysql-test/suite/ndb/t/ndb_binlog_format.test:
  Rename: mysql-test/t/ndb_binlog_format.test -> mysql-test/suite/ndb/t/ndb_binlog_format.test
mysql-test/suite/ndb/r/ndb_binlog_format.result:
  Rename: mysql-test/r/ndb_binlog_format.result -> mysql-test/suite/ndb/r/ndb_binlog_format.result
2007-07-13 16:06:12 +02:00
unknown
5de1e175e5 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-maint
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-maint


sql/set_var.cc:
  Auto merged
2007-07-13 16:00:19 +02:00
unknown
b5761c5c35 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-maint


sql/set_var.cc:
  Auto merged
2007-07-13 15:59:43 +02:00
unknown
140f785f22 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-maint


sql/ha_ndbcluster.h:
  Auto merged
sql/set_var.cc:
  Auto merged
storage/ndb/tools/restore/restore_main.cpp:
  Auto merged
mysql-test/include/have_ndb.inc:
  manual merge
mysql-test/t/disabled.def:
  manual merge
2007-07-13 15:59:06 +02:00
unknown
497b7a57da Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb


sql/ha_ndbcluster.h:
  Auto merged
sql/set_var.cc:
  Auto merged
2007-07-13 15:55:59 +02:00
unknown
0255c9a7ba Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb-bj
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb


mysql-test/t/disabled.def:
  Auto merged
2007-07-13 15:54:57 +02:00
unknown
5524540876 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb-bj
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-07-13 15:53:58 +02:00
unknown
2a0498c0f9 disabled the output of the full path in tesing bug 29325 2007-07-13 16:32:29 +03:00
unknown
701dfda11b Bug #29762 The ndbapi-examples don't work as expected due to api changes in MySQL 5.1.16] 2007-07-13 15:30:36 +02:00
unknown
fe6d5d631d avoid some sporadic startup issues 2007-07-13 14:31:40 +02:00
unknown
b806ca22c6 Bug 29325: moved the test from create_not_windows to symlink. 2007-07-13 13:56:22 +03:00
unknown
08510d6903 Merge chilla.local:/home/mydev/mysql-5.1-ateam
into  chilla.local:/home/mydev/mysql-5.1-bug28810
2007-07-13 08:18:27 +02:00
unknown
f3fd6168ff Merge damien-katzs-computer.local:/Users/dkatz/50
into  damien-katzs-computer.local:/Users/dkatz/mysql51


client/mysqltest.c:
  Auto merged
2007-07-13 01:56:57 -04:00
unknown
d3d38d0b14 When opening a new connecgtion, changed mysqltest to prefer a brand new connection slot over an existing, closed slot. Fixes a problem with reused slots that can cause tests to fail. bug#29579
client/mysqltest.c:
  When opening a new connecgtion, changed mysqltest to prefer a brand new connection slot over an existing, closed slot. Fixes a problem with reused slots that can cause tests to fail.
2007-07-13 01:55:04 -04:00
unknown
58b783b4e9 Merge damien-katzs-computer.local:/Users/dkatz/50
into  damien-katzs-computer.local:/Users/dkatz/mysql51


extra/yassl/include/yassl_int.hpp:
  Auto merged
extra/yassl/src/yassl_int.cpp:
  Auto merged
mysql-test/r/mysqltest.result:
  Auto merged
mysql-test/t/mysqltest.test:
  Auto merged
2007-07-13 00:47:37 -04:00
unknown
4bbeef1c12 Minor fixes for test failures and compiler warnings for Bug #29579.
BitKeeper/deleted/.del-ssl_big.test:
  Delete: mysql-test/t/ssl_big.test
extra/yassl/include/yassl_int.hpp:
  added comment
extra/yassl/src/yassl_int.cpp:
  Changed init order to fix a compiler warning.
mysql-test/r/mysqltest.result:
  There is no limit to connections anymore.
mysql-test/t/mysqltest.test:
  There is no limit to connections anymore.
2007-07-13 00:45:54 -04:00
unknown
f6895c6dfd Merge damien-katzs-computer.local:/Users/dkatz/mysql50
into  damien-katzs-computer.local:/Users/dkatz/mysql51


client/mysqltest.c:
  Auto merged
extra/yassl/include/openssl/ssl.h:
  Auto merged
extra/yassl/include/yassl_int.hpp:
  Auto merged
extra/yassl/src/ssl.cpp:
  Auto merged
extra/yassl/src/yassl_int.cpp:
  Auto merged
sql/slave.cc:
  Auto merged
vio/viossl.c:
  SCCS merged
2007-07-12 22:22:40 -04:00
unknown
91112d124e Merge damien-katzs-computer.local:/Users/dkatz/mysql50
into  damien-katzs-computer.local:/Users/dkatz/50
2007-07-12 22:19:07 -04:00
unknown
e62bb5d5a8 Merge dkatz@bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  damien-katzs-computer.local:/Users/dkatz/mysql51
2007-07-12 22:15:03 -04:00
unknown
b7527f6b72 Bug #29579 Clients using SSL can hang the server
Added an option to yassl to allow "quiet shutdown" like openssl does. This option causes the SSL libs to NOT perform the close_notify handshake during shutdown. This fixes a hang we experience because we hold a lock during socket shutdown.


mysql-test/t/ssl_big.test:
  BitKeeper file /Users/dkatz/50/mysql-test/t/ssl_big.test
mysql-test/r/ssl-big.result:
  BitKeeper file /Users/dkatz/50/mysql-test/r/ssl-big.result
client/mysqltest.c:
  Added new command to mysqltest to send a quit command to the server, but to not close the actual socket on our end.
  
  Also changed code to reuse connection slots, so that the tests can open and close sockets in a loop.
extra/yassl/include/openssl/ssl.h:
  Added C accessors to the quietShutdown option.
extra/yassl/include/yassl_int.hpp:
  Added quietShutdown_ member and accessor methods to the SSL class.
extra/yassl/src/ssl.cpp:
  Added accessors to get/set the quietShutdown option and to not perform the shutdown handshake if quietShutdown is set.
extra/yassl/src/yassl_int.cpp:
  Added quietShutdown_ member and accessor methods to the SSL class.
vio/viossl.c:
  Added line to set the quiet_shutdown option before shutting down the socket.
mysql-test/t/ssl-big.test:
  Added a test that causes an unpatched server to hang during SSL socket shutdown.
2007-07-12 22:06:33 -04:00
unknown
bae6562762 BUG#29464 - load data infile into table with big5 chinese fulltext index
hangs 100% cpu

Moved a test case for BUG#29464 into fulltext3.test, since it requires big5
character set.


mysql-test/r/fulltext.result:
  Moved a test case for BUG#29464 into fulltext3.test, since it requires big5
  character set.
mysql-test/r/fulltext3.result:
  Moved a test case for BUG#29464 into fulltext3.test, since it requires big5
  character set.
mysql-test/t/fulltext.test:
  Moved a test case for BUG#29464 into fulltext3.test, since it requires big5
  character set.
mysql-test/t/fulltext3.test:
  Moved a test case for BUG#29464 into fulltext3.test, since it requires big5
  character set.
2007-07-13 03:29:25 +05:00
unknown
62738bf97e BUG#29445 - match ... against () never returns
Part 2:
Searching fulltext index for a word with boolean mode truncation
operator may cause infinite loop.

The problem was that "smarter index merge" was used with "trunc-words",
which must never happen.

Affects 5.1 only.


mysql-test/r/fulltext.result:
  Addition to a test case for BUG#29445.
mysql-test/t/fulltext.test:
  Addition to a test case for BUG#29445.
storage/myisam/ft_boolean_search.c:
  Fulltext "smarter index merge" optimization assumes that rows
  it gets are ordered by doc_id. That is not the case when we
  search for a word with truncation operator. It may return
  rows in random order. Thus we may not use "smarter index merge"
  optimization with "trunc-words".
  
  Also fixed compiler warning introduced by Part 1 patch.
2007-07-13 03:25:27 +05:00
unknown
42a41896f8 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  bodhi.(none):/opt/local/work/mysql-5.0-runtime


sql/sql_prepare.cc:
  Auto merged
2007-07-12 23:22:17 +04:00
unknown
0e2bb8dd43 Apply community contributed fix for Bug#13326 SQLPS statement logging is
incomplete in 5.0 (and review fixes).

When in 5.0.13 I introduced class Prepared_statement and methods
::prepare and ::execute, general logging was left out of this class.
This was good for stored procedures, since in stored procedures
we do not log sub-statements, but introduced a regression in case of SQL
syntax for prepared statements, as previously we would log the actual
statements to the log, and after the change we would log only
COM_QUERY text.

Restore the old behavior, but still suppress logging if inside a stored 
procedure.

Based on a community contributed patch from Vladimir Shebordaev.

No test case since we do not have a mechanism to test output
of the general log.


sql/sql_prepare.cc:
  Apply community contributed fix for Bug#13326 SQLPS statement logging is 
  incomplete in 5.0 (and review fixes).
2007-07-12 23:14:00 +04:00
unknown
e08e63b192 Bug#29739: Incorrect time comparison in BETWEEN.
Time values were compared by the BETWEEN function as strings. This led to a
wrong result in cases when some of arguments are less than 100 hours and other
are greater.

Now if all 3 arguments of the BETWEEN function are of the TIME type then
they are compared as integers.


mysql-test/t/type_time.test:
  Added a tes tcase for the bug#29739: Incorrect time comparison in BETWEEN.
mysql-test/r/type_time.result:
  Added a tes tcase for the bug#29739: Incorrect time comparison in BETWEEN.
sql/item_cmpfunc.cc:
  Bug#29739: Incorrect time comparison in BETWEEN.
  Now if all 3 arguments of the BETWEEN function are of the TIME type then
  they are compared as integers.
2007-07-12 23:09:55 +04:00
unknown
1d40659c1f Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  bodhi.(none):/opt/local/work/mysql-5.0-26141-final


sql/sql_yacc.yy:
  Auto merged
2007-07-12 22:28:13 +04:00
unknown
9dc3088f9e A fix and a test case for Bug#26141 mixing table types in trigger
causes full table lock on innodb table.
Also fixes Bug#28502 Triggers that update another innodb table 
will block on X lock unnecessarily (duplciate).
Code review fixes.

Both bugs' synopses are misleading: InnoDB table is
not X locked. The statements, however, cannot proceed concurrently, 
but this happens due to lock conflicts for tables used in triggers,
not for the InnoDB table. 

If a user had an InnoDB table, and two triggers, AFTER UPDATE and 
AFTER INSERT, competing for different resources (e.g. two distinct
MyISAM tables), then these two triggers would not be able to execute
concurrently. Moreover, INSERTS/UPDATES of the InnoDB table would
not be able to run concurrently. 
The problem had other side-effects (see respective bug reports).

This behavior was a consequence of a shortcoming of the pre-locking
algorithm, which would not distinguish between different DML operations
(e.g. INSERT and DELETE) and pre-lock all the tables
that are used by any trigger defined on the subject table.

The idea of the fix is to extend the pre-locking algorithm to keep track,
for each table, what DML operation it is used for and not
load triggers that are known to never be fired.


mysql-test/r/trigger-trans.result:
  Update results (Bug#26141)
mysql-test/r/trigger.result:
  Update results (Bug#28502)
mysql-test/t/trigger-trans.test:
  Add a test case for Bug#26141 mixing table types in trigger causes 
  full table lock on innodb table.
mysql-test/t/trigger.test:
  Add a test case for Bug#28502 Triggers that update another innodb 
  table will block echo on X lock unnecessarily. Add more test 
  coverage for triggers.
sql/item.h:
  enum trg_event_type is needed in table.h
sql/sp.cc:
  Take into account table_list->trg_event_map when determining
  what tables to pre-lock. 
  
  After this change, if we attempt to fire a 
  trigger for which we had not pre-locked any tables, error
  'Table was not locked with LOCK TABLES' will be printed.
  This, however, should never happen, provided the pre-locking
  algorithm has no programming bugs.
  
  Previously a trigger key in the sroutines hash was based on the name 
  of the table the trigger belongs to. This was possible because we would
  always add to the pre-locking list all the triggers defined for a table when
  handling this table.
  Now the key is based on the name of the trigger, owing
  to the fact that a trigger name must be unique in the database it
  belongs to.
sql/sp_head.cc:
  Generate sroutines hash key in init_spname(). This is a convenient
  place since there we have all the necessary information and can
  avoid an extra alloc.
  
  Maintain and merge trg_event_map when adding and merging elements
  of the pre-locking list.
sql/sp_head.h:
  Add ,m_sroutines_key member, used when inserting the sphead for a
  trigger into the cache of routines used by a statement.
  Previously the key was based on the table name the trigger belonged
  to, since for a given table we would add to the sroutines list
  all the triggers defined on it.
sql/sql_lex.cc:
  Introduce a new lex step: set_trg_event_type_for_tables().
  It is called when we have finished parsing but before opening
  and locking tables. Now this step is used to evaluate for each
  TABLE_LIST instance which INSERT/UPDATE/DELETE operation, if any,
  it is used in.
  In future this method could be extended to aggregate other information
  that is hard to aggregate during parsing.
sql/sql_lex.h:
  Add declaration for set_trg_event_type_for_tables().
sql/sql_parse.cc:
  Call set_trg_event_type_for_tables() after MYSQLparse(). Remove tabs.
sql/sql_prepare.cc:
  Call set_trg_event_type_for_tables() after  MYSQLparse().
sql/sql_trigger.cc:
  Call set_trg_event_type_for_tables() after MYSQLparse().
sql/sql_trigger.h:
  Remove an obsolete member.
sql/sql_view.cc:
  Call set_trg_event_type_for_tables() after MYSQLparse().
sql/sql_yacc.yy:
  Move assignment of sp_head::m_type before calling sp_head::init_spname(), 
  one is now used inside another.
sql/table.cc:
  Implement TABLE_LIST::set_trg_event_map() - a method that calculates
  wh triggers may be fired on this table when executing a statement.
sql/table.h:
  Add missing declarations.
  Move declaration of trg_event_type from item.h (it will be needed for 
  trg_event_map bitmap when we start using Bitmap template instead
  of uint8).
2007-07-12 22:26:41 +04:00
unknown
653c2937bc Merge chilla.local:/home/mydev/mysql-5.1-ateam
into  chilla.local:/home/mydev/mysql-5.1-bug28810
2007-07-12 20:24:18 +02:00
unknown
afbac0070f Bug#28158 - table->read_set is set incorrectly,
causing wrong error message in Falcon

An error message about a duplicate key could show a wrong key
value when not all columns of the key were used to select the
rows for update.

Some storage engines return a record with only the selected
columns filled.

This is fixed by re-reading the record with a read_set which
includes all columns of the duplicate key after a duplicate key
error happens and before the error message is printed.


mysql-test/r/ndb_update.result:
  Bug#28158 - table->read_set is set incorrectly,
              causing wrong error message in Falcon
  Added test result.
mysql-test/t/ndb_update.test:
  Bug#28158 - table->read_set is set incorrectly,
              causing wrong error message in Falcon
  Added test from falcon_bug_28158.
sql/sql_update.cc:
  Bug#28158 - table->read_set is set incorrectly,
              causing wrong error message in Falcon
  Added a function for re-reading a record with a read_set
  that contains all fields used by a duplicate key.
  Called the function before every call to handler::print_error(),
  which could print a duplicate key value.
2007-07-12 20:21:17 +02:00
unknown
4922166ed1 Bug #29612 Cluster ndbd can't write to file, linux kernel 2.4
- remove usage for now
2007-07-12 17:27:53 +02:00
unknown
5529b14f7a Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
2007-07-12 15:38:23 +02:00
unknown
5ee37c1439 Merge adventure.(none):/home/thek/Development/cpp/bug28249/my50-bug28249
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime


mysql-test/t/query_cache.test:
  Auto merged
sql/ha_myisam.cc:
  Auto merged
sql/handler.h:
  Auto merged
mysql-test/r/query_cache.result:
  SCCS merged
2007-07-12 15:30:34 +02:00
unknown
ad492a6db7 Bug 29325: test suite is not applicable on windows 2007-07-12 15:12:56 +03:00
unknown
30810f80b1 Bug#28249 Query Cache returns wrong result with concurrent insert / certain lock
A race condition in the integration between MyISAM and the query cache code 
caused the query cache to fail to invalidate itself on concurrently inserted
data.

This patch fix this problem by using the existing handler interface which, upon
each statement cache attempt, compare the size of the table as viewed from the 
cache writing thread and with any snap shot of the global table state. If the
two sizes are different the global table size is unknown and the current
statement can't be cached.


mysql-test/r/query_cache.result:
  Added test case
mysql-test/t/query_cache.test:
  Added test case
sql/ha_myisam.cc:
  - Implemented handler interface for ha_myisam class to dermine if the table
   belonging to the currently processed statement can be cached or not.
sql/ha_myisam.h:
  - Implemented handler interface for ha_myisam class to dermine if the table
   belonging to the currently processed statement can be cached or not.
sql/handler.h:
  - Documented register_query_cache_table method in the handler interface.
2007-07-12 13:29:51 +02:00