Solution for 4.0 and 4.1.
If the caller cannot re-open table(s), it gives a NULL
'refresh' argument to open_table(). We used to ignore
flushes then. Now we ignore drops too.
into mysql.com:/home/my/mysql-4.1
BitKeeper/etc/ignore:
auto-union
include/thr_lock.h:
Auto merged
mysys/thr_lock.c:
Auto merged
sql/lock.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_base.cc:
Simple merge
Fixed portability problem with bool in C programs
Moved close_thread_tables out from LOCK_thread_count mutex (safety fix)
my_sleep() -> pthread_cond_timedwait()
include/thr_lock.h:
bool -> my_bool (bool is not portable in C programs)
mysys/thr_lock.c:
bool -> my_bool (bool is not portable in C programs)
sql/lock.cc:
Added comment
Don't use | on bool variable
sql/mysql_priv.h:
Added comment
sql/slave.cc:
Moved close_thread_tables out from LOCK_thread_count mutex (safety fix)
sql/sql_base.cc:
Added comments
my_sleep() -> pthread_cond_timedwait() to get less code and potentitally faster loop
BitKeeper/etc/ignore:
added ac_available_languages_fragment
into c-450ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/mysql-4.1
include/thr_lock.h:
Auto merged
mysys/thr_lock.c:
Auto merged
sql/lock.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_table.cc:
Manual merge after 4.0 fix
sql/lock.cc:
Used flags immediately in call
sql/mysql_priv.h:
Added RTFC (short for remove_table_from_cache)
for constants and used hex syntax to clarify it is bits
in the flags
sql/sql_base.cc:
Use flags parameter immediately and use flags immediately in call
Change to other variant of eternal loop variant
sql/sql_table.cc:
Use flags immediately in call
remove_table_from_cache fails to signal other thread and gets
blocked when other thread also gets blocked
include/thr_lock.h:
Report if any threads was signalled
mysys/thr_lock.c:
Report if any threads was signalled
sql/lock.cc:
Report if any threads was signalled
Use new interface for remove_table_from_cache
sql/mysql_priv.h:
New interface for remove_table_from_cache
+ mysql_lock_abort_for_thread
sql/sql_base.cc:
Use new interface of remove_table_cache
Rewrote remove_table_from_cache to fix bug
sql/sql_table.cc:
Use new interface of remove_table_from_cache
This fixed a failure of insert_update.test on some platforms
mysys/thr_alarm.c:
Fixed problem noticed by valgrind
sql/opt_range.cc:
Simple optimization for common case
sql/sql_base.cc:
Safety assert
sql/sql_insert.cc:
Added comment
#9728 'Decreased functionality in "on duplicate key update
#8147 'a column proclaimed ambigous in INSERT ... SELECT .. ON DUPLICATE'
This ensures fields are uniquely qualified and also that one can't update other tables in the ON DUPLICATE KEY UPDATE part
mysql-test/r/insert_select.result:
More tests for bug #9728 and #8147
mysql-test/r/insert_update.result:
Updated tests after changing how INSERT ... SELECT .. ON DUPLICATE KEY works
mysql-test/t/insert_select.test:
More tests for bug #9728 and #8147
mysql-test/t/insert_update.test:
Updated tests after changing how INSERT ... SELECT .. ON DUPLICATE KEY works
mysys/my_access.c:
Cleanup (shorter loop variable names)
sql/ha_ndbcluster.cc:
Indentation fixes
sql/item.cc:
Remove item_flags
sql/item.h:
Remove item_flags
sql/mysql_priv.h:
New arguments to mysql_prepare_insert
sql/sql_base.cc:
Remove old fix for bug #8147
sql/sql_insert.cc:
Extend mysql_prepare_insert() with new field list for tables that can be used in the values port of ON DUPLICATE KEY UPDATE
sql/sql_parse.cc:
Revert fix for #9728
Allow one to use other tables in ON DUPLICATE_KEY for INSERT ... SELECT if there is no GROUP BY clause
sql/sql_prepare.cc:
New arguments to mysql_prepare_insert
sql/sql_yacc.yy:
Revert bug fix for #9728
Remove changes made by bug fix#8147. They strips list of insert_table_list to
only insert table, which results in error reported in bug #9728.
Added flag to Item to resolve ambigous fields reported in bug #8147.
sql/item.h:
Fix bug#9728 decreased functionality in "on duplicate key update".
sql/item.cc:
Fix bug#9728 decreased functionality in "on duplicate key update"
sql/sql_parse.cc:
Fix bug#9728 decreased functionality in "on duplicate key update"
sql/sql_base.cc:
Fix bug#9728 decreased functionality in "on duplicate key update".
sql/sql_yacc.yy:
Fix bug#9728 decreased functionality in "on duplicate key update"
mysql-test/t/insert_select.test:
Test case for bug#9728 Decreased functionality in "on duplicate key update".
mysql-test/r/insert_select.result:
Test case for bug#9728 Decreased functionality in "on duplicate key update".
into neptunus.(none):/home/msvensson/mysql/bug10365
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_table.cc:
Auto merged
- Updated after review
sql/ha_ndbcluster.cc:
Return -1 if table does not exists
sql/handler.cc:
Return -1 if table does not exists
Return 0 if table exists and it could be created
Return >0 if table existed but it could not be created.
sql/sql_base.cc:
Only need to call ha_create_table_from_engine and check if result is > 0. If that is the case, print error message
- Added better error messages when trying to open a table that can't be discovered or unpacked. The most likely cause of this is that it does not have any frm data, probably since it has been created from NdbApi or is a NDB system table.
- Separated functionality that was in ha_create_table_from_engine into two functions. One that checks if the table exists and another one that tries to create the table from the engine.
mysql-test/r/ndb_autodiscover.result:
Add tests for reading from a table that can't be discovered(SYSTAB_0)
Discovery is not performed during create table anymore.
mysql-test/t/ndb_autodiscover.test:
Add tests for reading from a table that can't be discovered(SYSTAB_0)
Discovery is not performed during create table anymore.
ndb/test/ndbapi/create_tab.cpp:
Set connectstring before creating Ndb object.
sql/ha_ndbcluster.cc:
Rename and use the function ndbcluster_table_exists_in_engine.
Correct return valu from ndbcluster_discover
Remove old code "ndb_discover_tables"
sql/ha_ndbcluster.h:
Rename function ndbcluster_table_exists to ndb ndbcluster_table_exists_in_engine
sql/handler.cc:
Update comment of ha_create_table_from_engine
Remove parameter create_if_found from ha_create_table_from_engine, the function ha_table_exists_in_engine is now used toi check if table is found in engine.
Cleanup return codes from ha_create_table_from_engine.
Change name of ha_table_exists to ha_table_exists_in_engine, update comment and returne codes.
sql/handler.h:
Remove paramter create_if_cound from ha_create_table_from_engine
Rename ha_table_exists to ha_table_exists_in_engine
sql/sql_base.cc:
Use the function ha_table_exists_in_engine to detect if table exists in enegine.
If it exists, call function ha_create_table_from_engine to try and create it.
If create of table fails, set correct error message.
sql/sql_table.cc:
Add comments, remove parameter create_if_found to ha_create_table_from_engine.
When dropping a table, try to discover it from engine. If discover fails, use same error message as if the table didn't exists.
Maybe another message should be displayed here, ex: "Table could not be dropped, unpack failed"
When creating a new table, use ha_table_exists_in_engine to check if a table with the given name already exists.
Hand merged from 4.0.
sql/lock.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_table.cc:
Auto merged
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().
client/mysql.cc:
Remove usage of c_ptr_safe() as this causes a linkage problem when compiling MySQL without inline functions
sql/sql_base.cc:
Don't use c_ptr_safe() on this string as this causes a realloc and the String object (allocated by sql_yacc.yy) is never freed
bug#10175 - blackhole.test hangs with "Warning: prev link 1 didn't point at previous lock at read: read lock with no write locks"
sql/sql_base.cc
libmysqld/examples/mysql.cc linking problem
sql/ha_blackhole.cc:
bug#10175 - blackhole.test hangs with "Warning: prev link 1 didn't point at previous lock at read: read lock with no write locks"
sql/sql_base.cc:
libmysqld/examples/mysql.cc linking problem
MySQL server 100% CPU if FLUSH TABLES WITH READ LOCK + INSERT
Infinite loop caused by missing update to thd version.
sql/sql_base.cc:
Bug#6616
thd version needs to be updated before reopening tables
to prevent an infinite loop.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
and fixing it another way (per Monty; a simpler solution which does not increase the number
of binlog events is to always execute DROP TEMPORARY TABLE IF EXISTS on slave). A new test rpl_drop_temp.
2) fixing BUG#8436 "Multiple "stacked" SQL statements cause replication to stop" by setting
thd->query_length to the length of the query being executed, not counting the next queries
if this is a multi-query. Should also improve display of SHOW PROCESSLIST. A new test rpl_multi_query.
mysql-test/r/drop_temp_table.result:
back to one single DROP
sql/sql_base.cc:
undoing the fix I had made some days ago: we are back to one single DROP TEMPORARY TABLE for all temp tables.
sql/sql_parse.cc:
1) set thd->query_length to the length of the query being executed, excluding the other next queries
if this is a multi-query. The setting happens ASAP, ie. just after we know it's a multi-query, ie. just after yyparse().
Don't include the ';' in thd->query_length, because this is not good for storage in binlog.
2) always execute a DROP TEMPORARY TABLE IF EXISTS on slave, don't skip it even if --replicate-ignore-table
within is dropped and lower_case_table_names is set. (Bug #8355)
mysql-test/t/lowercase_table2.test:
Add new regression test
mysql-test/r/lowercase_table2.result:
Add results for regression test
sql/mysql_priv.h:
Change remove_db_from_cache() to use char* instead of my_string
sql/sql_base.cc:
Lowercase database name in remove_db_from_cache so
that all of the correct entries are removed.
when we close the session's temp tables at session end, we automatically write to binlog *one* DROP TEMPORARY TABLE *per tmp table*.
mysql-test/r/drop_temp_table.result:
result update (note: one DROP TEMPORARY TABLE per tmp table)
mysql-test/t/drop_temp_table.test:
checking that we have one DROP TEMPORARY TABLE per tmp table now, not one multi-table DROP.
Hiding columns Log_pos/End_log_pos per Monty's request.
sql/sql_base.cc:
When we close the session's temp tables at session end, we automatically write to binlog one DROP TEMPORARY TABLE per tmp table,
not one single multi-table DROP TEMPORARY TABLE (because it causes problems if slave has --replicate*table rules).
into sanja.is.com.ua:/home/bell/mysql/bk/work-4.1
sql/item.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/r/subselect.result:
Forward reference detection
mysql-test/t/subselect.test:
Forward reference detection
sql/item.cc:
now forward reference is detected via ref_pointer_array, because some literal constants are 'fixed' just after creation
sql/sql_base.cc:
fill ref_pointer_array with zerows for forward reference detection.
The bug was that if you have two TL_WRITE_DELAYED at the same time,
mi_lock_databases() could be done in the wrong order and we could write the wrong header to the MyISAM index file.
sql/mysql_priv.h:
Fix bug in insert delayed with prepared statements
sql/sql_base.cc:
Fix bug in insert delayed with prepared statements
sql/sql_prepare.cc:
Fix bug in insert delayed with prepared statements
The bug was that if you have two TL_WRITE_DELAYED at the same time,
mi_lock_databases() could be done in the wrong order and we could write the wrong header to the MyISAM index file.
* Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item.cc:
* More comments
* Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item.h:
Assert added
sql/item_cmpfunc.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item_func.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item_strfunc.h:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item_subselect.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/item_sum.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/set_var.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/sql_base.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/sql_handler.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/sql_help.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
sql/sql_select.cc:
Backport of safety measures from 5.0: make numeorous replaces:
s/item->fix_fields()/if (!item->fixed) item->fix_fields()
into mysql.com:/home/dlenev/src/mysql-4.1-bg6765
sql/item_strfunc.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_db.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
tables requires privileges for them if some table or column level grants
present" (with after-review fixes).
We should set SELECT_ACL for implicitly opened tables in
my_tz_check_n_skip_implicit_tables() to be able to bypass privilege
checking in check_grant(). Also we should exclude those tables from
privilege checking in multi-update.
mysql-test/r/timezone2.result:
Extended test for bug #6116 "SET time_zone := ... requires access to
mysql.time_zone tables"
Added test for bug #6765 "Implicit access to time zone description
tables requires privileges for them if some table or column level grants
present"
mysql-test/t/timezone2.test:
Extended test for bug #6116 "SET time_zone := ... requires access to
mysql.time_zone tables"
Added test for bug #6765 "Implicit access to time zone description
tables requires privileges for them if some table or column level grants
present"
sql/item_geofunc.cc:
sql_acl.h is now included via mysql_priv.h
sql/item_strfunc.cc:
sql_acl.h is now included via mysql_priv.h
sql/log.cc:
sql_acl.h is now included via mysql_priv.h
sql/mysql_priv.h:
Now we have to include sql_acl.h before tztime.h, since
my_tz_check_n_skip_implicit_tables() defined there requires
SELECT_ACL constant defined in sql_acl.h.
sql/mysqld.cc:
sql_acl.h is now included via mysql_priv.h
sql/repl_failsafe.cc:
sql_acl.h is now included via mysql_priv.h
sql/set_var.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_acl.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_base.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_cache.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_class.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_db.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_derived.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_do.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_insert.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_parse.cc:
check_one_table_access(): Tweaked comments.
multi_update_precheck(): Added skipping of implicitly opened tables
during privilege checking.
sql/sql_prepare.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_repl.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_show.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_update.cc:
sql_acl.h is now included via mysql_priv.h
sql/sql_yacc.yy:
sql_acl.h is now included via mysql_priv.h
sql/tztime.h:
my_tz_check_n_skip_implicit_tables():
We should set SELECT_ACL for implictly opened tables to be able to
bypass privilege checking in check_grant().
CREATE DATABASE statement used the current database instead of the
database created when checking conditions for replication.
CREATE/DROP/ALTER DATABASE statements are now replicated based on
the manipulated database.
mysql-test/t/rpl_until.test:
Longer sleep to allow slave to stop.
mysql-test/t/rpl_charset.test:
Position change in binary file.
mysql-test/r/drop_temp_table.result:
Position change in binlog.
mysql-test/r/rpl_loaddata_rule_m.result:
Position change in binlog.
mysql-test/r/rpl_charset.result:
Position change in binlog.
sql/log_event.h:
Added new flag and parameter to suppress generation of
USE statements.
sql/log_event.cc:
Added parameter and code to suppress generation of
USE statements.
sql/sql_db.cc:
Suppress generation of USE before CREATE/ALTER/DROP DATABASE
statements.
sql/log.cc:
Query_log_event have new extra parameter.
sql/sql_table.cc:
Query_log_event have new extra parameter.
sql/sql_base.cc:
Query_log_event have new extra parameter.
sql/sql_update.cc:
Query_log_event have new extra parameter.
sql/sql_insert.cc:
Query_log_event have new extra parameter.
sql/sql_rename.cc:
Query_log_event have new extra parameter.
sql/sql_delete.cc:
Query_log_event have new extra parameter.
sql/sql_acl.cc:
Query_log_event have new extra parameter.
sql/handler.cc:
Query_log_event have new extra parameter.
sql/item_func.cc:
Query_log_event have new extra parameter.
sql/sql_parse.cc:
Query_log_event have new extra parameter.
Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
This gives us the following benefits:
- Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
- Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
- We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
client/mysqltest.c:
Remove some not needed defines
(Things like this should be done in config-win.h)
include/config-win.h:
Added popen() and pclose() compatibility macros
mysql-test/t/rpl_failed_optimize-master.opt:
Portability fix
sql/ha_berkeley.cc:
New thd->memroot handling
sql/item_cmpfunc.cc:
Simpler arena swapping code
sql/item_func.cc:
Simpler arena swapping code
sql/item_subselect.cc:
Simpler arena swapping code
New thd->mem_root handling
sql/item_sum.cc:
New thd->mem_root handling
sql/item_timefunc.cc:
Fixed not-initalized usage errors found by valgrind
sql/log_event.cc:
New thd->mem_root handling
sql/mysql_priv.h:
New thd->mem_root handling
sql/mysqld.cc:
New thd->mem_root handling
sql/opt_range.cc:
New thd->mem_root handling
sql/repl_failsafe.cc:
New thd->mem_root handling
sql/set_var.cc:
New thd->mem_root handling
sql/sql_acl.cc:
New thd->mem_root handling
sql/sql_base.cc:
Simpler arena swapping code
New thd->mem_root handling
sql/sql_class.cc:
New thd->mem_root handling
sql/sql_class.h:
Simpler arena swapping code
New thd->mem_root handling
sql/sql_db.cc:
New thd->mem_root handling
sql/sql_error.cc:
New thd->mem_root handling
sql/sql_help.cc:
New thd->mem_root handling
sql/sql_insert.cc:
New thd->mem_root handling
sql/sql_parse.cc:
New thd->mem_root handling
Added some extra checking of return value of new
sql/sql_prepare.cc:
New thd->mem_root handling
sql/sql_select.cc:
New thd->mem_root handling
sql/sql_select.h:
New thd->mem_root handling
sql/sql_union.cc:
Simpler arena swapping code
sql/sql_yacc.yy:
New thd->mem_root handling
sql/table.cc:
New thd->mem_root handling
sql/thr_malloc.cc:
New thd->mem_root handling
tests/client_test.c:
Added drop table to some tests
Changed some table names to 't1'
BitKeeper/deleted/.del-innodb-lock-master.opt~f76a4a1999728f87:
Auto merged
innobase/include/trx0sys.h:
Auto merged
innobase/srv/srv0srv.c:
Auto merged
innobase/trx/trx0purge.c:
Auto merged
innobase/trx/trx0rseg.c:
Auto merged
mysql-test/r/innodb-lock.result:
Auto merged
mysql-test/t/innodb-lock.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/mysqld.cc:
Use local version during merge
New mysqltest that can run mysqltest with PS
Added support for ZEROFILL in PS
Fixed crash when one called mysql_stmt_store_result() without a preceding mysql_stmt_bind_result()
Updated test cases to support --ps-protocol
(Some tests are still run using old protocol)
Fixed crash in PS when using SELECT * FROM t1 NATURAL JOIN t2...
Fixed crash in PS when using sub queries
Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
Fixed wrong permissions check in PS and multi-table updates (one could get permission denied for legal quries)
Fix for PS and SELECT ... PROCEDURE
Reset all warnings when executing a new PS query
group_concat(...ORDER BY) didn't work with PS
Fixed problem with test suite when not using innodb
BitKeeper/deleted/.del-innodb-lock-master.opt~f76a4a1999728f87:
Delete: mysql-test/t/innodb-lock-master.opt
client/Makefile.am:
mysqltest now uses regex
client/mysqltest.c:
Added support for testing of prepared statements (with --ps-protocol)
Main code was done by Kent, I did mainly some cleanups and minor bug fixes
New test commands:
--disable_ps_protocol
--enable_ps_protocol
NOTE: new code still has some things that needs to be cleaned up.
For example run_query_stmt_handle_error() should be made more general so that same code can be used also by 'normal' queries
configure.in:
mysqltest now uses regex
libmysql/libmysql.c:
Reset warning_count after prepare (safety). In the future we should also provide warnings on prepare
integer -> string conversion now handles ZEROFILL
double -> string conversion is now closer to the one in the server
Fixed crash when one called mysql_stmt_store_result() without preceding mysql_stmt_bind_result()
libmysqld/examples/Makefile.am:
mysqltest now uses regex
mysql-test/include/have_query_cache.inc:
Fixes for --ps-protocol
mysql-test/include/ps_conv.inc:
Fixes for --ps-protocol
mysql-test/mysql-test-run.sh:
Added options --ps-protocol
mysql-test/r/ctype_utf8.result:
Fixed test case
mysql-test/r/fulltext_cache.result:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/fulltext_left_join.result:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/fulltext_multi.result:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/innodb-lock.result:
Fixed test to work even if Innodb is not compiled in.
mysql-test/t/create.test:
Fixes for --ps-protocol
mysql-test/t/ctype_utf8.test:
Remove warnings
mysql-test/t/date_formats.test:
Fixes for --ps-protocol
mysql-test/t/fulltext_cache.test:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/fulltext_left_join.test:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/fulltext_multi.test:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/func_group.test:
Fixes for --ps-protocol
mysql-test/t/func_sapdb.test:
Fixes for --ps-protocol
mysql-test/t/innodb-lock.test:
Fixed test to work even if Innodb is not compiled in.
mysql-test/t/insert.test:
Fixes for --ps-protocol
mysql-test/t/insert_select.test:
Fixes for --ps-protocol
mysql-test/t/insert_update.test:
Fixes for --ps-protocol
mysql-test/t/metadata.test:
Fixes for --ps-protocol
mysql-test/t/multi_statement.test:
Fixes for --ps-protocol
mysql-test/t/ps_1general.test:
Fixes for --ps-protocol
mysql-test/t/rollback.test:
Fixes for --ps-protocol
mysql-test/t/rpl_redirect.test:
Fixes for --ps-protocol
mysql-test/t/rpl_user_variables.test:
Fixes for --ps-protocol
mysql-test/t/select.test:
Fixes for --ps-protocol
mysql-test/t/status.test:
Fixes for --ps-protocol
mysql-test/t/type_blob.test:
Fixes for --ps-protocol
mysql-test/t/type_float.test:
Fixes for --ps-protocol
mysql-test/t/union.test:
Fixes for --ps-protocol
mysql-test/t/warnings.test:
Fixes for --ps-protocol
mysys/my_alloc.c:
More debugging information
sql-common/client.c:
More debugging information
sql-common/my_time.c:
TIME didn't support full range with PS
sql/field.cc:
TIME didn't support full range with PS
sql/item_cmpfunc.cc:
IN(constants,...) didn't work with PS
sql/item_subselect.cc:
Some subqueries didn't work with PS
sql/item_sum.cc:
group_concat(...ORDER BY) didn't work with PS
Removed variable warning_available as 'warning' can be used for this.
sql/item_sum.h:
Removed not needed variable
sql/protocol.cc:
TIME didn't support full range with PS
sql/set_var.cc:
Style fix
sql/sql_base.cc:
setup_wild() didn't properly restore old arena, which caused core dump in PS when using
SELECT * FROM t1 NATURAL JOIN t2...
sql/sql_class.cc:
Style fix
sql/sql_error.cc:
Style fix
sql/sql_insert.cc:
Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
sql/sql_lex.h:
Fix for PS and procedures
sql/sql_parse.cc:
More debugging information
Make a copy of 'db' in PS as this may change
Fixed wrong permissions check in PS and multi-table updates
sql/sql_prepare.cc:
Fix for PS and SELECT ... PROCEDURE
Reset all warnings when executing a new query
sql/sql_union.cc:
Fixes for PS and SELECT ... PROCEDURE
Reset 'with_wild' as 'wild' is resolved on prepare
names with ident. tables fr. diff. schemata": revise all uses of
Item_field and make them prepared-statements friendly when necessary.
mysql-test/r/ps.result:
Test results fixed: the test case for Bug#6050
mysql-test/r/ps_1general.result:
Test results fixed: in prepared statements we expand '*' to a list
of fully qualified fields (db.table.column).
mysql-test/t/ps.test:
A test for Bug#6050 "EXECUTE stmt reports ambiguous fieldnames with
ident. tables fr. diff. schemata"
sql/item.cc:
Revise all Item_field constructors: we need to make sure that no Item_field
object points to unaccessible memory in prepared statements.
sql/item.h:
Revise all Item_field constructors: we need to make sure that no Item_field
object points to unaccessible memory in prepared statements.
sql/sql_base.cc:
Item_field use changed to be prepared statements friendly.
sql/sql_class.h:
New check of Item_arena state.
sql/sql_union.cc:
Fixing the problem with name resolving in UNION and prepared statements:
In case of SELECT a, b, c FROM t1 UNION SELECT a, b, c FROM t2 the list of
selected items is represented as a List<Item_field>, where each
Item_field points to a field of temporary table.
But the temporary table is created anew on each execution of the prepared
statement. So on each subsequent execution we should reset Item_field
items to point to fields from freshly-created temporary table.
sql/table.h:
Comment TABLE member.
BitKeeper/etc/logging_ok:
auto-union
Docs/Support/texi2html:
Auto merged
innobase/trx/trx0rec.c:
Auto merged
libmysql/libmysql.c:
Auto merged
myisam/myisampack.c:
Auto merged
mysql-test/t/innodb-lock.test:
Auto merged
mysys/thr_lock.c:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/lock.cc:
Auto merged
sql/sql_acl.cc:
Keep old code
mysql-test/r/innodb-lock.result:
Fix test case (old one didn't test things correctly)
mysql-test/t/innodb-lock.test:
Fix test case (old one didn't test things correctly)
mysys/thr_lock.c:
More debugging information
sql/mysqld.cc:
Enable innodb_table_locks as default, as otherwise there is a possibility for deadlocks
sql/sql_base.cc:
More debug information
doesn't need to have it's own recovery mechanism.
sql/item.cc:
Deployment of centralized Item change registry, step 2: Item_ref
doesn't need to have it's own recovery mechanism, so it was simplified.
sql/item.h:
Deployment of centralized Item change registry, step 2: Item_ref
doesn't need to have it's own recovery mechanism, so it was simplified.
sql/item_cmpfunc.cc:
- Item::split_sum_func now requires THD
- use THD::register_item_tree_change
sql/item_cmpfunc.h:
- Item::split_sum_func now requires THD
sql/item_func.cc:
- Item::split_sum_func now requires THD
- use THD::register_item_tree_change
sql/item_func.h:
- Item::split_sum_func now requires THD
sql/item_row.cc:
- Item::split_sum_func now requires THD
- use THD::register_item_tree_change
sql/item_row.h:
- Item::split_sum_func now requires THD
sql/item_strfunc.cc:
- Item::split_sum_func now requires THD
- use THD::register_item_tree_change to register changes in the item
tree
sql/item_strfunc.h:
- Item::split_sum_func now requires THD
sql/item_subselect.cc:
- use updated Item_ref constructor
sql/sql_base.cc:
- Item::split_sum_func now requires THD
sql/sql_select.cc:
- Item::split_sum_func now requires THD
sql/sql_yacc.yy:
- use updated Item_ref constructor
Some bigger code changes was necessary becasue of the multi-table-update and the new HANDLER code
include/hash.h:
Added back function that's was used in 4.0
mysql-test/r/delete.result:
Update results after merge
mysql-test/r/flush_table.result:
Update results after merge
mysql-test/r/func_str.result:
Update results after merge
mysql-test/r/handler.result:
Update results after merge
Change is big becasue in MySQL 4.1 you are not allowed to qualify the handler alias with a databasename
mysql-test/r/multi_update.result:
More startup cleanups
mysql-test/r/rename.result:
More startup-cleanups
mysql-test/r/select.result:
More startup cleanups
mysql-test/r/show_check.result:
More startup-cleanups
mysql-test/t/ctype_latin1_de.test:
Cleanup
mysql-test/t/derived.test:
Portability fix
mysql-test/t/handler.test:
Update results after merge
Change is big becasue in MySQL 4.1 you are not allowed to qualify the handler alias with a databasename
mysql-test/t/multi_update.test:
More startup cleanups
mysql-test/t/range.test:
More comments
mysql-test/t/rename.test:
More startup cleanups
mysql-test/t/select.test:
More startup cleanups
mysql-test/t/show_check.test:
More startup cleanups
mysql-test/t/type_timestamp.test:
Add back test deleted during merge
sql/item_cmpfunc.cc:
After merge fixes
sql/item_func.cc:
Remove compiler warning
sql/mysql_priv.h:
After merge fixes
sql/mysqld.cc:
After merge fixes
sql/sql_acl.cc:
More debugging
sql/sql_base.cc:
After merge fixes
(This fix was needed bacause of multi-table-update reopens tables)
sql/sql_handler.cc:
After merge fixes
sql/sql_lex.h:
After merge fixes
sql/sql_select.cc:
After merge fixes
sql/sql_show.cc:
After merge fixes
sql/sql_table.cc:
After merge fixes
Simple cleanup of mysql_discard_or_import_tablespace
sql/sql_update.cc:
After merge fixes
Rework mysql_multi_update to take into account derived tables.
sql/sql_yacc.yy:
After merge fixes
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
BitKeeper/etc/logging_ok:
auto-union
sql/ha_ndbcluster.h:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
mysql-test/mysql-test-run.sh:
SCCS merged
sql/ha_ndbcluster.cc:
SCCS merged
into mysql.com:/home/dlenev/src/mysql-4.1-ryan
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged