Commit graph

12731 commits

Author SHA1 Message Date
unknown
6cd224125c Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  chilla.local:/home/mydev/mysql-5.1-axmrg


configure.in:
  Auto merged
mysql-test/Makefile.am:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
2006-12-21 18:41:01 +01:00
unknown
9ab1a0ee40 Merge bk-internal:/home/bk/mysql-5.1-ndb
into  pilot.mysql.com:/home/msvensson/mysql/mysql-5.1-new-ndb
2006-12-21 17:38:44 +01:00
unknown
16b596bf34 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  chilla.local:/home/mydev/mysql-5.0-axmrg


configure.in:
  Auto merged
2006-12-21 17:13:38 +01:00
unknown
ab1c0baae7 Merge pilot.mysql.com:/home/msvensson/mysql/mysql-5.1
into  pilot.mysql.com:/home/msvensson/mysql/mysql-5.1-new-ndb


mysql-test/Makefile.am:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
2006-12-21 15:12:15 +01:00
unknown
4c737cf142 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.gmz:/home/kgeorge/mysql/autopush/B23578-5.0-opt
2006-12-21 11:50:01 +02:00
unknown
3d68c135d0 BUG#22864 (Rollback following CREATE... SELECT discards 'CREATE TABLE'
from log):
When row-based logging is used, the CREATE-SELECT is written as two
parts: as a CREATE TABLE statement and as the rows for the table. For
both transactional and non-transactional tables, the CREATE TABLE
statement was written to the transaction cache, as were the rows, and
on statement end, the entire transaction cache was written to the binary
log if the table was non-transactional. For transactional tables, the
events were kept in the transaction cache until end of transaction (or
statement that were not part of a transaction).

For the case when AUTOCOMMIT=0 and we are creating a transactional table
using a create select, we would then keep the CREATE TABLE statement and
the rows for the CREATE-SELECT, while executing the following statements.
On a rollback, the transaction cache would then be cleared, which would
also remove the CREATE TABLE statement. Hence no table would be created
on the slave, while there is an empty table on the master.

This relates to BUG#22865 where the table being created exists on the
master, but not on the slave during insertion of rows into the newly
created table. This occurs since the CREATE TABLE statement were still
in the transaction cache until the statement finished executing, and
possibly longer if the table was transactional.

This patch changes the behaviour of the CREATE-SELECT statement by
adding an implicit commit at the end of the statement when creating
non-temporary tables. Hence, non-temporary tables will be written to the
binary log on completion, and in the even of AUTOCOMMIT=0, a new
transaction will be started. Temporary tables do not commit an ongoing
transaction: neither as a pre- not a post-commit.

The events for both transactional and non-transactional tables are
saved in the transaction cache, and written to the binary log at end
of the statement.


mysql-test/r/rpl_row_create_table.result:
  Result change
mysql-test/t/rpl_row_create_table.test:
  Requring InnoDB for slave as well.
  Adding test CREATE-SELECT that is rolled back explicitly.
  Changing binlog positions.
sql/log.cc:
  Adding helper class to handle lock/unlock of mutexes using RAII.
  Factoring out code into write_cache() function to transaction cache
    to binary log.
  Adding function THD::binlog_flush_transaction_cache() to flush the
    transaction cache to the binary log file.
  Factoring out code into binlog_set_stmt_begin() to set the beginning
    of statement savepoint.
  Clearing before statement point when transaction cache is truncated
   so that these points are out of range.
sql/log.h:
  Adding method MYSQL_BIN_LOG::write_cache()
sql/log_event.h:
  Replicating OPTION_NOT_AUTOCOMMIT flag (see changeset comment)
sql/mysql_priv.h:
  Although left-shifting signed integer values is well-defined,
  it has potential for strange errors. Using unsigned long long
  instead of signed long long since this is the type of the options
  flags.
sql/slave.cc:
  Adding printout of transaction-critical thread flags.
sql/sql_class.h:
  Adding function THD::binlog_flush_transaction_cache()
  Adding function THD::binlog_set_stmt_begin()
sql/sql_insert.cc:
  Adding code to cache events for a CREATE-SELECT statement.
  Disabling binlog for SBR (but not RBR) when sending error for select part
  of CREATE-SELECT statement.
  Adding implicit commit at end of statement for non-temporary tables.
mysql-test/t/rpl_row_create_table-slave.opt:
  New BitKeeper file ``mysql-test/t/rpl_row_create_table-slave.opt''
2006-12-21 09:29:02 +01:00
unknown
9639b35ab5 Merge siva.hindu.god:/usr/home/tim/m/bk/50-build
into  siva.hindu.god:/usr/home/tim/m/bk/51-build


cmd-line-utils/readline/histfile.c:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/udf_example.c:
  Auto merged
storage/innobase/include/row0mysql.h:
  Auto merged
strings/decimal.c:
  Auto merged
mysql-test/include/mix1.inc:
  Manual merge
mysql-test/r/func_str.result:
  Manual merge
mysql-test/r/innodb_mysql.result:
  Manual merge
mysql-test/t/disabled.def:
  Manual merge
mysql-test/t/func_str.test:
  Manual merge
sql/mysqld.cc:
  Manual merge
storage/innobase/handler/ha_innodb.cc:
  Manual merge
storage/innobase/handler/ha_innodb.h:
  Manual merge
storage/innobase/row/row0mysql.c:
  Manual merge
2006-12-20 15:46:36 -07:00
unknown
b731ad45e4 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.1-ndb
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.1-new-ndb
2006-12-20 17:08:05 +01:00
unknown
2efb657600 Merge mysql.com:/home/svoj/devel/mysql/BUG21310/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG21310/mysql-5.0-engines


sql/lock.cc:
  Use local.
mysql-test/r/myisam.result:
  Manual merge.
mysql-test/t/myisam.test:
  Manual merge.
sql/sql_update.cc:
  Manual merge.
2006-12-20 20:01:31 +04:00
unknown
9d094c56bc Merge mysql.com:/home/svoj/devel/bk/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG21310/mysql-4.1-engines


sql/sql_update.cc:
  Auto merged
2006-12-20 19:08:28 +04:00
unknown
9d85b0a616 BUG#21310 - Trees in SQL causing a "crashed" table with MyISAM storage engine
An update that used a join of a table to itself and modified the
table on one side of the join reported the table as crashed or
updated wrong rows.

Fixed by creating temporary table for self-joined multi update statement.


mysql-test/r/myisam.result:
  A test case for BUG#21310.
mysql-test/t/myisam.test:
  A test case for BUG#21310.
sql/lock.cc:
  Exclude 'table' param from check.
sql/sql_update.cc:
  Disabling record cache for self-joined multi update statement is wrong.
  The join must only see the table as it was at the beginning of the statement.
  safe_update_on_fly check if it is safe to update first table on the fly, that is
  not creating temporary table. It is possible in case a row from this table is
  never read more than once. safe_update_on_fly now detect self-joined table and
  refuse to update this table on the fly.
2006-12-20 19:05:35 +04:00
unknown
67d7141ad3 Bug #21806: wrong ndb binlog behaviour when cluster disconnects/restarts
- latest gci is reinitialized to 0 at reconnect, ndb binlog thread needs to wait until valid gci is retrieved
2006-12-20 15:34:45 +01:00
unknown
fbfb962c24 ndb_dd_ddl.test, ndb_dd_ddl.result, ha_ndbcluster.cc:
bug#24667  After ALTER TABLE operation ndb_dd table becomes regular ndb: disallowed TABLESPACE declaration for STORAGE MEMORY
Makefile:
  Rename: storage/ndb/ndbapi-examples/mgmapi_logevent_dual/Makefile -> storage/ndb/ndbapi-examples/mgmapi_logevent2/Makefile
mgmapi_logevent2.cpp:
  Rename: storage/ndb/ndbapi-examples/mgmapi_logevent_dual/mgmapi_logevent_dual.cpp -> storage/ndb/ndbapi-examples/mgmapi_logevent_dual/mgmapi_logevent2.cpp
Makefile:
  Rename mgmapi_logevent_dual to mgmapi_logevent2
mgmapi_logevent2.cpp:
  Rename: storage/ndb/ndbapi-examples/mgmapi_logevent_dual/mgmapi_logevent2.cpp -> storage/ndb/ndbapi-examples/mgmapi_logevent2/mgmapi_logevent2.cpp


storage/ndb/ndbapi-examples/mgmapi_logevent2/mgmapi_logevent2.cpp:
  Rename: storage/ndb/ndbapi-examples/mgmapi_logevent_dual/mgmapi_logevent2.cpp -> storage/ndb/ndbapi-examples/mgmapi_logevent2/mgmapi_logevent2.cpp
storage/ndb/ndbapi-examples/Makefile:
  Rename mgmapi_logevent_dual to mgmapi_logevent2
storage/ndb/ndbapi-examples/mgmapi_logevent2/Makefile:
  Rename mgmapi_logevent_dual to mgmapi_logevent2
mysql-test/r/ndb_dd_ddl.result:
  bug#24667  After ALTER TABLE operation ndb_dd table becomes regular ndb: disallowed TABLESPACE declaration for STORAGE MEMORY
mysql-test/t/ndb_dd_ddl.test:
  bug#24667  After ALTER TABLE operation ndb_dd table becomes regular ndb: disallowed TABLESPACE declaration for STORAGE MEMORY
sql/ha_ndbcluster.cc:
  bug#24667  After ALTER TABLE operation ndb_dd table becomes regular ndb: disallowed TABLESPACE declaration for STORAGE MEMORY
2006-12-20 15:15:26 +01:00
unknown
7bf1913de0 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.1-ndb
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.1-new-ndb
2006-12-20 13:36:40 +01:00
unknown
6417ddd6d3 Merge siva.hindu.god:/usr/home/tim/m/bk/50-24200
into  siva.hindu.god:/usr/home/tim/m/bk/50-release
2006-12-19 17:43:56 -07:00
unknown
47b0a0b089 Added innodb_rollback_on_timeout option to restore the 4.1
InnoDB timeout behavior (Bug #24200)


mysql-test/t/innodb_mysql-master.opt:
  Set --innodb-lock-wait-timeout=2, since test for bug #24200 times out.
  
  This *could* cause random test failures if some long-running transaction concurrency is being tested.  However, such a test really should go in innodb-big or some other test file.
2006-12-19 16:57:51 -07:00
unknown
f8920dd59f Bug #24947: REPEAT function returns NULL when passed a field as the count parameter
Handling of large signed/unsigned values was not consistent, so some string functions could return bogus results.
The current fix is to simply patch up the val_str() methods for those string items.
It would be good clean this code up in general, to make similar problems much harder to make.  This is left as an exercise for the reader.


mysql-test/r/func_str.result:
  Update test results for bug #24947
mysql-test/t/func_str.test:
  Add test case for bug #24947
sql/item_strfunc.cc:
  Adjust some string function Items' val_str() methods to handle large signed/unsigned arguments properly
2006-12-19 15:54:12 -07:00
unknown
d0d7cc86fa bug#24667 After ALTER TABLE operation ndb_dd table becomes regular ndb: ALTER TABLE must specify STORAGE explicitely to change it, + post review changes 2006-12-19 23:20:43 +01:00
unknown
81e138e150 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  chilla.local:/home/mydev/mysql-5.1-axmrg


sql/sql_class.h:
  Auto merged
2006-12-19 17:12:06 +01:00
unknown
1e10672496 bug#24667 After ALTER TABLE operation ndb_dd table becomes regular ndb: copy tablespace from old table in copying alter table 2006-12-19 15:53:46 +01:00
unknown
93e6d00d3b WL#2862 ndb_sp.test - removed unnecessary line
mysql-test/r/ndb_sp.result:
  WL#2862
mysql-test/t/ndb_sp.test:
  WL#2862
2006-12-19 16:17:57 +03:00
unknown
ce10e6ca13 Bug #23578: Corruption prevents Optimize table from working properly with a
spatial index
 While executing OPTIMIZE TABLE on MyISAM tables the server re-creates the
 index file(s) in order to sort them physically by the key. This cannot be 
 done for R-tree indexes as it makes no sense.
 The server was not checking the type of the index and was accessing an 
 R-tree index as if it was a B-tree.
 Fixed by preventing sorting the index file if it contains an R-tree index.  
 


myisam/mi_check.c:
  Bug #23578: Corruption prevents Optimize table from working properly with a
  spatial index
   - disable sorting the index file if it contains an R-tree index.
mysql-test/r/gis-rtree.result:
  Bug #23578: Corruption prevents Optimize table from working properly with a
  spatial index
   - test case
mysql-test/t/gis-rtree.test:
  Bug #23578: Corruption prevents Optimize table from working properly with a
  spatial index
   - test case
2006-12-19 15:04:26 +02:00
unknown
b74c461101 WL# 3031
The final testcase needing new error codes. Really.


mysql-test/r/rpl_row_tabledefs_2myisam.result:
  WL #3031
  
  Ack! Another test needing new error code results
2006-12-19 08:02:55 -05:00
unknown
3e27508554 bug #22451 (Partitions: duplicating results with ENGINE=FEDERATED)
As presently PARTITIONS + FEDERATED just doesn't work i added error message
to inform user about that.
Should be enabled again after releted WL's completion.


storage/federated/ha_federated.cc:
  partitioning disabled in FEDERATED engine
mysql-test/r/partition_federated.result:
  result added
mysql-test/t/partition_federated.test:
  test added
2006-12-19 16:37:50 +04:00
unknown
b66ab7f80b Fix for BUG#24293: '\Z' token is not handled correctly in views.
If SELECT-part of CREATE VIEW statement contains '\Z',
it is not handled correctly.

The problem was in String::print().
Symbol with code 032 (26) is replaced with '\z',
which is not supported by the lexer.

The fix is to replace the symbol with '\Z'.


mysql-test/r/view.result:
  Update result file.
mysql-test/t/view.test:
  Add test case for BUG#24293.
sql/sql_string.cc:
  We should replace 032 with \Z, since lexer does not understand \z.
2006-12-19 15:32:02 +03:00
unknown
d6bc366f44 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  chilla.local:/home/mydev/mysql-5.0-axmrg


configure.in:
  Auto merged
sql/sql_class.h:
  Auto merged
2006-12-19 12:41:39 +01:00
unknown
9166c711c2 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  chilla.local:/home/mydev/mysql-4.1-axmrg
2006-12-19 10:40:53 +01:00
unknown
6dbc096f28 Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.1-arch
into  radha.patg.net:/Users/patg/mysql-build/mysql-5.1-arch-clean
2006-12-18 21:08:39 -05:00
unknown
5426f121a3 WL# 3031
- Added more test results for hard-coded error numbers
- Fix for windows


mysql-test/r/rpl_extraCol_myisam.result:
  WL# 3031
  
  More result files for tests that have hard-coded error numbers (!!)
mysql-test/r/rpl_ndb_extraCol.result:
  WL# 3031
  
  More result files for tests that have hard-coded error numbers (!!)
mysql-test/r/rpl_row_tabledefs_3innodb.result:
  WL# 3031
  
  More result files for tests that have hard-coded error numbers (!!)
sql/CMakeLists.txt:
  WL# 3031
  
  Noticed windows build breaks, added sql_servers.cc to CMakeLists.txt
2006-12-18 16:39:50 -05:00
unknown
2b0189b812 Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-arch


sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/sql_load.cc:
  Auto merged
2006-12-18 17:57:34 +01:00
unknown
0dc0e52db3 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  polly.local:/home/kaa/src/maint/mysql-5.0-maint
2006-12-18 18:04:26 +03:00
unknown
e0a63c810e Merge bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  polly.local:/home/kaa/src/maint/mysql-5.1-maint
2006-12-18 17:47:48 +03:00
unknown
f07393ab85 Merge fix of updated test result 2006-12-18 14:38:12 +01:00
unknown
c4c6ab23c6 Merge maint1.mysql.com:/data/localhome/msvensson/mysql-5.0-maint
into  maint1.mysql.com:/data/localhome/msvensson/mysql-5.1-new-maint


mysql-test/r/symlink.result:
  Auto merged
mysql-test/t/symlink.test:
  Auto merged
include/my_pthread.h:
  Manual merge
2006-12-18 14:27:51 +01:00
unknown
c6ac9185bc bug #24502 (reorganize partition closes connection)
when REORGANIZE creates new partition, no_subparts for that partition
isn't set right (call handler::set_partitions_defaults always returns 1)
Normally the number of subpartitions should be inherited from the
table.


mysql-test/r/partition.result:
  result fixed
mysql-test/t/partition.test:
  testcase
sql/sql_partition.cc:
  no_subparts is set for newly created partitions
2006-12-18 14:39:23 +04:00
unknown
71776740b6 fix for commit 1.2368 2006-12-18 12:52:59 +03:00
unknown
1aad903b71 Use MYSQLTEST_VARDIR variable 2006-12-18 10:22:48 +01:00
unknown
1b64ba4aea fix for commit 1.2368 2006-12-18 09:46:44 +03:00
unknown
185997ceaf WL#2862 2006-12-17 23:08:04 +03:00
unknown
7d2d6b8bf9 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  polly.local:/home/kaa/src/maint/mysql-5.1-maint
2006-12-16 03:17:50 +03:00
unknown
756666d750 New cluster replication test cases for replication options
mysql-test/t/rpl_ndb_do_db-slave.opt:
  New cluster replication test case to test do_db option
mysql-test/t/rpl_ndb_do_db.test:
  New cluster replication test case to test do_db option
mysql-test/r/rpl_ndb_do_db.result:
  New cluster replication test case to test do_db option
mysql-test/r/rpl_ndb_do_table.result:
  New cluster replication test case to test do_table option
mysql-test/t/rpl_ndb_do_table-slave.opt:
  New cluster replication test case to test do_table option
mysql-test/t/rpl_ndb_do_table.test:
  New cluster replication test case to test do_table option
mysql-test/t/rpl_ndb_rep_ignore-slave.opt:
  New cluster replication test case to test replicate_ignore option(s)
mysql-test/t/rpl_ndb_rep_ignore.test:
  New cluster replication test case to test replicate_ignore option(s)
mysql-test/r/rpl_ndb_rep_ignore.result:
  New cluster replication test case to test replicate_ignore option(s)
2006-12-15 16:34:29 +01:00
unknown
dcbf618831 WL #3031
Yet another test result that needed to be regenerated due to new error
messages. This test only runs via ./mysql-test-run.pl --ps-protocol --mysqld=--binlog-format=row rpl_extraCol_innodb
2006-12-15 09:42:41 -05:00
unknown
a6933a63c5 Bug#24997 warnings test case failure
- Move the specific test case to a separate file that is run only
   if we have a disabled handler.


mysql-test/r/warnings.result:
  Move the test for warning that table type is changed to separate file
  as it only occurs when engine is disabled.
mysql-test/t/warnings.test:
  Move the test for warning that table type is changed to separate file
  as it only occurs when engine is disabled.
mysql-test/r/warnings_engine_disabled.result:
  Move the test for warning that table type is changed to separate file
  as it only occurs when engine is disabled.
mysql-test/t/warnings_engine_disabled-master.opt:
  New BitKeeper file ``mysql-test/t/warnings_engine_disabled-master.opt''
mysql-test/t/warnings_engine_disabled.test:
  Move the test for warning that table type is changed to separate file
  as it only occurs when engine is disabled.
2006-12-15 15:05:50 +01:00
unknown
36c0cc54b3 Merge polly.local:/tmp/maint/bug24117/my51-bug24117
into  polly.local:/home/kaa/src/maint/mysql-5.1-maint


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysys/typelib.c:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
2006-12-15 13:23:05 +03:00
unknown
42b630e1c7 Merge bk-internal:/home/bk/mysql-5.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1-maint


scripts/mysqld_safe.sh:
  Auto merged
2006-12-15 11:21:44 +01:00
unknown
3863e8d643 Merge polly.local:/tmp/maint/bug24117/my50-bug24117
into  polly.local:/tmp/maint/bug24117/my51-bug24117


mysql-test/t/sp.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
mysql-test/r/sp.result:
  Manual merge
2006-12-15 13:10:59 +03:00
unknown
acf0636e2e Bug #15439: UDF name case handling forces DELETE FROM mysql.func to remove
the UDF
When deleting a user defined function MySQL must remove it from both the
in-memory hash table and the mysql.proc system table.
Finding (and removal therefore) from the internal hash table is case 
insensitive (or whatever the default charset is), whereas finding and 
removal from the system table is case sensitive.
As a result if you supply a function name that is not in the same character
case to DROP FUNCTION the server will remove the function only from the
in-memory hash table and will keep the row in mysql.proc system table.
This will cause inconsistency between the two structures (that is fixed
only by restarting the server).
Fixed by using the name in the precise case (from the in-memory hash table)
to delete the row in the mysql.proc system table. 


mysql-test/r/udf.result:
  Bug #15439: UDF name case handling forces DELETE FROM mysql.func to remove
              the UDF
   - test case
mysql-test/t/udf.test:
  Bug #15439: UDF name case handling forces DELETE FROM mysql.func to remove
              the UDF
   - test case
sql/sql_udf.cc:
  Bug #15439: UDF name case handling forces DELETE FROM mysql.func to remove
              the UDF
   - use the exact function name in deleting from mysql.proc.
2006-12-15 11:38:30 +02:00
unknown
1747206729 Merge mysql.com:/windows/Linux_space/MySQL/mysql-5.1
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.1-new-ndb
2006-12-15 09:59:26 +01:00
unknown
4d440ab0f7 Merge mysql.com:/windows/Linux_space/MySQL/mysql-5.0
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.1


mysql-test/r/ndb_read_multi_range.result:
  Auto merged
mysql-test/t/ndb_read_multi_range.test:
  Auto merged
2006-12-15 09:06:15 +01:00
unknown
386b381788 bug#19956 Problems with VARCHAR primary key and BLOB fields:added test case 2006-12-15 09:03:21 +01:00