1.) Added a new option to mysql_lock_tables() for ignoring FLUSH TABLES.
Used the new option in create_table_from_items().
It is necessary to prevent the SELECT table from being reopend.
It would get new storage assigned for its fields, while the
SELECT part of the command would still use the old (freed) storage.
2.) Protected the CREATE TABLE and CREATE TABLE ... SELECT commands
against a global read lock. This prevents a deadlock in
CREATE TABLE ... SELECT in conjunction with FLUSH TABLES WITH READ LOCK
and avoids the creation of new tables during a global read lock.
3.) Replaced set_protect_against_global_read_lock() and
unset_protect_against_global_read_lock() by
wait_if_global_read_lock() and start_waiting_global_read_lock()
in the INSERT DELAYED handling.
mysql-test/r/create.result:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Added test results.
mysql-test/t/create.test:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Added tests which do not require concurrency.
sql/lock.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Added a new option to mysql_lock_tables() for ignoring FLUSH TABLES.
Changed the parameter list.
Removed two unnecessary functions. Their functionality is included in
wait_if_global_read_lock() and start_waiting_global_read_lock().
sql/mysql_priv.h:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Changed the declaration of mysql_lock_tables().
Added definitions for the new options.
sql/sql_acl.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_base.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_handler.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_insert.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Replaced set_protect_against_global_read_lock() and
unset_protect_against_global_read_lock() by
wait_if_global_read_lock() and start_waiting_global_read_lock()
in the INSERT DELAYED handling.
Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_parse.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Protected the CREATE TABLE and CREATE TABLE ... SELECT commands
against a global read lock. This prevents a deadlock in
CREATE TABLE ... SELECT in conjunction with FLUSH TABLES WITH READ LOCK
and avoids the creation of new tables during a global read lock.
sql/sql_table.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Adjusted mysql_lock_tables() calls to the new argument list.
Used the new option in create_table_from_items().
CREATE statement allowed extra unnecessary commas
mysql-test/r/alias.result:
Extra comma removed in CREATE statement
mysql-test/r/create.result:
New test for Bug 3481
mysql-test/r/func_str.result:
Extra comma removed in CREATE statement
mysql-test/r/rpl_multi_update.result:
Extra comma removed in CREATE statement
mysql-test/t/alias.test:
Extra comma removed in CREATE statement
mysql-test/t/create.test:
New test for bug 3481
mysql-test/t/func_str.test:
Extra comma removed in CREATE statement
mysql-test/t/rpl_multi_update.test:
Extra comma removed in CREATE statement
sql/sql_yacc.yy:
Fix for bug 3481
No path through the grammar which has no clauses
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
"Table truncated when creating another table name with Spaces"
added to check_db_name, check_table_name and check_column_name
test for end space
mysql-test/r/create.result:
added test for Bug #2985
"Table truncated when creating another table name with Spaces"
mysql-test/t/create.test:
added test for Bug #2985
"Table truncated when creating another table name with Spaces"
sql/sql_db.cc:
cancel strip end spaces for database name
sql/sql_parse.cc:
cancel strip end spaces for database name
sql/table.cc:
added to check_db_name, check_table_name and check_column_name
test for end space
Fixed chsize() problem on windows
Extend default timeout on windows clients to 1 year (to avoid timeout problems)
include/mysql.h:
Added client timeouts (for TCP/IP)
libmysql/libmysql.c:
Added client timeouts (for TCP/IP)
mysql-test/r/create.result:
More tests for CREATE TABLE IF NOT EXISTS ... SELECT
mysql-test/t/create.test:
More tests for CREATE TABLE IF NOT EXISTS ... SELECT
mysys/my_chsize.c:
Fix for windows
sql/handler.h:
Remove not used field 'if_not_exists'
Ordered fields to be more optimized for new CPU's
Added field 'table_existed'
sql/slave.cc:
Cleanup temporary tables when slave ends
sql/sql_class.h:
Remove not used 'do_not_drop' field
sql/sql_insert.cc:
Better fix for CREATE TABLE IF NOT EXISTS ... SELECT
sql/sql_table.cc:
Better fix for CREATE TABLE IF NOT EXISTS ... SELECT
Use SESSION TABLE_HANDLER as default table handler if given table handler doesn't exists
Docs/internals.texi:
Updated description for how DATE, TIME and TIMESTAMP are stored
mysql-test/r/create.result:
New tests
mysql-test/t/create.test:
New tests
sql/handler.cc:
Use SESSION TABLE_HANDLER as default table handler if given table handler doesn't exists.
sql/sql_parse.cc:
Fix that we return hostname instead of IP in SHOW PROCESSLIST
sql/sql_show.cc:
Print right hostname or IP in SHOW PROCESSLIST
- Fix for empty table/column names
mysql-test/t/create.test:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/table.cc:
Auto merged
tests/grant.pl:
Auto merged
sql/filesort.cc:
merge with 3.23
sql/sql_table.cc:
merge with 3.23
tests/grant.res:
merge with 3.23
once for all derived functions.
I also reverted my patch for MONTH() and added a test case.
My MONTH() patch was too specific. This is a general fix.
Plus a fix for security flaw in database hash
Docs/manual.texi:
Fixed bugs with create table from ITEM_FUNC and make it over
once for all derived functions.
I also reverted my patch for MONTH() and added a test case.
My MONTH() patch was too specific. This is a general fix.
mysql-test/r/create.result:
Fixed bugs with create table from ITEM_FUNC and make it over
once for all derived functions.
I also reverted my patch for MONTH() and added a test case.
My MONTH() patch was too specific. This is a general fix.
mysql-test/t/create.test:
Fixed bugs with create table from ITEM_FUNC and make it over
once for all derived functions.
I also reverted my patch for MONTH() and added a test case.
My MONTH() patch was too specific. This is a general fix.
sql/item_func.h:
Fixed bugs with create table from ITEM_FUNC and make it over
once for all derived functions.
I also reverted my patch for MONTH() and added a test case.
My MONTH() patch was too specific. This is a general fix.
sql/item_timefunc.h:
Fixed bugs with create table from ITEM_FUNC and make it over
once for all derived functions.
I also reverted my patch for MONTH() and added a test case.
My MONTH() patch was too specific. This is a general fix.
sql/sql_acl.cc:
Fixed a security flaw in database hash
configure.in:
Auto merged
BitKeeper/deleted/.del-global.h~e80d28157acfdcb5:
Auto merged
client/mysqlimport.c:
Auto merged
sql/ha_isam.cc:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/table.cc:
Auto merged
Fix for bug on intel where (int32) 1 << 32 == 1, which gave problems when using 32 keys.
Allow SET PASSWORD for anonymous user
Docs/manual.texi:
Changelog
client/mysql.cc:
Added help for --local-infile
client/mysqlimport.c:
Merge with 4.0.
Patch for LOCAL INFILE handling
configure.in:
cleanup
include/global.h:
Fix for bug on intel where (int32) 1 << 32 == 1
mysql-test/r/create.result:
Test of CREATE TABLE with 32 keys
mysql-test/t/create.test:
Test of CREATE TABLE with 32 keys
scripts/mysqlhotcopy.sh:
Patch for databasenames with space.
sql/ha_isam.cc:
Fix for bug on intel where (int32) 1 << 32 == 1
sql/ha_myisam.cc:
Fix for bug on intel where (int32) 1 << 32 == 1
sql/ha_myisammrg.cc:
Fix for bug on intel where (int32) 1 << 32 == 1
sql/mysqld.cc:
Added help for --local-infile
sql/sql_acl.cc:
Allow SET PASSWORD of anonymous user
sql/table.cc:
Fix for bug on intel where (int32) 1 << 32 == 1
Cleanup of multi-table-delete in sql_yacc.yy
Changed syntax of MAXIMUM QUERIES PER HOUR to MAX_QUERIES_PER_HOUR to
not get too many reserved words.
Docs/manual.texi:
Updated information about CAST
mysql-test/r/bigint.result:
New CAST syntax
mysql-test/r/create.result:
New CAST syntax
mysql-test/r/variables.result:
Fix after merge with 3.23
mysql-test/t/bigint.test:
New CAST syntax
mysql-test/t/create.test:
New CAST syntax
sql/item_create.cc:
New CAST syntax
sql/item_func.h:
New CAST syntax
sql/item_timefunc.cc:
New CAST syntax
sql/item_timefunc.h:
New CAST syntax
sql/lex.h:
Changed syntax to MAX_QUERIES_PER_HOUR to not get too many reserved words.
sql/mysql_priv.h:
Cleanup multi-delete
sql/sql_parse.cc:
Cleanup multi-delete
sql/sql_yacc.yy:
Cleanup multi-delete.
New CAST syntax.
Removed some restricted words.
Docs/manual.texi:
Updated changelog.
Update info about MERGE tables.
Moved section 'Why so many open tables'
mysql-test/r/create.result:
Added test of types in CREATE
mysql-test/t/create.test:
Added test of types in CREATE
sql/item_func.cc:
More different values for RAND(nr) and RAND(nr+1)
Speed up column-completion in 'mysql'
Don't use ISAM if HAVE_ISAM is not defined
A lot of fixes for the embedded version. All libraries are now included in libmysqld.a
Changed arguments to convert_dirname() to make it more general.
Renamed files in the 'merge' directory to all use a common prefix.
Don't compile both assembler and C functions on x86
BitKeeper/deleted/.del-mf_pack2.c~f07795bbcf57be7:
Delete: mysys/mf_pack2.c
Docs/manual.texi:
Updated chapter about embedded version
acinclude.m4:
Fix for using BDB and InnoDB with embedded
client/completion_hash.cc:
Speed up memory allocation
client/completion_hash.h:
Speed up memory allocation
client/mysql.cc:
Speed up memory allocation
client/mysqldump.c:
Fix to use now convert_dirname
client/mysqltest.c:
Fixed memory allocation bugs.
Added --basedir=#, --compress=#, --server-arg, --server-file.
Fixes for embedded version
Changed silent mode to -s instead of -q
include/my_global.h:
Update to use HAVE_ISAM
include/my_sys.h:
Cleanup of fn_format()
include/mysql.h:
Prepare FIELD struct for 4.1
include/mysql_embed.h:
Don't use ISAM in embedded version
innobase/include/srv0srv.h:
Make InnoDB startup/shutdown silent in embedded version
innobase/log/log0log.c:
Make InnoDB startup/shutdown silent in embedded version
innobase/srv/srv0srv.c:
Make InnoDB startup/shutdown silent in embedded version
innobase/srv/srv0start.c:
Make InnoDB startup/shutdown silent in embedded version
isam/isamlog.c:
new convert_dirname
libmysql/libmysql.c:
Prepare for 4.1
libmysqld/Makefile.am:
Changed to create one libmysqld.a file that includes all other libraries.
libmysqld/examples/Makefile.am:
Changed to use new libmysqld.a
libmysqld/examples/test-run:
Lot's of fixes to get new mysqltest with embedded MySQL to work.
libmysqld/lib_sql.cc:
Changed type of arguments for mysql_server_init() to make code more portable.
libmysqld/libmysqld.c:
Cleanup
merge/Makefile.am:
Rename to use common prefix.
merge/mrg_close.c:
Rename to use common prefix.
merge/mrg_create.c:
Rename to use common prefix.
merge/mrg_def.h:
Rename to use common prefix.
merge/mrg_delete.c:
Rename to use common prefix.
merge/mrg_extra.c:
Rename to use common prefix.
merge/mrg_info.c:
Rename to use common prefix.
merge/mrg_locking.c:
Rename to use common prefix.
merge/mrg_open.c:
Rename to use common prefix.
merge/mrg_panic.c:
Rename to use common prefix.
merge/mrg_rrnd.c:
Rename to use common prefix.
merge/mrg_rsame.c:
Rename to use common prefix.
merge/mrg_static.c:
Rename to use common prefix.
merge/mrg_update.c:
Rename to use common prefix.
myisam/myisamlog.c:
Use new convert_dirname
myisammrg/Makefile.am:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_close.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_create.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_def.h:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_delete.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_extra.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_info.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_locking.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_open.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_panic.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_queue.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_rfirst.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_rkey.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_rlast.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_rnext.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_rprev.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_rrnd.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_rsame.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_static.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_update.c:
Renamed mymrgdef.h -> myrg_def.h
myisammrg/myrg_write.c:
Renamed mymrgdef.h -> myrg_def.h
mysql-test/include/master-slave.inc:
Use short filenames for sockets (portability problem on Mac OS X)
mysql-test/mysql-test-run.sh:
cleanup
mysql-test/r/auto_increment.result:
Cleanup of tests for embedded version
mysql-test/r/func_system.result:
Cleanup of tests for embedded version
mysql-test/r/isam.result:
Cleanup of tests for embedded version
mysql-test/r/lock.result:
Cleanup of tests for embedded version
mysql-test/r/show_check.result:
Cleanup of tests for embedded version
mysql-test/t/auto_increment.test:
Cleanup of tests for embedded version
mysql-test/t/backup.test:
Cleanup of tests for embedded version
mysql-test/t/count_distinct2-master.opt:
Cleanup of tests for embedded version
mysql-test/t/count_distinct2.test:
Cleanup of tests for embedded version
mysql-test/t/create.test:
Cleanup of tests for embedded version
mysql-test/t/flush.test:
Cleanup of tests for embedded version
mysql-test/t/func_system.test:
Cleanup of tests for embedded version
mysql-test/t/isam.test:
Cleanup of tests for embedded version
mysql-test/t/kill.test:
Cleanup of tests for embedded version
mysql-test/t/lock.test:
Cleanup of tests for embedded version
mysql-test/t/order_fill_sortbuf-master.opt:
Cleanup of tests for embedded version
mysql-test/t/rpl000015.test:
Use short filenames for sockets (portability problem on Mac OS X)
mysql-test/t/rpl000016.test:
Use short filenames for sockets (portability problem on Mac OS X)
mysql-test/t/rpl000017.test:
Use short filenames for sockets (portability problem on Mac OS X)
mysql-test/t/rpl000018.test:
Use short filenames for sockets (portability problem on Mac OS X)
mysql-test/t/show_check.test:
Move ISAM specific tests to isam.test
mysql-test/t/status.test:
Cleanup of tests for embedded version
mysql-test/t/tablelock.test:
Cleanup
mysys/Makefile.am:
Removed not used mf_pack2.c
mysys/charset.c:
new convert_dirname
mysys/default.c:
new convert_dirname
mysys/mf_dirname.c:
Changed convert_dirname() to be more general
mysys/mf_format.c:
Changed bit flags to fn_format() to defines.
Added handling of relative filenames
BitKeeper/etc/ignore:
Added libmysqld/examples/test-gdbinit scripts/mysql_explain_log to the ignore list
mysys/mf_pack.c:
new convert_dirname
mysys/mf_tempfile.c:
new convert_dirname
scripts/Makefile.am:
Adde mysql_explain_log
scripts/mysql_config.sh:
Added support of --libmysqld-libs
sql/Makefile.am:
Fix to use 'innodb_system_libs'
sql/ha_innobase.cc:
Make InnoDB startup/shutdown silent in embedded version
sql/ha_isam.cc:
Added handling of HAVE_ISAM
sql/ha_isammrg.cc:
Added handling of HAVE_ISAM
sql/ha_myisam.cc:
Handle relative paths; Needed to support BACKUP TABLE in embedded version
sql/ha_myisammrg.cc:
Rename of filenames
sql/handler.cc:
Added handling of HAVE_ISAM
sql/item_func.cc:
Fix for ecc (Intel Compiler)
sql/mysql_priv.h:
Added global variable 'mysql_embedded'
sql/mysqld.cc:
Use HAVE_ISAM
sql/sql_parse.cc:
Use new convert_dirname
sql/sql_select.cc:
Fix for ecc (Intel Compiler)
sql/sql_table.cc:
Added handling of relative filenames
strings/Makefile.am:
Don't compile both assembler and C functions on x86
strings/bchange.c:
cleanup
Fixes for making distribution
Build-tools/Do-compile:
Added --no-strip option
Docs/manual.texi:
Changelog and some fixes to comparison section
client/mysqlshow.c:
Added --verbose option
mysql-test/r/create.result:
Test of CREATE ... SELECT with keys
mysql-test/t/create.test:
Test of CREATE ... SELECT with keys
scripts/make_binary_distribution.sh:
Changed to use long options
sql-bench/Comments/postgres.benchmark:
update
sql-bench/server-cfg.sh:
update to use 'vacuum analyze'
Fixed problem with negative DECIMAL() keys
Fixed some bugs with NULL keys in BDB
More mysql-test tests
Docs/manual.texi:
Changelog
client/mysqltest.c:
Added syntax: -- error #,#,...
heap/hp_info.c:
cleanup
include/thr_lock.h:
cleanup
isam/pack_isam.c:
cleanup
myisam/mi_check.c:
cleanup
myisam/mi_extra.c:
cleanup
myisammrg/myrg_rkey.c:
cleanup
mysql-test/mysql-test-run.sh:
Change to run test as root
mysql-test/r/bdb.result:
Many new tests
mysql-test/r/func_system.result:
Change to root user
mysql-test/t/bdb.test:
many more tests
mysql-test/t/create.test:
Change to work by test and root user
sql/field.cc:
Fixed problem with negative DECIMAL() keys
sql/filesort.cc:
cleanup
sql/ha_berkeley.cc:
Added purecoverage notes
Fixed some bugs with NULL keys
sql/init.cc:
cleanup
sql/mysql_priv.h:
cleanup
sql/mysqld.cc:
cleanup
sql/records.cc:
cleanup
sql/unireg.h:
cleanup