into mysql.com:/home/cps/mysql/devel/5.1-curs-bug
sql/ha_myisam.cc:
Auto merged
sql/handler.h:
Auto merged
sql/sql_table.cc:
Auto merged
mysql-test/r/log_tables.result:
SCCS merged
mysql-test/t/log_tables.test:
SCCS merged
gets deadlocked when dropping w/ log on"
Log tables rely on concurrent insert machinery to add data.
This means that log tables are always opened and locked by
special (artificial) logger threads. Because of this, the thread
which tries to drop a log table starts to wait for the table
to be unlocked. Which will happen only if the log table is disabled.
Alike situation happens if one tries to alter a log table.
However in addition to the problem above, alter table calls
check_if_locking_is_allowed() routine for the engine. The
routine does not allow alter for the log tables. So, alter
doesn't start waiting forever for logs to be disabled, but
returns with an error.
Another problem is that not all engines could be used for
the log tables. That's because they need concurrent insert.
In this patch we:
(1) Explicitly disallow to drop/alter a log table if it
is currently used by the logger.
(2) Update MyISAM to support log tables
(3) Allow to drop log tables/alter log tables if log is
disabled
At the same time we (4) Disallow to alter log tables to
unsupported engine (after this patch CSV and MyISAM are
alowed)
Recommit with review fixes.
mysql-test/r/log_tables.result:
Update result file.
Note: there are warnings in result file. This is because of CSV
bug (Bug #21328). They should go away after it is fixed.
mysql-test/t/log_tables.test:
Add a test for the bug
sql/ha_myisam.cc:
Add log table handling to myisam: as log tables
use concurrent insert, they are typically
locked with TL_CONCURRERENT_INSERT lock. So,
disallow other threads to attempt locking of
the log tables in incompatible modes. Because
otherwise the threads will wait for the tables
to be unlocked forever.
sql/handler.cc:
Add a function to check if a table we're going to lock
is a log table and if the lock mode we want allowed
sql/handler.h:
Add a new function to check compatibility of the locking
sql/log.cc:
we shouldn't close the log table if and only
if this particular table is already closed
sql/log.h:
add new functions to check if a log is enabled
sql/share/errmsg.txt:
add new error messages
sql/sql_table.cc:
DROP and ALTER TABLE should not work on log
tables if the log tables are enabled
storage/csv/ha_tina.cc:
move function to check if the locking for the log
tables allowed to handler class, so that we can
reuse it in other engines.
storage/myisam/mi_extra.c:
add new ::extra() flag processing to myisam
storage/myisam/mi_open.c:
init log table flag
storage/myisam/mi_write.c:
update status after each write if it's a log table
storage/myisam/myisamdef.h:
Add new log table flag to myisam share.
We need it to distinguish between usual
and log tables, as for the log tables we
should provide concurrent insert in a
different way than for usual tables: we
want new rows to be immediately visible
to other threads.
Due to incorrect handling of FLUSH TABLES, log tables were marked for flush,
but not reopened. Later we started to wait for the log table to be closed
(disabled) after the flush. And as nobody disabled logs in concurrent treads,
the command lasted forever.
After internal consultations it was decided to skip logs during FLUSH TABLES.
The reasoning is that logging is done in the "log device", whatever it is
which is always active and controlled by FLUSH LOGS. So, to flush logs
one should use FLUSH LOGS, and not FLUSH TABLES.
mysql-test/r/log_tables.result:
update result file
mysql-test/t/log_tables.test:
add a test for the bug
sql/sql_base.cc:
Skip log tables during FLUSH TABLES
- Add loop in mysqlslap that tries to connect up to 10 times if connect
in thread fails.
client/mysqlslap.c:
Add loop to retry connect 10 times with a small sleep in between.
mysql-test/t/disabled.def:
Remove disabling of testcase
into bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
BitKeeper/etc/ignore:
auto-union
BitKeeper/deleted/.del-libmysqld.dsp~78dc6a589e5a4149:
Auto merged
BitKeeper/deleted/.del-libmysqld.vcproj~a75d5b9a5967dea0:
Auto merged
BitKeeper/deleted/.del-mysqld.dsp~ffdbf2d234e23e56:
Auto merged
BitKeeper/deleted/.del-mysqld.vcproj~6aa7b3f9c3e28fcb:
Auto merged
libmysqld/Makefile.am:
Auto merged
mysql-test/Makefile.am:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
mysql-test/t/init_connect.test:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item.cc:
Auto merged
sql/item_create.cc:
Auto merged
sql/item_create.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_trigger.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
storage/ndb/include/kernel/GlobalSignalNumbers.h:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
storage/ndb/src/ndbapi/ndberror.c:
Auto merged
support-files/mysql.spec.sh:
Auto merged
mysql-test/r/federated.result:
Use local.
mysql-test/r/myisam.result:
Manual merge.
mysql-test/t/federated.test:
Manual merge.
mysql-test/t/myisam.test:
Manual merge.
sql/Makefile.am:
Manual merge.
sql/set_var.cc:
Manual merge.
sql/sql_parse.cc:
Manual merge.
sql/sql_update.cc:
Manual merge.
storage/myisam/mi_create.c:
Manual merge.
into orca.ndb.mysql.com:/space_old/pekka/ndb/version/my51-bug14935
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
Auto merged
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
manual
- Add prelocking for stored procedures that uses sp or sf
- Update test result for sp_error(reported as bug#21294)
- Make note about new error message from sp-error(bug#17244)
mysql-test/r/sp-error.result:
Update test result(reported as bug#21294)
mysql-test/r/sp_notembedded.result:
Update test result after disabling test case
mysql-test/t/sp-error.test:
Add note about the faulty error message
mysql-test/t/sp_notembedded.test:
Disable test case until bug#17244 has been fixed
sql/sp.cc:
Add prelocking for all stored procedures that uses another sp or sf
sql/sp.h:
Add prelocking for all stored procedures that uses another sp or sf
sql/sql_base.cc:
Add prelocking for all stored procedures that uses another sp or sf
mysql-test/mysql-test-run.pl:
Report warining when failure to start mysqld was detected, this will allow the testcase to continue executing.
The failure to start mysqld will be caugt when executing mysqltest
mysql-test/mysql-test-run.pl:
Fix problem with checking that all im processes has shutdown cleanly
When it was detected that one of "im mysqlds" didn't shutdown, last was called to break the loop, but it only broke the inner loop.
Remove the while(0) loop and make this easier by setting $clean_shutdown to 0 if any such problem is detected.
Emit an error instead of doing ASSERT
mysql-test/r/create_not_windows.result:
update result
mysql-test/t/create_not_windows.test:
Add test case for bug #16532: mysql server assert in debug if table definition is removed
sql/sql_table.cc:
it could happen that an user deletes the frm file on OS level.
In addition if the table was already opened, the file system level
check for existance of table.frm will pass but get_cached_table_share()
will return non-NULL value. In this case we will emit the standard
error that the table exist. The error case is quite obscure but error
message is better than a sigabort.
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
mysql-test/mysql-test-run.pl:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
(well, im_options in this case, but using existing bug report)
mysql-test/t/disabled.def:
disable im_options test as it's non-deterministic. reopen bug
into willster.(none):/home/stewart/Documents/MySQL/5.1/main
BitKeeper/etc/config:
Auto merged
sql/opt_range.cc:
Auto merged
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp:
Auto merged
storage/ndb/test/ndbapi/testDict.cpp:
Auto merged
storage/ndb/test/run-test/daily-basic-tests.txt:
Auto merged
mysql-test/Makefile.am:
manual merge
storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
manual merge
Fixes for change that makes default appear in NODEGROUP as it should be instead of 0 which is an error
mysql-test/r/ndb_dd_backuprestore.result:
Fixes for change that makes default appear in NODEGROUP as it should be instead of 0 which is an error
mysql-test/r/ndb_partition_range.result:
Fixes for change that makes default appear in NODEGROUP as it should be instead of 0 which is an error
- Disable test case until fixed
mysql-test/r/sp.result:
Disable test case until bug#21039 is fixed
mysql-test/t/sp.test:
Disable test case until bug#21039 is fixed
- Only handle return codes from 'pclose' greater than zero as errors.
- It appears pclose can return -1 with errno set to ECHILD although the executin
process completed successfully.
client/mysqltest.c:
Only handle return codes from 'pclose' greater than zero as errors.
mysql-test/t/rpl_insert.test:
Wait after mysqlslap execution until all INSERT DELAYED operations has completed(i.e there are 5000 records in the table)
into chilla.local:/home/mydev/mysql-5.1-amain
configure.in:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
libmysqld/libmysqld.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/federated.result:
Auto merged
mysql-test/r/func_sapdb.result:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/gis-rtree.result:
Auto merged
mysql-test/r/gis.result:
Auto merged
mysql-test/r/key.result:
Auto merged
mysql-test/r/myisam.result:
Auto merged
mysql-test/r/symlink.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
mysql-test/t/func_sapdb.test:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/gis.test:
Auto merged
mysql-test/t/key.test:
Auto merged
mysql-test/t/myisam.test:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_geofunc.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_trigger.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.cc:
Auto merged
storage/myisam/mi_check.c:
Auto merged
storage/myisam/mi_create.c:
Auto merged
storage/myisam/mi_dynrec.c:
Auto merged
storage/myisam/mi_key.c:
Auto merged
storage/ndb/include/kernel/GlobalSignalNumbers.h:
Auto merged
storage/ndb/src/common/debugger/signaldata/SignalNames.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbScanOperation.cpp:
Auto merged
support-files/mysql.spec.sh:
Auto merged
BitKeeper/deleted/.del-mysqld.vcproj~6aa7b3f9c3e28fcb:
Manual merge
include/my_sys.h:
Manual merge
mysql-test/t/federated.test:
Manual merge
sql/ha_federated.cc:
Manual merge
tests/Makefile.am:
Manual merge
when --log is specified but log table is used
(recommit after docs reviewed the text of warnings)
sql/mysqld.cc:
add warnings if the filename was specified for --log
or --log-slow-queries options, while the log tables are used
- Using CLIENT_MULTI_RESULTS is needed to execute stored procedures
client/mysqlslap.c:
Use CLIENT_MULTI_RESULTS as connect_flags for all connections to the MySQL server.
Problem was with handling NULL values in ranges
mysql-test/r/partition_hash.result:
New partition pruning test cases
mysql-test/r/partition_list.result:
New partition pruning test cases
mysql-test/r/partition_pruning.result:
New partition pruning test cases
mysql-test/r/partition_range.result:
New partition pruning test cases
mysql-test/t/partition_hash.test:
New partition pruning test cases
mysql-test/t/partition_list.test:
New partition pruning test cases
mysql-test/t/partition_pruning.test:
New partition pruning test cases
mysql-test/t/partition_range.test:
New partition pruning test cases
sql/opt_range.cc:
Added comment
sql/sql_partition.cc:
Partition pruning didn't handle ranges with NULL values in a proper manner
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
if TUX update fails, need to abort op on tuple (5.1 specific)
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
if TUX update fails, need to abort op on tuple (5.1 specific)
storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp:
if TUX update fails, need to abort op on tuple (5.1 specific)
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
if TUX update fails, need to abort op on tuple (5.1 specific)
storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp:
if TUX update fails, need to abort op on tuple (5.1 specific)