There was a wrong determination of the DB name (witch is
not always the one in TABLE_LIST because derived tables
may be calculated using temp tables that have their db name
set to "").
The fix determines the database name according to the type
of table reference, and calls the function check_access()
with the correct db name so the correct set of grants is found.
mysql-test/r/view_grant.result:
testsuite for the bug
mysql-test/t/view_grant.test:
testsuite for the bug
sql/sql_parse.cc:
correct determination of the db name.
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/marty/MySQL/mysql-5.0
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.hpp:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
Bug #18864 TRUNCATE TABLE doesn't reset AUTO_INCREMENT value on ndb table: locked lock_OPEN mutex to support TRUNCATE with re-create and cluster binlog
Many files:
Bug #18864 TRUNCATE TABLE doesn't reset AUTO_INCREMENT value on ndb table: adaption to MySQ Cluster replication
ndb_lock.result, ha_ndbcluster.cc:
Fix for Bug #18184 SELECT ... FOR UPDATE does not work..: Adaption to 5.1 code
NdbDictionaryImpl.hpp:
Fix of bad merge
storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp:
Fix of bad merge
sql/ha_ndbcluster.cc:
Fix for Bug #18184 SELECT ... FOR UPDATE does not work..: Adaption to 5.1 code
mysql-test/r/ndb_lock.result:
Fix for Bug #18184 SELECT ... FOR UPDATE does not work..: Adaption to 5.1 code
sql/ha_ndbcluster_binlog.cc:
Bug #18864 TRUNCATE TABLE doesn't reset AUTO_INCREMENT value on ndb table: adaption to MySQ Cluster replication
mysql-test/r/rpl_ndb_basic.result:
Bug #18864 TRUNCATE TABLE doesn't reset AUTO_INCREMENT value on ndb table: adaption to MySQ Cluster replication
mysql-test/t/rpl_ndb_basic.test:
Bug #18864 TRUNCATE TABLE doesn't reset AUTO_INCREMENT value on ndb table: adaption to MySQ Cluster replication
sql/ha_ndbcluster_binlog.h:
Bug #18864 TRUNCATE TABLE doesn't reset AUTO_INCREMENT value on ndb table: adaption to MySQ Cluster replication
sql/sql_delete.cc:
Bug #18864 TRUNCATE TABLE doesn't reset AUTO_INCREMENT value on ndb table: locked lock_OPEN mutex to support TRUNCATE with re-create and cluster binlog
into mysql.com:/home/marty/MySQL/mysql-5.1
mysql-test/t/ndb_lock.test:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
sql/handler.h:
Auto merged
storage/ndb/include/ndbapi/NdbIndexScanOperation.hpp:
Auto merged
storage/ndb/include/ndbapi/NdbScanOperation.hpp:
Auto merged
mysql-test/r/ndb_lock.result:
Merge
sql/ha_ndbcluster.cc:
Merge
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Merge
storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp:
Merge
storage/ndb/src/ndbapi/NdbScanOperation.cpp:
Merge
storage/ndb/src/ndbapi/ndberror.c:
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 rurik.mysql.com:/home/igor/dev/mysql-5.0-0
VC++Files/client/mysql.dsp:
Auto merged
mysql-test/t/func_time.test:
Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.hpp:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/item_timefunc.h:
Auto merged
client/mysqldump.c:
Manual merge
mysql-test/r/func_time.result:
Manual merge
into rurik.mysql.com:/home/igor/dev/mysql-5.1-0
BitKeeper/deleted/.del-generate_prefix_files.pl:
Delete: extra/yassl/include/openssl/generate_prefix_files.pl
BitKeeper/deleted/.del-prefix_crypto.h:
Delete: extra/yassl/include/openssl/prefix_crypto.h
BitKeeper/deleted/.del-prefix_ssl.h:
Delete: extra/yassl/include/openssl/prefix_ssl.h
BitKeeper/deleted/.del-Makefile.am~abb265028eb9b6a7:
Auto merged
BitKeeper/deleted/.del-init_db.sql~af2dfeabaa348dd7:
Auto merged
BitKeeper/deleted/.del-yassl.m4~e55e55c1e863abaf:
Auto merged
client/mysqltest.c:
Auto merged
extra/yassl/include/openssl/crypto.h:
Auto merged
extra/yassl/include/openssl/ssl.h:
Auto merged
extra/yassl/include/yassl_int.hpp:
Auto merged
extra/yassl/src/Makefile.am:
Auto merged
extra/yassl/src/ssl.cpp:
Auto merged
extra/yassl/src/template_instnt.cpp:
Auto merged
extra/yassl/src/yassl_int.cpp:
Auto merged
extra/yassl/testsuite/Makefile.am:
Auto merged
extra/yassl/yassl.vcproj:
Auto merged
include/violite.h:
Auto merged
libmysql/Makefile.am:
Auto merged
libmysql_r/Makefile.am:
Auto merged
libmysqld/examples/Makefile.am:
Auto merged
mysql-test/include/common-tests.inc:
Auto merged
mysql-test/r/analyze.result:
Auto merged
mysql-test/r/grant.result:
Auto merged
mysql-test/r/key_cache.result:
Auto merged
mysql-test/r/preload.result:
Auto merged
mysql-test/r/ps.result:
Auto merged
mysql-test/t/analyze.test:
Auto merged
mysql-test/t/explain.test:
Auto merged
mysql-test/t/grant.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
scripts/make_win_src_distribution.sh:
Auto merged
server-tools/instance-manager/Makefile.am:
Auto merged
sql/Makefile.am:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Auto merged
vio/Makefile.am:
Auto merged
client/Makefile.am:
Manual merge
libmysqld/Makefile.am:
Manual merge
mysql-test/r/compress.result:
Manual merge
mysql-test/r/explain.result:
Manual merge
mysql-test/r/select.result:
Manual merge
mysql-test/r/view.result:
Manual merge
mysql-test/t/select.test:
Manual merge
mysql-test/t/view.test:
Manual merge
sql/sql_base.cc:
Manual merge
sql/sql_parse.cc:
Manual merge
query
Problem:
There was a wrong context assigned to the columns that were added in insert_fields()
when expanding a '*'. When this is done in a prepared statement it causes
fix_fields() to fail to find the table that these columns reference.
Actually the right context is set in setup_natural_join_row_types() called at the
end of setup_tables(). However when executed in a context of a prepared statement
setup_tables() resets the context, but setup_natural_join_row_types() was not
setting it to the correct value assuming it has already done so.
Solution:
The top-most, left-most NATURAL/USING join must be set as a
first_name_resolution_table in context even when operating on prepared statements.
mysql-test/r/join.result:
testsuite for the bug
mysql-test/t/join.test:
testsuite for the bug
sql/sql_base.cc:
The context must be set even when executed as prepared statement.
The st_lex::which_check_option_applicable() function controls for which
statements WITH CHECK OPTION clause should be taken into account. REPLACE and
REPLACE_SELECT wasn't in the list which results in allowing REPLACE to insert
wrong rows in a such view.
The st_lex::which_check_option_applicable() now includes REPLACE and
REPLACE_SELECT in the list of statements for which WITH CHECK OPTION clause is
applicable.
mysql-test/t/replace.test:
Added test case for bug#19789: REPLACE was allowed for a VIEW with CHECK OPTION enabled.
mysql-test/r/replace.result:
Added test case for bug#19789: REPLACE was allowed for a VIEW with CHECK OPTION enabled.
sql/sql_lex.h:
Fixed bug#19789: REPLACE was allowed for a VIEW with CHECK OPTION enabled.
The st_lex::which_check_option_applicable() now includes REPLACE and
REPLACE_SELECT in the list of statements for which WITH CHECK OPTION clause is
applicable.
mysql-test/r/auto_increment.result:
Fix for bug #6880: LAST_INSERT_ID() within a statement
- test result
mysql-test/r/rpl_log.result:
Fix for bug #6880: LAST_INSERT_ID() within a statement
- test result
mysql-test/t/auto_increment.test:
Fix for bug #6880: LAST_INSERT_ID() within a statement
- test case
mysql-test/t/rpl_log.test:
Fix for bug #6880: LAST_INSERT_ID() within a statement
- test case
sql/item_func.cc:
Fix for bug #6880: LAST_INSERT_ID() within a statement
- return the first thd->last_insert_id set (within a query)
To calculate its max_length the CONCAT() function is simply sums max_lengths
of its arguments but when the collation of an argument differs from the
collation of the CONCAT() max_length will be wrong. This may lead to a data
truncation when a tmp table is used, in UNIONS for example.
The Item_func_concat::fix_length_and_dec() function now recalculates the
max_length of an argument when the mbmaxlen of the argument differs from the
mbmaxlen of the CONCAT().
mysql-test/t/func_concat.test:
Added test case for bug#15962:CONCAT() in UNION may lead to a data trucation.
mysql-test/r/func_concat.result:
Added test case for bug#15962:CONCAT() in UNION may lead to a data trucation.
sql/item_strfunc.cc:
Fixed bug#15962: CONCAT() in UNION may lead to a data trucation.
The Item_func_concat::fix_length_and_dec() function now recalculates the
max_length of an argument when the mbmaxlen of the argument differs from the
mbmaxlen of the CONCAT().
Fixed BUG#19727 "InnoDB crashed server and crashed tables
are not recoverable".
innobase/row/row0mysql.c:
Applied innodb-5.0-ss609 snapshot.
Move trx_commit_for_mysql(trx) calls before calls to
row_mysql_unlock_data_dictionary(trx).
innobase/row/row0sel.c:
Applied innodb-5.0-ss609 snapshot.
row_sel_try_search_shortcut(): Do not return SEL_FOUND when
the record was not found. This bug was introduced in
InnoDB 5.0.3, but luckily it should nerver manifest itself,
given that existing InnoDB SQL code never makes use of
consistent reads.
mysql-test/t/innodb.test:
Applied innodb-5.0-ss609 snapshot.
Add the big fat warning notice also to the bottom of
innodb.test so that it will require more talent to
ignore the change of policy.
Changed error to be more descriptive when you are refering to a not existing key
Fixed core dump in view test and changed to better error message
BUILD/compile-pentium64-debug-max:
Added --pipe option for faster compile
(This changset was missing in the tree I used to rebuild a new 5.1 tree)
BUILD/compile-pentium64-debug:
Added --pipe option for faster compile
(This changset was missing in the tree I used to rebuild a new 5.1 tree)
mysql-test/include/common-tests.inc:
Changed error to be more descriptive
mysql-test/r/compress.result:
Changed error to be more descriptive
mysql-test/r/explain.result:
Changed error to be more descriptive
mysql-test/r/key_cache.result:
Changed error to be more descriptive
mysql-test/r/preload.result:
Changed error to be more descriptive
mysql-test/r/select.result:
Changed error to be more descriptive
mysql-test/r/ssl.result:
Changed error to be more descriptive
mysql-test/r/ssl_compress.result:
Changed error to be more descriptive
mysql-test/r/view.result:
Changed error to be more descriptive
mysql-test/t/disabled.def:
Disable im_instance_conf and im_options until Bug#20294 (Instance manager test im_instance_conf fails randomly) is fixed
mysql-test/t/explain.test:
Changed error to be more descriptive
mysql-test/t/select.test:
Changed error to be more descriptive
mysql-test/t/view.test:
Changed error to be more descriptive
sql/share/errmsg.txt:
Fix that ER_KEY_DOES_NOT_EXISTS has same SQLSTATE as ER_KEY_COLUMN_DOES_NOT_EXISTS
sql/sql_base.cc:
Fixed core dump in view test
Changed to correct error message that also shows the name of the faulty table
BUILD/compile-pentium64:
New BitKeeper file ``BUILD/compile-pentium64''
Old FRM files didn't allow byte 255 as a column name part.
Since now we store column names in UTF8, this restriction
is not required anymore: 255 is not a valid byte in UTF8.
Fix: removing checking against 255.
mysql-test/r/ctype_latin1.result:
Adding test case
mysql-test/t/ctype_latin1.test:
Adding test case
sql/sql_lex.cc:
Removing old code, unnecessary anymore.
mysql-test/r/partition_range.result:
Changed test cases
mysql-test/t/partition_range.test:
Changed test cases
sql/partition_info.cc:
Changes to resue signed integer code for unsigned integer partition functions
Basic idea is to store value - 0x8000000000000000 in list_array and range_int_array
and also perform this subtraction before applying get_partition_id_range and so
forth.
sql/sql_partition.cc:
Changes to resue signed integer code for unsigned integer partition functions
Basic idea is to store value - 0x8000000000000000 in list_array and range_int_array
and also perform this subtraction before applying get_partition_id_range and so
forth.
RPL Test cleanup of options that are not needed when using ndbcluster with binlog. The binlog is forced to row just by connecting to a cluster
mysql-test/r/rpl_ndb_2myisam.result:
Update results. Test now passing. Have commented it out in disable.def file
mysql-test/t/disabled.def:
updated to comment out test that is working
mysql-test/t/rpl_ndb_2innodb-master.opt:
Removed the --binlog-format=row and they are not needed
mysql-test/t/rpl_ndb_2innodb-slave.opt:
Removed the --binlog-format=row and they are not needed
mysql-test/t/rpl_ndb_2myisam-master.opt:
Removed the --binlog-format=row and they are not needed
mysql-test/t/rpl_ndb_2myisam-slave.opt:
Removed the --binlog-format=row and they are not needed
mysql-test/t/rpl_ndb_innodb2ndb-master.opt:
Removed the --binlog-format=row and they are not needed
mysql-test/t/rpl_ndb_innodb2ndb-slave.opt:
Removed the --binlog-format=row and they are not needed
mysql-test/t/rpl_ndb_myisam2ndb-slave.opt:
Removed the --binlog-format=row and they are not needed
Add define YASSL_PREFIX when compiling yassl
Import patch from yaSSL
- avoid allocating memory for each call to 'EVP_md5' and
'EVP_des_ede3_cbc' which were not released until server was stopped
- Those functions are used from the SQL function 'des_encrypt' and
'des_decrypt'.
Add new define YASSL_PREFIX beforee including ssl.h to activate inclusion of prefix_*.h files
Bug#20022 mysql-test-run can't be run with secure connections turned on for all testcases
- Part 1, fixes rpl- and federated-tests where connection is made to 127.0.0.1
- Include prefix files that renames all public functions in yaSSLs
OpenSSL API to ya<function_name>. They will otherwise conflict
with OpenSSL functions if loaded by an application that uses OpenSSL
as well as libmysqlclient with yaSSL support.
Bug#18235: assertion/crash when windows mysqld is ended with ctrl-c
Two threads both try a shutdown sequence which creates a race to the
de-init/free of certain resources.
This exists in similar form in the client as 17926: "mysql.exe crashes
when ctrl-c is pressed in windows."
Update after merge to 5.0
BUG#18669: Session COM_STATISTICS breaks mysqladmin status.
Changed COM_STATISTICS to display the global status, instead of thead status, for slow queries and table opens.
- In function 'handle_grant_struct' when searching the memory structures for an
entry to modify, convert all entries here host.hostname is NULL to "" and compare that
with the host passed in argument "user_from".
- A user created with hostname "" is stored in "mysql.user" table as host="" but when loaded into
memory it'll be stored as host.hostname NULL. Specifiying "" as hostname means
that "any host" can connect. Thus is's correct to turn on allow_all_hosts
when such a user is found.
- Review and fix other places where host.hostname may be NULL.
BUG#19394 OPT_INNODB_THREAD_CONCURRENCY duplicated
Removed duplication (not a user-visible change)
client/Makefile.am:
Remove $yassl_includes
client/mysqltest.c:
Turn on ssl_verify_server_cert only if host is "localhost"
extra/yassl/include/openssl/crypto.h:
Add prefix file for ssl.h
extra/yassl/include/openssl/ssl.h:
Add include file "prefix_crypto.h" to rename SSL_* functions to yaSSL_*
extra/yassl/include/yassl_int.hpp:
Import patch yassl.diff
extra/yassl/src/Makefile.am:
Add defined YASSL_PREFIX when building yassl/testsuite
extra/yassl/src/ssl.cpp:
Import patch yassl.diff
extra/yassl/src/template_instnt.cpp:
Import patch yassl.diff
extra/yassl/src/yassl_int.cpp:
Import patch yassl.diff
extra/yassl/testsuite/Makefile.am:
Add defined YASSL_PREFIX when building yassl/testsuite
extra/yassl/yassl.vcproj:
Add define YASSL_PREFIX when compiling yassl
include/violite.h:
Add new define YASSL_PREFIX beforee including ssl.h to activate inclusion of prefix_*.h files
libmysql/Makefile.am:
Remove yassl_includes
libmysql_r/Makefile.am:
Remove yassl_includes
libmysqld/Makefile.am:
Remove yassl_includes
libmysqld/examples/Makefile.am:
Remove yassl_includes
mysql-test/r/analyze.result:
Add missing drop table
mysql-test/r/grant.result:
Reorder test result
Add test cases for users with hostname ""
mysql-test/r/ps.result:
Add missing drop table
mysql-test/t/analyze.test:
Add missing drop table
mysql-test/t/grant.test:
Add "use test"
Add test cases for users with hostname ""
- Test create, grant and drop as well as connecting as the user with hostname "".
mysql-test/t/ps.test:
Add missing drop table
server-tools/instance-manager/Makefile.am:
Remove yassl_includes
sql/Makefile.am:
Remove yassl_includes
sql/mysqld.cc:
We have three potential ways of hitting the iceberg:
- unireg_end() has basic de-init
- unireg_abort() has extended de-init
- main() has a de-init sequence similar to unireg_abort()
In the Windows version of the server, Control-C is handled
in a different thread from the one main() is in. The main
loop is told to end, then unireg_abort() is called. Its
de-init and that of main() will then race each other for
mutex- and cond-var-destroys, free(), and finally exit().
This patch introduces a special case for Windows that will eliminate
the race by ending the signal-handler via unireg_end() instead if
SIGINT is signalled. This seems the least intrusive fix that still
fixes user-visible behaviour.
Two of the startup options for mysqld, innodb_commit_concurrency
and innodb_thread_concurrency, were using the same enumeration
value. Changed to give innodb_commit_concurrency it's own value.
sql/sql_acl.cc:
Add check if host is NULL
Add check if grant_name->host.hostname is null
Convert places where host.hostname is NULL to "" before using it.
sql/sql_parse.cc:
Calculate and display the global statistics.
vio/Makefile.am:
Remove yassl_includes
extra/yassl/include/openssl/generate_prefix_files.pl:
New BitKeeper file ``extra/yassl/include/openssl/generate_prefix_files.pl''
extra/yassl/include/openssl/prefix_crypto.h:
New BitKeeper file ``extra/yassl/include/openssl/prefix_crypto.h''
extra/yassl/include/openssl/prefix_ssl.h:
New BitKeeper file ``extra/yassl/include/openssl/prefix_ssl.h''
mark result string using String::mark_as_const()
which prevents CONCAT from reusing it as a buffer
for concatenation result.
mysql-test/r/information_schema.result:
Bug#19599 duplication of information_schema column value in a CONCAT expr with user var
test case
mysql-test/t/information_schema.test:
Bug#19599 duplication of information_schema column value in a CONCAT expr with user var
test case
fix: return db name for I_S.TABLES(and others) in original letter case.
if mysql starts with lower_case_table_names=1 | 2 then original db name is converted
to lower case(for I_S tables). It happens when we perform add_table_to_list.
to avoid this we make a copy of original db name and use the copy hereafter.
mysql-test/r/lowercase_table2.result:
Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1
test case
mysql-test/t/lowercase_table2.test:
Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1
test case
into mysql.com:/usr/home/ram/work/4.1.b16546
sql/item_timefunc.cc:
Auto merged
mysql-test/r/func_time.result:
merging
mysql-test/t/func_time.test:
merging
(one testcase, one memory leak and some accesses to not initialized memory)
mysql-test/r/events_scheduling.result:
Changed event timer to two seconds to not get problems with slow system or when running with valgrind
mysql-test/t/events_scheduling.test:
Changed event timer to two seconds to not get problems with slow system or when running with valgrind
mysql-test/valgrind.supp:
Avoid purify warnings from DBUG library (safe to do)
sql/ha_berkeley.cc:
Fix problem with not freed memory
sql/sql_class.cc:
Ensure that row_count is initalized (as we otherwise may access it uninitialized)
sql/sql_show.cc:
c_ptr -> ptr to avoid accessing not initialized memory
sql/sql_yacc.yy:
Fix to not access not initialized memory
sql/table.cc:
Fix to not access not initialized memory
sql/time.cc:
Fix to not access not initialized memory
mysql-test/r/partition.result:
Added new test cases
mysql-test/r/partition_error.result:
Fixed test case
mysql-test/t/partition.test:
Added new test cases
mysql-test/t/partition_error.test:
Fixed test case
sql/ha_partition.cc:
Review fixes
sql/partition_element.h:
Review fixes
sql/partition_info.cc:
Review fixes
sql/share/errmsg.txt:
Review fixes
sql/sql_partition.cc:
Review fixes
sql/sql_yacc.yy:
Enabled possibility to use (MAXVALUE) as well as MAXVALUE.
In select_describe(), make the String object that holds the value of
"partitions" column to "own" the value buffer, so the buffer isn't
prematurely freed.
[this is the second attempt with review fixes]
mysql-test/r/partition_pruning.result:
BUG#19684: Testcase
mysql-test/t/partition_pruning.test:
BUG#19684: Testcase
sql/sql_select.cc:
BUG#19684: Garbage in 'partitions' column in EXPLAIN output:
- Added comment
- Make the String object that holds the value of "partitions" column
to "own" the value buffer, so the buffer isn't prematurely freed.
Remove compiler warnings
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Fixed regex to get rid of xid= in output
mysql-test/r/mysqlcheck.result:
Drop client_test_db if mysql_client_test fails
mysql-test/t/mysqlcheck.test:
Drop client_test_db if mysql_client_test fails
mysql-test/t/mysqldump.test:
Use --defaults-file instead of --defaults-extra-file to avoid reading my.cnf files
sql/event_scheduler.cc:
Remove compiler warnings
sql/ha_partition.cc:
Don't divide with 0 when checking current auto_increment value
sql/handler.cc:
After merge fix
sql/mysqld.cc:
Remove comiler warning
sql/partition_info.cc:
After merge fix
Fixed memory reference overrun for some wrong partition definitions
sql/sql_base.cc:
After merge fix
Always set *leaves in setup_tables_and_check_access() (assume argument is always given).
sql/sql_select.cc:
Simple optimization
sql/sql_show.cc:
Remove compiler warning
sql/sql_table.cc:
After merge fix
storage/csv/ha_tina.cc:
Ensure table maps are restored properly
storage/ndb/include/ndbapi/Ndb.hpp:
Remove compiler warning