some db comparison code cleupup
removed compiler warnings
mysql-test/r/lowercase_table.result:
test for BUG#3251
mysql-test/t/lowercase_table.test:
test for BUG#3251
sql/item.cc:
simple strcmp can be used for db name comparison
sql/set_var.h:
changed initialisation order to satisfy compiler
sql/sql_cache.cc:
simple strcmp can be used for db name comparison
sql/sql_db.cc:
better use special cherset for files
sql/sql_parse.cc:
simple strcmp can be used for db name comparison
aliases should be compared with my_strcasecmp
sql/sql_select.cc:
aliases should be compared with my_strcasecmp
sql/field.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
client/mysqladmin.c:
Auto merged
client/mysqltest.c:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
innobase/include/os0file.h:
Auto merged
innobase/os/os0file.c:
Auto merged
myisam/mi_check.c:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
include/my_tree.h:
After merge fixes
mysql-test/r/create.result:
After merge fixes
mysql-test/r/insert.result:
After merge fixes
mysql-test/r/multi_update.result:
After merge fixes
mysql-test/r/query_cache.result:
After merge fixes
mysql-test/r/rpl_error_ignored_table.result:
After merge fixes
mysql-test/r/rpl_optimize.result:
After merge fixes
mysql-test/r/show_check.result:
After merge fixes
mysql-test/t/insert.test:
After merge fixes (Remove columns with space last)
mysql-test/t/multi_update.test:
After merge fixes
mysql-test/t/show_check.test:
After merge fixes
sql/field.cc:
Remove compiler warnings
sql/sql_base.cc:
Fix bug when table was refreshed
BitKeeper/etc/logging_ok:
auto-union
VC++Files/innobase/innobase.dsp:
Auto merged
VC++Files/libmysql/libmysql.dsp:
Auto merged
acinclude.m4:
Auto merged
configure.in:
Auto merged
BitKeeper/deleted/.del-com0shm.c~6a16f0c3d81de1f:
Auto merged
BitKeeper/deleted/.del-mysql_fix_privilege_tables.sql:
Auto merged
extra/replace.c:
Auto merged
include/my_sys.h:
Auto merged
innobase/btr/btr0btr.c:
Auto merged
innobase/btr/btr0cur.c:
Auto merged
innobase/btr/btr0pcur.c:
Auto merged
innobase/btr/btr0sea.c:
Auto merged
innobase/configure.in:
Auto merged
innobase/data/data0data.c:
Auto merged
innobase/dict/dict0boot.c:
Auto merged
innobase/dict/dict0crea.c:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
innobase/dict/dict0load.c:
Auto merged
innobase/dict/dict0mem.c:
Auto merged
innobase/ha/ha0ha.c:
Auto merged
innobase/ha/hash0hash.c:
Auto merged
innobase/include/btr0btr.ic:
Auto merged
innobase/include/data0type.ic:
Auto merged
innobase/include/dict0mem.h:
Auto merged
innobase/include/log0log.ic:
Auto merged
innobase/include/mach0data.ic:
Auto merged
innobase/include/mtr0log.h:
Auto merged
innobase/include/mtr0mtr.h:
Auto merged
innobase/include/os0file.h:
Auto merged
innobase/include/row0upd.ic:
Auto merged
innobase/include/srv0srv.h:
Auto merged
innobase/include/sync0sync.h:
Auto merged
innobase/include/trx0rseg.ic:
Auto merged
innobase/lock/lock0lock.c:
Auto merged
innobase/log/log0recv.c:
Auto merged
innobase/mem/mem0dbg.c:
Auto merged
innobase/mtr/mtr0log.c:
Auto merged
innobase/mtr/mtr0mtr.c:
Auto merged
innobase/os/os0file.c:
Auto merged
innobase/page/page0cur.c:
Auto merged
innobase/page/page0page.c:
Auto merged
innobase/pars/lexyy.c:
Auto merged
innobase/read/read0read.c:
Auto merged
innobase/rem/rem0cmp.c:
Auto merged
innobase/rem/rem0rec.c:
Auto merged
innobase/row/row0ins.c:
Auto merged
innobase/row/row0mysql.c:
Auto merged
innobase/row/row0purge.c:
Auto merged
innobase/row/row0sel.c:
Auto merged
innobase/row/row0undo.c:
Auto merged
innobase/row/row0upd.c:
Auto merged
innobase/srv/srv0srv.c:
Auto merged
innobase/srv/srv0start.c:
Auto merged
innobase/sync/sync0rw.c:
Auto merged
innobase/thr/thr0loc.c:
Auto merged
innobase/trx/trx0purge.c:
Auto merged
innobase/trx/trx0rec.c:
Auto merged
innobase/trx/trx0roll.c:
Auto merged
innobase/trx/trx0trx.c:
Auto merged
innobase/trx/trx0undo.c:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/myisamchk.c:
Auto merged
mysql-test/r/multi_update.result:
Auto merged
mysql-test/r/mysqlbinlog.result:
Auto merged
mysql-test/r/rpl_error_ignored_table.result:
Auto merged
mysql-test/t/multi_update.test:
Auto merged
mysql-test/t/rpl_error_ignored_table.test:
Auto merged
mysys/mf_iocache.c:
Auto merged
mysys/mf_pack.c:
Auto merged
mysys/my_getopt.c:
Auto merged
sql/ha_berkeley.cc:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/lock.cc:
Auto merged
sql/log.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_cache.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_list.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
tests/thread_test.c:
Auto merged
client/mysqldump.c:
Keep original indentation
mysql-test/r/merge.result:
keep old file
scripts/mysql_fix_privilege_tables.sh:
Keep old structure in merge with 4.0
sql/table.cc:
merge with 4.0 + simple optimizations
COM_EXECUTE packet" and #2795 "prepare + execute without bind_param crashes
server" and #2473 "seg fault running tests/client_test.c":
- length checking added to packet parser
- default impelemntation of Item_param::set_param_func will work in
case of malformed packet.
No test cases are possible in our test suite, as there are no tests
operating on protocol layer.
sql/item.cc:
Default set_param function implemented: this is to not sigsegv in case
of malformed packet with no parameters data.
sql/item.h:
- Item_param constructor moved to .cc to be able to assign set_param_func.
- now embedded and ordinary versions of set_param have the same signature.
sql/mysql_priv.h:
mysql_stmt_execute now requires packet_length
sql/sql_parse.cc:
mysql_stmt_execute now requires packet length.
sql/sql_prepare.cc:
- length checking added to all functions working with network packet.
- set_param_func's in embedded and ordinary version now have the same
signature
mysql-test/r/func_math.result:
Updated tests after merge with 3.23
mysql-test/r/multi_update.result:
Fixed not portable test
mysql-test/r/mysqlbinlog.result:
Fixed test after push without doing 'make test'
mysql-test/t/multi_update.test:
Fixed not portable test
sql/sql_parse.cc:
Don't use static inline, as this is not portable
We introduce a new function mysql_test_parse_for_slave().
If the slave sees that the query got a really bad error on master
(killed e.g.), then it calls this function to know if this query
can be ignored because of replicate-*-table rules (do not worry
about replicate-*-db rules: they are checked so early that they have
no bug). If the answer is yes, it skips the query and continues. If
it's no, then it stops and say "fix your slave data manually" (like it
did before this change).
mysql-test/r/rpl_error_ignored_table.result:
result update
mysql-test/t/rpl_error_ignored_table-slave.opt:
ignore more tables
mysql-test/t/rpl_error_ignored_table.test:
we test if a killed query on the master, is ignored on the slave
if the tables it involves should be excluded because of replicate-*-table
rules.
sql/log_event.cc:
If the query got a really bad error on the master (thread killed etc),
parse it to test the table names: if the replicate-*-do|ignore-table
rules say "this query must be ignored" then we exit gracefully;
otherwise we warn about the bad error and tell DBA to check/fix it.
Before this change, we always warned and stopped.
sql/mysql_priv.h:
new function
sql/slave.cc:
don't print error immediately as we need to do one more test to
be sure.
sql/sql_parse.cc:
we add a function mysql_test_parse_for_slave(), to be used only
by the slave if it wants to know if the query should be ignored or not;
so this function only parses the query, does not execute it.
re-using unused LOCK_active_mi to serialize all administrative
commands related to replication:
START SLAVE, STOP SLAVE, RESET SLAVE, CHANGE MASTER, init_slave()
(replication autostart at server startup), end_slave() (replication
autostop at server shutdown), LOAD DATA FROM MASTER.
This protects us against a handful of deadlocks (like BUG#2921
when two START SLAVE, but when two STOP SLAVE too).
Removing unused variables.
sql/item_func.cc:
We don't need LOCK_active_mi just to MASTER_POS_WAIT().
sql/repl_failsafe.cc:
no need for macro
sql/set_var.cc:
no need for macro
sql/slave.cc:
Re-using unused LOCK_active_mi to serialize all administrative
commands related to replication:
START SLAVE, STOP SLAVE, RESET SLAVE, CHANGE MASTER, init_slave()
(replication autostart at server startup), end_slave() (replication
autostop at server shutdown), LOAD DATA FROM MASTER.
This protects us against a handful of deadlocks.
Removing unused variables.
sql/slave.h:
Re-using LOCK_active_mi to serialize administrative replication commands.
Macros unneeded. Removing unneeded variables.
sql/sql_parse.cc:
found unused variable.
Replacing macros.
sql/sql_show.cc:
replacing macros
"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 linking query_prealloc_size to query cache presence
mysql-test/r/query_cache.result:
test of QC invalidation by LOCK command
mysql-test/t/query_cache.test:
test of QC invalidation by LOCK command
sql/mysqld.cc:
new variable query_cache_wlock_invalidate
fixed query_prealloc_size with QC absence
sql/set_var.cc:
new variable query_cache_wlock_invalidate
sql/sql_cache.cc:
new method for table invalidation
sql/sql_cache.h:
new method for table invalidation
sql/sql_class.h:
new variable query_cache_wlock_invalidate
sql/sql_parse.cc:
layout fixed
reviewed in Saint-Petersbourg (including post-review fixes).
include/my_sys.h:
Added clear_alloc_root (reset alloc root without freeing its memory)
sql/item.h:
- rename setup_param -> set_parap (function assigns parameter value to item)
sql/mysql_priv.h:
- all return values are void, because return value is never checked in
dispatch_command
- removed unused declaration of setup_param_functions
sql/protocol.h:
- unused declarations of setup_params_data* removed
sql/sql_class.cc:
Cleanup:
- bzero(mem_root) replaced with clear_alloc_root
- query_id and command members moved back to THD from Statement
Assignment of mem_root, free_list, query_id and command optimized
away from set_statement().
sql/sql_class.h:
- query_id and command moved back to THD from Statement
sql/sql_lex.h:
- better type for param_list
- param_count is the same thing as param_list.elements
sql/sql_parse.cc:
- comments for dispatch_command
sql/sql_prepare.cc:
Cleanup:
- added comments to many functions and removed trailing spaces in many
lines, some stale comments removed.
- it's faster to iterate using pointers, than classes
- Renames: error_in_prepare renamed to get_longdata_error (because it is set
when there is an error in mysql_send_longdata, rather than in
mysql_prepare), embedded versions of placeholder assignement functions
now have prefix emb_, setup_ functions renamed to set_, because they
perform assignment, not installation, setup_params_data now doesn't
call insert_params and was renamed to setup_set_param_functions,
- find_prepared_statement should not send error if called from no-reply
calls, like mysql_stmt_reset
- error reporting is checked up, to always report errors and not report
errors twice. send_prep_stmt can be done mostly in send_prepare_result,
rather than in test_* functions.
- now we don't need to reinit THD->mem_root/free_list in mysql_stmt_execute,
because it's not reset there.
tests/client_test.c:
- removed second call to test_subqueries
sql/sql_acl.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/share/serbian/errmsg.txt:
Auto merged
include/mysqld_error.h:
for merge
mysql-test/r/loaddata.result:
for merge
mysql-test/r/warnings.result:
for merge
sql/share/czech/errmsg.txt:
for merge
sql/share/danish/errmsg.txt:
for merge
sql/share/dutch/errmsg.txt:
for merge
sql/share/english/errmsg.txt:
for merge
sql/share/estonian/errmsg.txt:
for merge
sql/share/french/errmsg.txt:
for merge
sql/share/german/errmsg.txt:
for merge
sql/share/greek/errmsg.txt:
for merge
sql/share/hungarian/errmsg.txt:
for merge
sql/share/italian/errmsg.txt:
for merge
sql/share/japanese/errmsg.txt:
for merge
sql/share/korean/errmsg.txt:
for merge
sql/share/norwegian-ny/errmsg.txt:
for merge
sql/share/norwegian/errmsg.txt:
for merge
sql/share/polish/errmsg.txt:
for merge
sql/share/portuguese/errmsg.txt:
for merge
sql/share/romanian/errmsg.txt:
for merge
sql/share/russian/errmsg.txt:
for merge
sql/share/slovak/errmsg.txt:
for merge
sql/share/spanish/errmsg.txt:
for merge
sql/share/swedish/errmsg.txt:
for merge
sql/share/ukrainian/errmsg.txt:
for merge
"replicate-wild-*-table=db.% does not apply to ALTER DATABASE"
apply replicate-* rules to ALTER DATABASE like we already do
for CREATE DATABASE/ DROP DATABASE.
sql/sql_parse.cc:
apply replicate-* rules to ALTER DATABASE like we already do
for CREATE DATABASE/ DROP DATABASE.
"--read-only gives weird error on update".
It is not fixable in 4.0 because it requires modifying
the sql/share/*/errmsg.txt files. So it is fixed in 4.1 like this:
the ER_SKIP_GRANT_TABLES is replaced by a more generic
ER_OPTION_PREVENTS_STATEMENT which can be used both for
"can't do this because of --skip-grant-tables" and
"can't do this because of --read-only" (for this we don't use
ER_CANT_UPDATE_WITH_READLOCK anymore).
So now the message for --read-only is:
"The MySQL server is running with the --read-only option so
cannot execute this statement".
include/mysqld_error.h:
more general naming as more general message
sql/share/czech/errmsg.txt:
message change
sql/share/danish/errmsg.txt:
message change
sql/share/dutch/errmsg.txt:
message change
sql/share/english/errmsg.txt:
message change
sql/share/estonian/errmsg.txt:
message change
sql/share/french/errmsg.txt:
message change
sql/share/german/errmsg.txt:
message change
sql/share/greek/errmsg.txt:
message change
sql/share/hungarian/errmsg.txt:
message change
sql/share/italian/errmsg.txt:
message change
sql/share/japanese/errmsg.txt:
message change
sql/share/korean/errmsg.txt:
message change
sql/share/norwegian-ny/errmsg.txt:
message change
sql/share/norwegian/errmsg.txt:
message change
sql/share/polish/errmsg.txt:
message change
sql/share/portuguese/errmsg.txt:
message change
sql/share/romanian/errmsg.txt:
message change
sql/share/russian/errmsg.txt:
message change
sql/share/serbian/errmsg.txt:
message change
sql/share/slovak/errmsg.txt:
message change
sql/share/spanish/errmsg.txt:
message change
sql/share/swedish/errmsg.txt:
message change
sql/share/ukrainian/errmsg.txt:
message change
sql/sql_acl.cc:
Changes to use the more generic ER_OPTION_PREVENTS_STATEMENT
instead of ER_SKIP_GRANT_TABLES:
* use of net_printf() instead of send_error() (because send_error()
does not support printf-like format).
* in some places we now just do my_error() and return -1
(only caller is mysql_execute_command() which does send_error()
if result is -1).
* Replaced my_printf_error() by simpler my_error() (except in 2 locations
where there was a "we must use my_printf_error()" comment).
sql/sql_parse.cc:
new error code (more generic).
mysql-test/r/lowercase_table.result:
test of multi-update/multi-delete
mysql-test/t/lowercase_table.test:
test of multi-update/multi-delete
sql/sql_cache.cc:
correct databese names comparation
sql/sql_parse.cc:
correct table names comparation in multi-delete
client/mysqldump.c:
Auto merged
configure.in:
Auto merged
include/m_ctype.h:
Auto merged
include/m_string.h:
Auto merged
include/my_global.h:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/fulltext.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/fulltext.test:
Auto merged
mysql-test/t/grant.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/union.test:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/share/english/errmsg.txt:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_string.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
strings/ctype-mb.c:
Auto merged
strings/ctype-simple.c:
Auto merged
mysql-test/r/warnings.result:
Fix error numbers after merge
sql/share/czech/errmsg.txt:
Add missing ',' and fix typo
sql/share/danish/errmsg.txt:
Add missing ',' and fix typo
sql/share/dutch/errmsg.txt:
Add missing ',' and fix typo
sql/share/estonian/errmsg.txt:
Add missing ',' and fix typo
sql/share/french/errmsg.txt:
Add missing ',' and fix typo
sql/share/german/errmsg.txt:
Add missing ',' and fix typo
sql/share/greek/errmsg.txt:
Add missing ',' and fix typo
sql/share/hungarian/errmsg.txt:
Add missing ',' and fix typo
sql/share/italian/errmsg.txt:
Add missing ',' and fix typo
sql/share/japanese/errmsg.txt:
Add missing ',' and fix typo
sql/share/korean/errmsg.txt:
Add missing ',' and fix typo
sql/share/norwegian-ny/errmsg.txt:
Add missing ',' and fix typo
sql/share/norwegian/errmsg.txt:
Add missing ',' and fix typo
sql/share/polish/errmsg.txt:
Add missing ',' and fix typo
sql/share/portuguese/errmsg.txt:
Add missing ',' and fix typo
sql/share/romanian/errmsg.txt:
Add missing ',' and fix typo
sql/share/russian/errmsg.txt:
Add missing ',' and fix typo
sql/share/slovak/errmsg.txt:
Add missing ',' and fix typo
sql/share/spanish/errmsg.txt:
Add missing ',' and fix typo
sql/share/swedish/errmsg.txt:
Add missing ',' and fix typo
sql/share/ukrainian/errmsg.txt:
Add missing ',' and fix typo
Added more DBUG statements
Ensure that we are comparing end space with BINARY strings
Use 'any_db' instead of '' to mean any database. (For HANDLER command)
Only strip ' ' when comparing CHAR, not other space-like characters (like \t)
BitKeeper/deleted/.del-ctype_tis620.result-old~3578ceb0b8284685:
Delete: mysql-test/r/ctype_tis620.result-old
BitKeeper/deleted/.del-ctype_tis620.test-old~ffb1bbd2935d1aba:
Delete: mysql-test/t/ctype_tis620.test-old
client/mysqlbinlog.cc:
Added DBUG statements
Added call of my_end() to free all used memory on exit
heap/hp_info.c:
After merge fixes
heap/hp_open.c:
After merge fixes
include/heap.h:
After merge fixes
include/m_ctype.h:
Use pchar instead of 'int' for character parameters.
Added 'my_binary_compare()'
include/m_string.h:
Fixed wrong define
innobase/ibuf/ibuf0ibuf.c:
After merge fixes
innobase/srv/srv0start.c:
After merge fixes
mysql-test/r/alter_table.result:
Fixed results after merge
mysql-test/r/auto_increment.result:
Fixed results after merge
mysql-test/r/bdb.result:
Fixed results after merge
mysql-test/r/binary.result:
Fixed results after merge
mysql-test/r/create.result:
Fixed results after merge
mysql-test/r/ctype_mb.result:
Fixed results after merge
mysql-test/r/ctype_tis620.result:
Fixed results after merge
mysql-test/r/ctype_utf8.result:
Fixed results after merge
mysql-test/r/delete.result:
Fixed results after merge
mysql-test/r/func_compress.result:
Fixed results after merge
mysql-test/r/func_gconcat.result:
Fixed results after merge
mysql-test/r/func_group.result:
Fixed results after merge
mysql-test/r/func_str.result:
Fixed results after merge
mysql-test/r/innodb.result:
Fixed results after merge
mysql-test/r/insert.result:
Fixed results after merge
mysql-test/r/insert_select.result:
Fixed results after merge
mysql-test/r/key.result:
Fixed results after merge
mysql-test/r/loaddata.result:
Fixed results after merge
mysql-test/r/lock.result:
Fixed results after merge
mysql-test/r/myisam.result:
Fixed results after merge
mysql-test/r/null.result:
Fixed results after merge
mysql-test/r/null_key.result:
Fixed results after merge
mysql-test/r/order_by.result:
Fixed results after merge
mysql-test/r/query_cache.result:
Fixed results after merge
mysql-test/r/range.result:
Fixed results after merge
mysql-test/r/rpl_multi_delete.result:
Fixed results after merge
mysql-test/r/rpl_until.result:
Fixed results after merge
mysql-test/r/subselect.result:
Fixed results after merge
mysql-test/r/subselect_innodb.result:
Fixed results after merge
mysql-test/r/type_blob.result:
Fixed results after merge
mysql-test/r/type_datetime.result:
Fixed results after merge
mysql-test/r/type_decimal.result:
Fixed results after merge
mysql-test/r/type_enum.result:
Fixed results after merge
mysql-test/r/type_float.result:
Fixed results after merge
mysql-test/r/type_ranges.result:
Fixed results after merge
mysql-test/r/type_time.result:
Fixed results after merge
mysql-test/r/type_timestamp.result:
Fixed results after merge
mysql-test/r/type_uint.result:
Fixed results after merge
mysql-test/r/type_year.result:
Fixed results after merge
mysql-test/r/variables.result:
Fixed results after merge
mysql-test/r/warnings.result:
Fixed results after merge
mysql-test/t/case.test:
Fixed shifted error messages
mysql-test/t/create.test:
Fixed shifted error messages
mysql-test/t/ctype_collate.test:
Fixed shifted error messages
mysql-test/t/ctype_tis620.test:
Merge with 4.0 ctype_tis620 test
mysql-test/t/delete.test:
Fixed shifted error messages
mysql-test/t/derived.test:
Fixed shifted error messages
mysql-test/t/fulltext.test:
Fixed shifted error messages
mysql-test/t/func_in.test:
Fixed shifted error messages
mysql-test/t/func_str.test:
Fixed shifted error messages
mysql-test/t/func_test.test:
Fixed shifted error messages
mysql-test/t/grant.test:
Fixed shifted error messages
mysql-test/t/innodb.test:
Change to 4.1 syntax
mysql-test/t/key_cache.test:
Fixed shifted error messages
mysql-test/t/myisam.test:
New test of blob and end space
mysql-test/t/row.test:
Fixed shifted error messages
mysql-test/t/rpl_until.test:
Fixed shifted error messages
mysql-test/t/subselect.test:
Fixed shifted error messages
mysql-test/t/subselect_innodb.test:
Fix test to take into account foreign key constraints
mysql-test/t/union.test:
Fixed shifted error messages
mysql-test/t/user_var.test:
Fixed shifted error messages
mysql-test/t/variables.test:
Fixed shifted error messages
mysys/my_handler.c:
Merge with 4.0 code
sql/ha_heap.cc:
After merge fixes
sql/handler.cc:
After merge fixes
sql/item.cc:
After merge fixes
sql/item_cmpfunc.cc:
Ensure that we are comparing end space with BINARY strings
sql/item_cmpfunc.h:
Ensure that we are comparing end space with BINARY strings
sql/log_event.cc:
More DBUG statements
Ensure that we use all options to LOAD DATA in replication
sql/opt_range.cc:
After merge fixes
sql/sql_db.cc:
After merge fixes
sql/sql_handler.cc:
After merge fixes
Use 'any_db' instead of '' to mean 'no database comparison'
sql/sql_parse.cc:
After merge fixes
sql/sql_select.cc:
After merge fixes
Added function comment for setup_group()
sql/sql_string.cc:
Added stringcmp() for binary comparison.
Added function comments for sortcmp() and stringcmp()
sql/sql_string.h:
Added stringcmp()
sql/sql_table.cc:
After merge fixes
sql/sql_update.cc:
After merge fixes
sql/sql_yacc.yy:
Use 'any_db' instead of '' to mean any database. Using "" causes a 'wrong db name' error.
strings/ctype-big5.c:
Strip only end space, not other space characters.
strings/ctype-bin.c:
Removed some not needed functions.
Added function comments
Don't remove end space in comparisons
Change my_wildcmp_bin() to be 'identical' with other similar code
strings/ctype-czech.c:
Strip only end space, not other space characters.
strings/ctype-gbk.c:
Strip only end space, not other space characters.
strings/ctype-latin1.c:
Strip only end space, not other space characters.
strings/ctype-mb.c:
Strip only end space, not other space characters.
strings/ctype-simple.c:
Strip only end space, not other space characters.
strings/ctype-sjis.c:
Strip only end space, not other space characters.
strings/ctype-tis620.c:
Added usage of my_instr_simple. This needs to be cleaned up!
strings/ctype-utf8.c:
Strip only end space, not other space characters.
strings/ctype-win1250ch.c:
Strip only end space, not other space characters.
Fixed indentation
strings/strto.c:
Code cleanup
now it's working
include/mysql.h:
read_change_user_result 'virtual' method added
libmysql/client_settings.h:
cli_read_change_user_result interface
libmysql/libmysql.c:
cli_read_change_user_result implementation
libmysqld/lib_sql.cc:
emb_read_change_user_result implementation
sql-common/client.c:
cli_read_change_user_result added to the method's table
sql/sql_parse.cc:
fixes to make mysql_change_user working in embedded library
previous one had error
libmysqld/lib_sql.cc:
memdup_mysql deleted
sql/sql_class.h:
String instead of char*
sql/sql_parse.cc:
storing of the rest of the query
into sanja.is.com.ua:/home/bell/mysql/bk/work-limit-4.1
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/sql_lex.cc:
Auto merged
"MySQL server does not detect if garbage chara at the end of query"
Allow the parser to see the garbage characters.
Garbage should cause the parser to report an error.
sql/sql_lex.cc:
Return END_OF_INPUT when at the end of the input buffer.
Allows the parser to determine if there is junk after a \0 character.
sql/sql_parse.cc:
Undo 1.314.1.1 04/02/11 12:32:42 guilhem@mysql.com
sql/sql_prepare.cc:
Undo 1.73 04/02/11 12:32:42 guilhem@mysql.com
"MySQL server does not detect if garbage chars at the end of query":
Detect garbage chars at the end of the query or at the end of a query
for a prepared statement (which happens if mysql_real_query() or mysql_prepare()
were called with a too big 'length' parameter (bigger than the real intended
length of the query: then we receive a query + garbage characters from the
client). This resulted in garbage chars written into the binlog.
Now instead the client receives something like:
'You have an error in your SQL syntax. Check the manual that corresponds
to your MySQL server version for the right syntax to use near '!stmt'
at line 1' i.e. the server is pointing at the weird tail of the query
(this '!stmt' are the garbage chars sent by the client).
All tests pass, except mysqldump.test and ctype_utf8.test but they failed
before the patch.
sql/sql_parse.cc:
Detect garbage chars at the end of the query
(which happens if mysql_real_query() was called with a too big 'length'
parameter (bigger than the real intended length of the query: then
we receive a query + garbage characters from the client).
sql/sql_prepare.cc:
Detect garbage chars at the end of the query
(which happens if mysql_prepare() was called with a too big 'length'
parameter (bigger than the real intended length of the query: then
we receive a query + garbage characters from the client).
tests/client_test.c:
The change to sql_parse.cc and sql_prepare.cc rightfully gives many
syntax errors to tests/client_test.c which is full of
mysql_prepare(mysql, "SHOW TABLES", 100).
Correcting all these commands.
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
mysql-test/r/ctype_tis620.result-old:
Merge rename: mysql-test/r/ctype_tis620.result -> mysql-test/r/ctype_tis620.result-old
BUILD/compile-pentium-max:
Auto merged
BitKeeper/etc/config:
Auto merged
Build-tools/Bootstrap:
Auto merged
Build-tools/Do-compile:
Auto merged
configure.in:
Auto merged
mysql-test/t/ctype_tis620.test-old:
Merge rename: mysql-test/t/ctype_tis620.test -> mysql-test/t/ctype_tis620.test-old
Docs/Makefile.am:
Auto merged
client/mysqldump.c:
Auto merged
client/mysqltest.c:
Auto merged
include/my_global.h:
Auto merged
include/my_pthread.h:
Auto merged
include/my_sys.h:
Auto merged
include/myisam.h:
Auto merged
innobase/btr/btr0cur.c:
Auto merged
innobase/ibuf/ibuf0ibuf.c:
Auto merged
innobase/include/dict0dict.h:
Auto merged
innobase/include/srv0srv.h:
Auto merged
innobase/include/ut0mem.h:
Auto merged
innobase/log/log0log.c:
Auto merged
innobase/row/row0ins.c:
Auto merged
innobase/row/row0sel.c:
Auto merged
innobase/srv/srv0start.c:
Auto merged
innobase/ut/ut0mem.c:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_dynrec.c:
Auto merged
myisam/mi_key.c:
Auto merged
myisam/myisam_ftdump.c:
Auto merged
myisam/myisamdef.h:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/alter_table.result:
Auto merged
mysql-test/r/bdb.result:
Auto merged
mysql-test/r/bigint.result:
Auto merged
mysql-test/r/fulltext.result:
Auto merged
now we execute only one first select during mysql_real_query
others - during 'mysql_next_result'
include/mysql.h:
'virtual' next_result added
libmysql/client_settings.h:
cli_next_result declaration added
libmysql/libmysql.c:
mysql_next_result now works in embedded library as well
libmysqld/lib_sql.cc:
emb_next_result implemented
sql/sql_class.h:
fields to store the rest of the query added
sql/sql_parse.cc:
Saving the rest of the query added for embedded case
mysql-test/r/derived.result:
test of error handling in derived tables with UPDATE & DELETE
mysql-test/t/derived.test:
test of error handling in derived tables with UPDATE & DELETE
sql/mysql_priv.h:
opened tables counter added to avoid loop of tables calculating in lock_tables
sql/sql_acl.cc:
opened tables counter added to avoid loop of tables calculating in lock_tables, here it is just for compatibility
sql/sql_base.cc:
removed unneeded assignment
opened tables counter added to avoid loop of tables calculating in lock_tables
commentary fixed
sql/sql_derived.cc:
mysql_derived made static
variable res moved in place where it used
priveleges written in correct place
sql/sql_handler.cc:
opened tables counter added to avoid loop of tables calculating in lock_tables
sql/sql_parse.cc:
mistyping in commentary fixed
into sanja.is.com.ua:/home/bell/mysql/bk/work-derived2-4.1
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/sql_update.cc:
Auto merged
mysql-test/r/subselect.result:
test of global limit and subqueries
mysql-test/t/subselect.test:
test of global limit and subqueries
sql/sql_lex.cc:
correct detection of non-default limits
sql/sql_parse.cc:
correct assignment of default limit
sql/sql_yacc.yy:
correct assignment of default limit
Now one need only SELECT privilege for tables that are only read in
UPDATE statements with many tables. (Bug #2377).
sql/sql_acl.cc:
Comment cleanup
sql/sql_parse.cc:
Merged duplicate code.
Removed some outdated 'tables->db' tests.
Check privileges for multi-updates properly (Bug #2377)
sql/sql_show.cc:
Remove disabled code
sql/sql_update.cc:
Ensure that privileges are tested properly for multi-table-updates
tests/grant.pl:
Added more tests
tests/grant.res:
updated results
into sanja.is.com.ua:/home/bell/mysql/bk/work-derived2-4.1
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
fixed BUG#2120 and other problem with EXPLAINing derived tables
mysql-test/r/derived.result:
correct tables names & Co in derived tables
test case for BUG#2120
mysql-test/t/derived.test:
test case for BUG#2120
sql/mysql_priv.h:
derived tables processing moved after open/locking all tables (in open_and_lock_tables)
sql/repl_failsafe.cc:
correct initialization of TABLE_LIST
sql/sql_acl.cc:
used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
sql/sql_base.cc:
derived tables processing moved after open/locking all tables (in open_and_lock_tables)
sql/sql_delete.cc:
all tables processing is done during opening
sql/sql_derived.cc:
derived tables processing moved after open/locking all tables (in open_and_lock_tables) to sutisfy "all query tables locking" at the moment
sql/sql_insert.cc:
all tables processing is done during opening
correct initialization of TABLE_LIST
sql/sql_lex.cc:
now table list will be created for whole query
layout fix
correct check of updated table in subqueries
sql/sql_lex.h:
now table list will be created for whole query
correct check of updated table in subqueries
sql/sql_olap.cc:
THIS FUNCTION IS USED NOWHERE
it will be good to remove it at all (handle_olaps)
sql/sql_parse.cc:
derived tables processing moved after open/locking all tables (in open_and_lock_tables)
sql/sql_prepare.cc:
new creating list parameters
all tables processing is done during opening
sql/sql_select.cc:
all tables processing is done during opening
sql/sql_select.h:
now it used only within file where is defined
sql/sql_udf.cc:
used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
sql/sql_update.cc:
all tables processing is done during opening
values for TIMESTAMP columns. The solution is not perfect since
we just silently ignoring default value for first TIMESTAMP
column and properly reflecting this fact in SHOW CREATE TABLE.
We can't give a warning or simply support standard syntax
(niladic functions as legal value for default) for first field
since it is 4.0 tree.
mysql-test/r/type_timestamp.result:
Added test for bugs #1885, #2464, #2539
(proper support of default values for TIMESTAMP columns)
mysql-test/t/type_timestamp.test:
Added test for bugs #1885, #2464, #2539
(proper support of default values for TIMESTAMP columns)
sql/field.cc:
Enabled copying of defaults for TIMESTAMP fields when we are
creating table with CREATE TABLE x (SELECT ...)
sql/field.h:
Set proper DEFAULT value for non-first TIMESTAMP column.
sql/sql_parse.cc:
Allowed default values for TIMESTAMP column.
sql/sql_show.cc:
Enabled printing of default values in SHOW CREATE TABLE and
SHOW COLUMNS for all TIMESTAMP columns except first one.
(as long as replicate-*-table rules were defined, multi-table DELETE was never
replicated by the slave).
sql/sql_parse.cc:
For a multi-table DELETE, there are two lists of tables:
- 'tables' contains the tables in the FROM. They have 'updating==0'.
- 'thd->lex.auxilliary_table_list.first' contains the tables between the DELETE and the FROM. They have 'updating==1'.
So the bug was that the slave only tests 'tables' and as all its elements have updating==0,
tables_ok() always returns 0.
So for a multi DELETE the slave now tests the 2nd list too.
I started with the other tip of the sausage: I thought of changing multi DELETE to use
only one list (given that 'updating' can be used to separate it in two when needed)
(with one list we wouldn't need to change the slave code), but finally hit the unicity
check in add_table_to_list() which started to return ER_NONUNIQ_TABLE (logical).
sql/sql_parse.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/derived.result:
SCCS merged
mysql-test/t/derived.test:
e
merge
mysql-test/t/multi_update.test:
new results of changed multi-delete
mysql-test/t/update.test:
new results of changed multi-delete
mysql-test/r/multi_update.result:
new results of changed multi-delete
mysql-test/r/update.result:
new results of changed multi-delete