Get server version from mysqld
mysql-test/r/lock_multi.result:
Update result format to latest version of mysqltest, remove leading scpace from query that has been "send"
mysql-test/t/rpl_truncate_7ndb.test:
get server version from mysqld
Remove extra space for "send" commands
mysql-test/extra/rpl_tests/rpl_truncate_helper.test:
Get $SERVER_VERSION from the mysqld
mysql-test/r/flush_table.result:
Remove extra space for "send" commands
mysql-test/r/handler_innodb.result:
Remove extra space for "send" commands
mysql-test/r/lock_multi.result:
Remove extra space for "send" commands
mysql-test/r/log_tables.result:
Remove extra space for "send" commands
Addendum fixes after changing the condition variable
for the global read lock.
The stress test suite revealed some deadlocks. Some were
related to the new condition variable (COND_global_read_lock)
and some were general problems with the global read lock.
It is now necessary to signal COND_global_read_lock whenever
COND_refresh is signalled.
We need to wait for the release of a global read lock if one
is set before every operation that requires a write lock.
But we must not wait if we have locked tables by LOCK TABLES.
After setting a global read lock a thread waits until all
write locks are released.
mysql-test/r/lock_multi.result:
Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.
Added test results.
mysql-test/t/lock_multi.test:
Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.
Added tests for possible deadlocks that did not occur
with the stress test suite.
mysys/thr_lock.c:
Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.
Added a protection against an infinite loop that occurs
with the test case for Bug #20662.
sql/lock.cc:
Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.
Signal COND_global_read_lock whenever COND_refresh
is signalled by using the new function broadcast_refresh().
Added the definition of a new function that signals
COND_global_read_lock whenever COND_refresh is signalled.
sql/mysql_priv.h:
Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.
Added a declaration for a new function that signals
COND_global_read_lock whenever COND_refresh is signalled.
sql/sql_base.cc:
Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.
Signal COND_global_read_lock whenever COND_refresh
is signalled by using the new function broadcast_refresh().
sql/sql_handler.cc:
Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.
Signal COND_global_read_lock whenever COND_refresh
is signalled by using the new function broadcast_refresh().
sql/sql_insert.cc:
Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.
Removed global read lock handling from inside of
INSERT DELAYED. It is handled on a higher level now.
sql/sql_parse.cc:
Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.
Wait for the release of a global read lock if one is set
before every operation that requires a write lock.
But don't wait if locked tables exist already.
sql/sql_table.cc:
Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.
Removed global read lock handling from inside of
CREATE TABLE. It is handled on a higher level now.
Signal COND_global_read_lock whenever COND_refresh
is signalled by using the new function broadcast_refresh().
Fixes bug#17264, for alter table on win32 for successfull operation completion
it is used TL_WRITE(=10) lock instead of TL_WRITE_ALLOW_READ(=6), however here
in innodb handler TL_WRTIE is lifted to TL_WRITE_ALLOW_WRITE, which causes
race condition when several clients do alter table simultaneously.
mysql-test/r/lock_multi.result:
Test case for bug#17264.
mysql-test/t/lock_multi.test:
Test case for bug#17264
into xiphis.org:/home/antony/work2/p2-bug20168.2
sql/sql_db.cc:
Auto merged
storage/myisam/mi_check.c:
Auto merged
storage/myisam/myisamdef.h:
Auto merged
mysql-test/r/lock_multi.result:
manual merge
mysql-test/t/lock_multi.test:
manual merge
into mysql.com:/home/mydev/mysql-5.0-amerge
mysql-test/r/lock_multi.result:
Merging 5.0-engines to 5.0 master.
mysql-test/t/lock_multi.test:
Merging 5.0-engines to 5.0 master.
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-new
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/grant.result:
Auto merged
mysql-test/r/heap_btree.result:
Auto merged
mysql-test/r/information_schema_db.result:
Auto merged
mysql-test/r/lock_multi.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/lock_multi.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
mysys/default.c:
Auto merged
server-tools/instance-manager/guardian.cc:
Auto merged
sql/field.h:
Auto merged
sql/item.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/lock.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.cc:
Auto merged
storage/heap/hp_write.c:
Auto merged
storage/ndb/src/ndbapi/DictCache.cpp:
Auto merged
storage/ndb/src/ndbapi/DictCache.hpp:
Auto merged
client/mysqlbinlog.cc:
Manual merge from 5.0
client/mysqldump.c:
Manual merge from 5.0
configure.in:
Manual merge from 5.0
mysql-test/r/mysqldump.result:
Manual merge from 5.0
mysql-test/t/mysqldump.test:
Manual merge from 5.0
mysql-test/t/rpl_insert_id.test:
Manual merge from 5.0
server-tools/instance-manager/manager.cc:
Manual merge from 5.0
sql/field.cc:
Manual merge from 5.0
sql/ha_ndbcluster.cc:
Manual merge from 5.0
sql/mysqld.cc:
Manual merge from 5.0
sql/sql_base.cc:
Manual merge from 5.0
sql/sql_lex.cc:
Manual merge from 5.0
sql/sql_select.cc:
Manual merge from 5.0
sql/sql_table.cc:
Manual merge from 5.0
into mysql.com:/home/mydev/mysql-5.1-bug19815
mysql-test/r/lock_multi.result:
Auto merged
mysql-test/t/lock_multi.test:
Auto merged
sql/sql_db.cc:
SCCS merged
The order of acquiring LOCK_mysql_create_db
and wait_if_global_read_lock() was wrong. It could happen
that a thread held LOCK_mysql_create_db while waiting for
the global read lock to be released. The thread with the
global read lock could try to administrate a database too.
It would first try to lock LOCK_mysql_create_db and hang...
The check if the current thread has the global read lock
is done in wait_if_global_read_lock(), which could not be
reached because of the hang in LOCK_mysql_create_db.
Now I exchanged the order of acquiring LOCK_mysql_create_db
and wait_if_global_read_lock(). This makes
wait_if_global_read_lock() fail with an error message for
the thread with the global read lock. No deadlock happens.
mysql-test/r/lock_multi.result:
Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
The test result
mysql-test/t/lock_multi.test:
Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
The test case
sql/sql_db.cc:
Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
Exchanged the order of acquiring LOCK_mysql_create_db
and wait_if_global_read_lock().
Replaced COND_refresh with COND_global_read_lock becasue of a bug in NTPL threads when using different mutexes as arguments to pthread_cond_wait()
The original code caused a hang in FLUSH TABLES WITH READ LOCK in some circumstances because pthread_cond_broadcast() was not delivered to other threads.
This fixes:
Bug#16986: Deadlock condition with MyISAM tables
Bug#20048: FLUSH TABLES WITH READ LOCK causes a deadlock
mysql-test/r/flush.result:
Added test case for deadlock with FLUSH TABLES WITH READ LOCK
mysql-test/r/lock_multi.result:
Test for bug in LOCK TABLE + optimize table
mysql-test/t/flush.test:
Added test case for deadlock with FLUSH TABLES WITH READ LOCK
mysql-test/t/lock_multi.test:
Test for bug in LOCK TABLE + optimize table
sql/lock.cc:
Replaced COND_refresh with COND_global_read_lock becasue of a bug in NTPL threads when using different mutexes as arguments to pthread_cond_wait()
The original code caused a hang in FLUSH TABLES WITH READ LOCK in some circumstances because pthread_cond_broadcast() was not delivered to other threads
sql/mysql_priv.h:
Added COND_global_read_lock
sql/mysqld.cc:
Added COND_global_read_lock
sql/sql_base.cc:
More DBUG statements
Added a broadcast in remove_table_from_cache() to release any threads waiting in open
Added missing DBUG_xxx_RETURN statements
Fixed some usage of not initialized variables (as found by valgrind)
Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called.
This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names()
This will allow Tomas to continue with his work to use namelocks to syncronize things.
Note: valgrind still produces a lot of warnings about using not initialized code and shows memory loss errors when running the ndb tests
BitKeeper/etc/ignore:
added mysql-test/r/*.log
client/mysqltest.c:
Change type of variables to get rid of compiler warnings
More debugging
Fix memory leak
mysql-test/mysql-test-run.sh:
Collect warnings about missing DBUG_RETURN statements
mysql-test/r/lock_multi.result:
Add test of new code
mysql-test/r/ndb_condition_pushdown.result:
Drop used tables before test
mysql-test/t/lock_multi.test:
Add test of new code
mysql-test/t/ndb_condition_pushdown.test:
Drop used tables before test
mysql-test/valgrind.supp:
Ignore 'safe' warnings from libz (when used with archive)
sql/event.cc:
More comments
Simplify code
Fixed memory leak found by valgrind
sql/ha_archive.cc:
Remove compiler warnings (Wrong handlerton structure and signed/unsigned comparison)
sql/ha_berkeley.cc:
Fixed compiler warning
sql/ha_blackhole.cc:
Fixed compiler warning
sql/ha_federated.cc:
Fixed compiler warning
sql/ha_heap.cc:
Fixed compiler warning
sql/ha_myisam.cc:
Fixed compiler warning
sql/ha_myisammrg.cc:
Fixed compiler warning
sql/ha_ndbcluster.cc:
Fixed compiler warnings
sql/ha_partition.cc:
Fixed compiler warning
Fixed error noticed by valgrind in ha_partition::rnd_init()
sql/handler.cc:
Fixed compiler warning
sql/handler.h:
Fixed compiler warning
sql/item.cc:
Fixed compiler warning
sql/item_xmlfunc.cc:
Fixed warning from valgrind when calling memcpy with wrong address
sql/lock.cc:
More debugging
sql/log.cc:
Fixed compiler warning
Indentation fixes
sql/log.h:
Fixed compiler warning
sql/mysql_priv.h:
Changed prototype for 'drop_locked_tables'
sql/opt_range.cc:
Indentation fix
sql/password.c:
Removed compiler warnings
sql/set_var.cc:
Fixed compiler warning
sql/slave.cc:
Fixed compiler warning
sql/sp_head.cc:
Fixed compiler warning
sql/sql_acl.cc:
Fixed compiler warning
sql/sql_analyse.cc:
Added missing DBUG_RETURN statements
sql/sql_base.cc:
Removed de-reference of not initialized pointer
More comments
drop_locked_tables() changed to not delete tables used for name locking
Fixed compiler warnings
sql/sql_delete.cc:
Fixed usage of not initialized variable
(deleted could be referenced in some not common error conditions)
sql/sql_parse.cc:
Added missing DBUG_VOID_RETURN
Simplify code
sql/sql_partition.cc:
Fixed usage of wrong variable (noticed by valgrind)
sql/sql_plugin.cc:
Removed compiler warning
sql/sql_show.cc:
Removed compiler warning
sql/sql_table.cc:
Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called.
This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names()
This will allow Tomas to continue with his work to use namelocks to syncronize things.
Fixed wrong test of 'table_type' (path_length could otherwise be accessed uninitialized)
Remove compile warnings about not initialized variables.
sql/sql_yacc.yy:
Ensure that no_write_to_binlog is properly initialized
(Was accessed uninitialized by partition code)
sql/table.cc:
Removed valgrind warnings (not fatal)
Removed compiler warnings
sql/tztime.cc:
Removed valgrind warning
storage/ndb/include/ndbapi/NdbIndexStat.hpp:
Removed compiler warning
Use open_normal_and_derived_tables instead of open_and_lock_tables when reading metadata for a table.
Add two test cases, one for "USE database" and one for "SHOW COLUMNS FROM table"
mysql-test/r/lock_multi.result:
Updated test results for test case for bug9998
mysql-test/r/mysql.result:
Updated results for test case for bug9998
mysql-test/t/lock_multi.test:
Test that "show columsn from t1" is not locked by another thread having a write lock on t1
mysql-test/t/mysql.test:
Add test case for BUG9998
- lock table t1 for write from mysql-test, then execute 'mysql' and call "USE test". This will test exactly what caused the bug.
sql/sql_show.cc:
Open tables without locking when reading metadata
- open and create derived tables
- detect which tables should be locked for write
- lock and fill derived tables
some unitialized variables fixed
mysql-test/r/lock_multi.result:
correct results returned
mysql-test/r/multi_update.result:
correct results returned
mysql-test/r/view.result:
correct results returned
mysql-test/t/multi_update.test:
correct results returned
mysql-test/t/view.test:
correct results returned
sql/mysql_priv.h:
derived tables processing splited on table creation and table filling
sql/sql_base.cc:
derived tables processing splited on table creation and table filling
sql/sql_class.h:
function to detect when we need fill derived tables
sql/sql_derived.cc:
derived tables processing splited on table creation and table filling
sql/sql_lex.cc:
fixed uninitialized value
sql/sql_load.cc:
fixed uninitialized value
sql/sql_parse.cc:
initialization muved (will be done for all queries)
sql/sql_prepare.cc:
preparation of multiupdate changed a bit because new locking procedure
sql/sql_update.cc:
new lock for multiupdate:
- open and create derived tables
- detect which tables should be locked for write
- lock and fill derived tables
sql/table.h:
place to store select_result between creation and filling tables
FOUND is not a reserved keyword anymore
Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
Note that the 5.0 tree is not yet up to date: Sanja will have to fix multi-update-locks for this merge to be complete
BUILD/SETUP.sh:
Portability fix
client/mysqltest.c:
Portability fix
mysql-test/r/drop.result:
updated results
mysql-test/r/func_str.result:
New warnings (after merge)
mysql-test/r/insert.result:
Updated tests
mysql-test/r/join_nested.result:
Updated results (because of new column types in 5.0)
mysql-test/r/lock_multi.result:
Temporarly wrong results until Sanja fixes multi-update-lock in 5.0
mysql-test/r/multi_update.result:
Temporary fix until Sanja fixes multi-update locking
mysql-test/r/ps_1general.result:
Update of results after merge
mysql-test/r/ps_2myisam.result:
Update of results after merge
mysql-test/r/ps_3innodb.result:
Update of results after merge
mysql-test/r/ps_4heap.result:
Update of results after merge
mysql-test/r/ps_5merge.result:
Update of results after merge
mysql-test/r/ps_6bdb.result:
Update of results after merge
mysql-test/r/query_cache.result:
Update of results after merge
mysql-test/r/range.result:
New results for new tests
mysql-test/r/rpl_auto_increment.result:
Update with new 4.0 information
mysql-test/r/rpl_charset.result:
After merge fixes
mysql-test/r/subselect.result:
After merge fixes
mysql-test/r/view.result:
Temporary fix until multi-update-locking is fixed
mysql-test/t/drop.test:
Safety fix
mysql-test/t/multi_update.test:
Temporary fix until multi-update-locking is fixed
mysql-test/t/rpl_charset.test:
More comments
mysql-test/t/sp-error.test:
Updated comments
mysql-test/t/view.test:
Temporary fix until multi-update-locking is fixed
scripts/mysql_fix_privilege_tables.sh:
Better error message
sql-common/client.c:
More debugging
sql/ha_ndbcluster.cc:
After merge fixes
sql/handler.cc:
After merge fixes
sql/item.cc:
Simple optimization of creating item
After merge fixed
Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
The problem is that if you compare a string field to a binary string, you can't replace the field with a string constant as the binary comparison may then fail (The original field value may be in a different case)
sql/item.h:
Added Item::set_no_const_sub() to be able to mark fields that can't be substituted
sql/item_cmpfunc.cc:
Mark fields compared as binary to not be substituted.
sql/item_func.cc:
After merge fix
sql/log_event.cc:
After merge fix
sql/mysql_priv.h:
After merge fix
sql/opt_range.cc:
After merge fix
sql/protocol.cc:
Made flags uint instead of int (as it's used as a bit mask)
sql/protocol.h:
Made flags uint instead of int (as it's used as a bit mask)
sql/protocol_cursor.cc:
Made flags uint instead of int (as it's used as a bit mask)
Indentation cleanups
sql/sp.cc:
After merge fixes
Removed compiler warnings
sql/sp_head.cc:
After merge fixes
sql/sql_base.cc:
After merge fixes
Removed 'send_error' from 'insert_fields()' as the error is sent higher up
sql/sql_class.cc:
Give assert if set_n_backup_item_arena is used twice
sql/sql_class.h:
Give assert if set_n_backup_item_arena is used twice
After merge fixes
Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
sql/sql_handler.cc:
After merge fixes
sql/sql_parse.cc:
After merge fixes
sql/sql_prepare.cc:
After merge fixes
sql/sql_select.cc:
After merge fixes
Moved 'build_equal_items' to optimize_cond() (logical place)
sql/sql_table.cc:
After merge fixes
sql/sql_trigger.cc:
After merge fixes
sql/sql_update.cc:
After merge fixes
(This should be fixed by Sanja to have lower granuality locking of tables in multi-update)
sql/sql_view.cc:
After merge fixes
sql/sql_yacc.yy:
After merge fixes
Don't have FOUND as a reserved keyword
Noteworthy:
- New HANDLER code
- New multi-update-grant-check code
- Table lock code in ha_innodb.cc was not applied
BitKeeper/etc/logging_ok:
auto-union
BitKeeper/deleted/.del-ctype-latin1_de.c~c5d8f9208bceb98e:
Auto merged
Build-tools/mysql-copyright-2:
Auto merged
acinclude.m4:
Auto merged
client/mysqladmin.c:
Auto merged
client/mysqldump.c:
Auto merged
include/config-win.h:
Auto merged
include/my_global.h:
Auto merged
include/myisam.h:
Auto merged
innobase/btr/btr0btr.c:
Auto merged
innobase/buf/buf0buf.c:
Auto merged
ltmain.sh:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
innobase/fsp/fsp0fsp.c:
Auto merged
innobase/include/dict0dict.h:
Auto merged
innobase/include/row0mysql.h:
Auto merged
innobase/log/log0log.c:
Auto merged
innobase/log/log0recv.c:
Auto merged
innobase/pars/pars0opt.c:
Auto merged
innobase/row/row0row.c:
Auto merged
innobase/sync/sync0arr.c:
Auto merged
innobase/ut/ut0dbg.c:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_close.c:
Auto merged
myisam/mi_create.c:
Auto merged
myisam/mi_locking.c:
Auto merged
myisam/myisampack.c:
Auto merged
mysql-test/r/delete.result:
Auto merged
mysql-test/r/func_if.result:
Auto merged
Build-tools/mysql-copyright:
Merge with 4.0 (too most of the code from 4.0)
Makefile.am:
merge
client/mysql.cc:
Used 4.1 code
configure.in:
merge
innobase/os/os0file.c:
merge
innobase/row/row0mysql.c:
merge
mysql-test/r/ctype_latin1_de.result:
merge
mysql-test/r/flush_table.result:
merge
mysql-test/r/func_str.result:
merge
mysql-test/r/handler.result:
merge
mysql-test/r/multi_update.result:
merge
mysql-test/r/type_timestamp.result:
Removed testing of 'new' mode, as this is only relevant for 4.0
mysql-test/r/update.result:
merge
mysql-test/t/delete.test:
merge
mysql-test/t/flush_table.test:
merge
mysql-test/t/func_str.test:
merge
mysql-test/t/handler.test:
merge
mysql-test/t/multi_update.test:
merge
mysql-test/t/type_timestamp.test:
Removed testing of 'new' mode, as this is only relevant for 4.0
mysql-test/t/update.test:
merge
mysys/errors.c:
merge
mysys/my_fstream.c:
merge
mysys/my_pread.c:
merge
mysys/my_write.c:
merge
mysys/mysys_priv.h:
merge
scripts/mysqlhotcopy.sh:
merge
sql/field.cc:
Keep code from 4.1
sql/field.h:
Keep code from 4.1
sql/ha_innodb.cc:
Don't merge lock code from 4.0; Heikki will look at this
sql/ha_myisam.cc:
merge
sql/handler.cc:
merge
sql/item_cmpfunc.cc:
merge
sql/item_cmpfunc.h:
merge
sql/item_strfunc.cc:
merge
sql/mysql_priv.h:
merge
sql/mysqld.cc:
merge
sql/protocol.cc:
merge
sql/records.cc:
merge
sql/repl_failsafe.cc:
merge
mysql-test/r/lock_multi.result:
merge
mysql-test/t/ctype_latin1_de.test:
merge
mysql-test/t/func_if.test:
merge
mysql-test/t/lock_multi.test:
merge
sql/repl_failsafe.h:
merge
Remove unnessessary header protection
sql/slave.h:
merge
sql/sql_acl.cc:
merge
sql/sql_base.cc:
merge
sql/sql_cache.cc:
auto merge
sql/sql_class.cc:
merge
sql/sql_class.h:
merge
sql/sql_delete.cc:
merge
sql/sql_handler.cc:
Get new HANDLER code into 4.1
sql/sql_parse.cc:
Keep old file
sql/sql_repl.cc:
merge
sql/sql_repl.h:
merge
sql/sql_show.cc:
merge
sql/sql_table.cc:
merge
sql/sql_union.cc:
Applied the examine_rows bug fix from 4.0 by hand
sql/sql_update.cc:
New multi-update-grant-check code from 4.0
sql/sql_yacc.yy:
New multi-update-grant-check code from 4.0
sql/stacktrace.c:
merge
sql/table.h:
merge
Ensures that WRITE lock is not obtained on all tables referenced.
mysql-test/r/lock_multi.result:
Bug#4118
New test for multi-update locking
mysql-test/r/multi_update.result:
Bug#4118
Fix test
mysql-test/t/lock_multi.test:
Bug#4118
New test for multi-update locking
mysql-test/t/multi_update.test:
Bug#4118
Fix test
sql/sql_parse.cc:
Bug#4118
Split multi-update to its own case statement in sql_parse.cc
sql/sql_update.cc:
Bug#4118
Overview of locking checking:
1. Open and acquire READ lock
2. Check to see which tables need WRITE lock
3. Unlock tables and relock
sql/sql_yacc.yy:
Bug#4118
Split multi-update to its own case statement in sql_parse.cc
bmove_allign -> bmove_align
Added OLAP function ROLLUP
Split mysql_fix_privilege_tables to a script and a .sql data file
Added new (MEMROOT*) functions to avoid calling current_thd() when creating some common objects.
Added table_alias_charset, for easier --lower-case-table-name handling
Better SQL_MODE handling (Setting complex options also sets sub options)
New (faster) assembler string functions for x86
BitKeeper/etc/ignore:
added libmysqld/sql_state.c
client/mysql.cc:
Added SQLSTATE to error messages
Added new function put_error() to be able to clean up some old code.
client/mysqltest.c:
Write ERROR SQLSTATE for all errors
dbug/dbug.c:
Portability fixes
include/m_string.h:
Rename bmove_allign as bmove_align
include/mysql.h:
Added SQLSTATE (for embedded version)
include/mysql_com.h:
Send correct SQLSTATE for the error to the client
libmysql/libmysql.c:
Changed default error state to HY000
Applied code cleanup patch
libmysqld/Makefile.am:
Added sql_state.cc
libmysqld/libmysqld.c:
Added sqlstate
mysql-test/r/analyse.result:
Updated results
mysql-test/r/ansi.result:
Updated results
mysql-test/r/auto_increment.result:
Updated results
mysql-test/r/bdb-deadlock.result:
Updated results
mysql-test/r/bdb.result:
Updated results
mysql-test/r/comments.result:
Updated results
mysql-test/r/create.result:
Updated results
mysql-test/r/ctype_collate.result:
Updated results
mysql-test/r/delayed.result:
Updated results
mysql-test/r/delete.result:
Updated results
mysql-test/r/derived.result:
Updated results
mysql-test/r/distinct.result:
Updated results
mysql-test/r/drop.result:
Updated results
mysql-test/r/err000001.result:
Updated results
mysql-test/r/explain.result:
Updated results
mysql-test/r/flush.result:
Updated results
mysql-test/r/fulltext.result:
Updated results
mysql-test/r/func_gconcat.result:
Updated results
mysql-test/r/func_system.result:
Updated results
mysql-test/r/grant_cache.result:
Updated results
mysql-test/r/group_by.result:
Updated results
mysql-test/r/handler.result:
Updated results
mysql-test/r/heap.result:
Updated results
mysql-test/r/heap_btree.result:
Updated results
mysql-test/r/heap_hash.result:
Updated results
mysql-test/r/innodb.result:
Updated results
mysql-test/r/innodb_handler.result:
Updated results
mysql-test/r/insert_select.result:
Updated results
mysql-test/r/insert_update.result:
Updated results
mysql-test/r/join.result:
Updated results
mysql-test/r/join_outer.result:
Updated results
mysql-test/r/key.result:
Updated results
mysql-test/r/lock.result:
Updated results
mysql-test/r/lock_multi.result:
Updated results
mysql-test/r/merge.result:
Updated results
mysql-test/r/multi_update.result:
Updated results
mysql-test/r/myisam.result:
Updated results
mysql-test/r/null.result:
Updated results
mysql-test/r/olap.result:
Updated results
mysql-test/r/order_by.result:
Updated results
mysql-test/r/packet.result:
Updated results
mysql-test/r/query_cache.result:
Updated results
mysql-test/r/row.result:
Updated results
mysql-test/r/rpl000001.result:
Updated results
mysql-test/r/rpl000009.result:
Updated results
mysql-test/r/rpl_empty_master_crash.result:
Updated results
mysql-test/r/rpl_log.result:
Updated results
mysql-test/r/rpl_replicate_do.result:
Updated results
mysql-test/r/rpl_rotate_logs.result:
Updated results
mysql-test/r/select.result:
Updated results
mysql-test/r/select_safe.result:
Updated results
mysql-test/r/show_check.result:
Updated results
mysql-test/r/sql_mode.result:
Updated results
mysql-test/r/subselect.result:
Updated results
mysql-test/r/temp_table.result:
Updated results
mysql-test/r/truncate.result:
Updated results
mysql-test/r/type_blob.result:
Updated results
mysql-test/r/type_decimal.result:
Updated results
mysql-test/r/type_float.result:
Updated results
mysql-test/r/type_ranges.result:
Updated results
mysql-test/r/union.result:
Updated results
mysql-test/r/update.result:
Updated results
mysql-test/r/user_var.result:
Updated results
mysql-test/r/varbinary.result:
Updated results
mysql-test/r/variables.result:
Updated results
mysql-test/t/ansi.test:
Test of sql_mode
mysql-test/t/derived.test:
Updated results
mysql-test/t/func_system.test:
Make this independen of the MySQL server name
mysql-test/t/lowercase_table.test:
Cleanup
mysql-test/t/olap.test:
A lot of new tests
mysql-test/t/sql_mode.test:
More test for sql_mode
mysql-test/t/subselect.test:
Added a few new tests (to find a bug in the item_ref code)
scripts/Makefile.am:
Added mysql_fix_privilege_tables.sql
scripts/mysql_fix_privilege_tables.sh:
Totally new script. This bascily just pipes mysql_fix_privilege_tables.sql through 'mysql' to 'mysqld'
sql/Makefile.am:
Added sql_state.cc
sql/item.cc:
Extended Item_field::eq() to be able to better match GROUP BY fields on the command line.
Needed for ROLLUP
sql/item.h:
Added function to be able to avoid calling current_thd() when doing new Item.
sql/item_sum.cc:
Moved copy_or_same() and some reset() functions from item_sum.h
Needed to be able to access thd->mem_root.
sql/item_sum.h:
Moved some functions to item_sum.cc
Added make_unique() for ROLLUP
sql/item_uniq.h:
Fixed return value
sql/mysql_priv.h:
Updated MODE flags
sql/mysqld.cc:
Added ANSI as it's own mode
Moved charset_info variables here
Cleaned up handler_count handling (for NT)
Added table_alias_charset, for easier --lower-case-table-name handling
sql/net_serv.cc:
New comment
sql/protocol.cc:
Send SQLSTATE to client
sql/set_var.cc:
Better SQL_MODE handling (Setting complex options also sets sub options)
sql/set_var.h:
Better SQL_MODE handling
sql/sql_base.cc:
Make alias depend on --lower-case-table-names
Make find_item_in_list also check database name
sql/sql_cache.cc:
Indentation cleanup
sql/sql_list.h:
Added safety assert
Addes support of alloc without current_thd()
sql/sql_prepare.cc:
Update after prototype change
sql/sql_select.cc:
Added ROLLUP
sql/sql_select.h:
structures for rollup
sql/sql_show.cc:
Easier SQL_MODE handling
sql/sql_string.cc:
Move CHARSET_INFO to mysqld (to be together with all other global variables)
sql/sql_string.h:
Added function to be able to avoid calling current_thd() when doing new Item.
sql/sql_table.cc:
Simpler --lower-case-table-name handling
sql/sql_union.cc:
Update after prototype change
sql/sql_yacc.yy:
ROLLUP
sql/unireg.h:
bmove_allign ->bmove_align
strings/Makefile.am:
Fix to be able to compile str_test.c
strings/ctype.c:
Removed empty lines
strings/str_test.c:
Added test of bmove_align
strings/strings-x86.s:
Faster bmove_align, bmove_upp and strmake
strings/strings.asm:
move_allg
client/mysqltest.c:
Fixed bug that comments did a ping
include/thr_lock.h:
Added function to abort a lock for a specific thread
mysql-test/mysql-test-run.sh:
Fixed where mysqltest traces are put
mysql-test/r/lock_multi.result:
Test for LOCK TABLE + DROP TABLE bug
mysql-test/t/lock_multi.test:
Test for LOCK TABLE + DROP TABLE bug
mysys/thr_lock.c:
Added function to abort a lock for a specific thread
sql/handler.cc:
Indentation cleanup
sql/lock.cc:
Added function to abort a lock for a specific thread
sql/mysql_priv.h:
Added function to abort a lock for a specific thread
sql/mysqld.cc:
Use automatic recover even with --safe
mysql-test/r/binary.result:
fixed test to be independed from environment
mysql-test/r/delayed.result:
fixed test to be independed from environment
mysql-test/r/fulltext_left_join.result:
fixed test to be independed from environment
mysql-test/r/func_group.result:
fixed test to be independed from environment
mysql-test/r/func_in.result:
fixed test to be independed from environment
mysql-test/r/key_primary.result:
fixed test to be independed from environment
mysql-test/r/lock_multi.result:
fixed test to be independed from environment
mysql-test/r/odbc.result:
fixed test to be independed from environment
mysql-test/r/type_set.result:
fixed test to be independed from environment
mysql-test/r/type_time.result:
fixed test to be independed from environment
mysql-test/r/type_timestamp.result:
fixed test to be independed from environment
mysql-test/r/type_year.result:
fixed test to be independed from environment
mysql-test/r/varbinary.result:
fixed test to be independed from environment
mysql-test/r/warnings.result:
fixed test to be independed from environment
mysql-test/t/binary.test:
fixed test to be independed from environment
mysql-test/t/delayed.test:
fixed test to be independed from environment
mysql-test/t/flush_table.test:
fixed test to be independed from environment
mysql-test/t/fulltext_left_join.test:
fixed test to be independed from environment
mysql-test/t/func_group.test:
fixed test to be independed from environment
mysql-test/t/func_in.test:
fixed test to be independed from environment
mysql-test/t/key_primary.test:
fixed test to be independed from environment
mysql-test/t/lock_multi.test:
fixed test to be independed from environment
mysql-test/t/odbc.test:
fixed test to be independed from environment
mysql-test/t/type_set.test:
fixed test to be independed from environment
mysql-test/t/type_time.test:
fixed test to be independed from environment
mysql-test/t/type_timestamp.test:
fixed test to be independed from environment
mysql-test/t/type_year.test:
fixed test to be independed from environment
mysql-test/t/varbinary.test:
fixed test to be independed from environment
mysql-test/t/warnings.test:
fixed test to be independed from environment
client/mysqltest.c:
Don't write error message to log if there is more than one possible error message
include/mysqld_error.h:
Made error messages more general
libmysqld/Makefile.am:
md5 is now in mysys
mysql-test/include/have_isam.inc:
Update to new result format
mysql-test/include/not_embedded.inc:
Update to new result format
mysql-test/mysql-test-run.sh:
Update to new result format
mysql-test/r/auto_increment.result:
Update to new result format
mysql-test/r/count_distinct2.result:
Update to new result format
mysql-test/r/create.result:
Update to new result format
mysql-test/r/func_system.result:
Update to new result format
mysql-test/r/isam.result:
Update to new result format
mysql-test/r/lock.result:
Update to new result format
mysql-test/r/lock_multi.result:
Update to new result format
mysql-test/r/rename.result:
Update to new result format
mysql-test/r/rpl000001.result:
Fix wrong test
mysql-test/r/tablelock.result:
Update to new result format
mysql-test/t/rename.test:
Update to new result format
sql/share/czech/errmsg.txt:
Made error messages more general
sql/share/danish/errmsg.txt:
Made error messages more general
sql/share/dutch/errmsg.txt:
Made error messages more general
sql/share/english/errmsg.txt:
Made error messages more general
sql/share/estonian/errmsg.txt:
Made error messages more general
sql/share/french/errmsg.txt:
Made error messages more general
sql/share/german/errmsg.txt:
Made error messages more general
sql/share/greek/errmsg.txt:
Made error messages more general
sql/share/hungarian/errmsg.txt:
Made error messages more general
sql/share/italian/errmsg.txt:
Made error messages more general
sql/share/japanese/errmsg.txt:
Made error messages more general
sql/share/korean/errmsg.txt:
Made error messages more general
sql/share/norwegian-ny/errmsg.txt:
Made error messages more general
sql/share/norwegian/errmsg.txt:
Made error messages more general
sql/share/polish/errmsg.txt:
Made error messages more general
sql/share/portuguese/errmsg.txt:
Made error messages more general
sql/share/romanian/errmsg.txt:
Made error messages more general
sql/share/russian/errmsg.txt:
Made error messages more general
sql/share/slovak/errmsg.txt:
Made error messages more general
sql/share/spanish/errmsg.txt:
Made error messages more general
sql/share/swedish/errmsg.txt:
Made error messages more general
sql/share/ukrainian/errmsg.txt:
Made error messages more general
sql/sql_lex.cc:
We can't remove lex->thd because sql_yacc uses it.
sql/sql_lex.h:
We can't remove lex->thd because sql_yacc uses it.
sql/sql_yacc.yy:
Cleanup
support-files/mysql.spec.sh:
Create MySQL-embedded rpm
tools/mysqlmanager.c:
Fix bug in merge
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