into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun14/51
configure.in:
Auto merged
BitKeeper/deleted/.del-ctype_cp932_notembedded.test~3047e508460cef42:
Auto merged
mysql-test/extra/binlog_tests/binlog.test:
Auto merged
mysql-test/extra/binlog_tests/blackhole.test:
Auto merged
mysql-test/extra/binlog_tests/ctype_cp932_binlog.test:
Auto merged
mysql-test/extra/binlog_tests/ctype_ucs_binlog.test:
Auto merged
mysql-test/extra/binlog_tests/drop_temp_table.test:
Auto merged
mysql-test/extra/binlog_tests/insert_select-binlog.test:
Auto merged
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/include/mix1.inc:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/binlog_stm_binlog.result:
Auto merged
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
Auto merged
mysql-test/r/have_log_bin.require:
Auto merged
mysql-test/t/flush_block_commit_notembedded.test:
Auto merged
mysql-test/t/insert_update.test:
Auto merged
mysql-test/t/mysqlbinlog-cp932.test:
Auto merged
mysql-test/t/mysqlbinlog2.test:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/sp_trans.test:
Auto merged
sql/handler.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/r/date_formats.result:
Use local
mysql-test/r/partition.result:
SCCS merged
mysql-test/t/date_formats.test:
Use local
mysql-test/t/ndb_basic.test:
manual merge
mysql-test/t/partition.test:
manual merge
mysql-test/t/user_var-binlog.test:
use local
into mysql.com:/d2/hf/mrg/mysql-5.1-opt
client/mysqltest.c:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/include/mix1.inc:
merging
mysql-test/r/innodb_mysql.result:
merging
sql/sql_select.cc:
merging
Removed the ability to cache queries with UUID() and UUID_SHORT().
sql/item_create.cc:
Removed the ability to cache queries with UUID() and UUID_SHORT().
was erroneously converted to double, while the result of
ROUND(<decimal expr>, <int literal>) was preserved as decimal.
As a result of such a conversion the value of ROUND(D,A) could
differ from the value of ROUND(D,val(A)) if D was a decimal expression.
Now the result of the ROUND function is never converted to
double if the first argument is decimal.
mysql-test/r/type_decimal.result:
Added a test case for bug #28980.
mysql-test/t/type_decimal.test:
Added a test case for bug #28980.
into magare.gmz:/home/kgeorge/mysql/work/merge-5.1-opt
mysql-test/r/insert_update.result:
Auto merged
mysql-test/r/trigger.result:
Auto merged
mysql-test/t/insert_update.test:
Auto merged
mysql-test/t/trigger.test:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/item_func.cc:
merge of 5.0-opt -> 5.1-opt
sql/sql_insert.cc:
merge of 5.0-opt -> 5.1-opt
sql/structs.h:
merge of 5.0-opt -> 5.1-opt
tests/mysql_client_test.c:
merge of 5.0-opt -> 5.1-opt
protocol
Fixed duplicated code, same as last commit.
One could send a malformed packet that caused the server to SEGV. In
recent versions of the password protocol, the client tells the server
what length the ciphertext is (almost always 20). If that length was
large enough to overflow a signed char, then the number would jump to
very large after being casted to unsigned int.
Instead, cast the *passwd char to uchar.
sql/sql_parse.cc:
Additional location of signed-char casted to uint.
- fixed wrong test case for bug 20903
- closed the dangling connections in trigger.test
- GET_LOCK() and RELEASE_LOCK() now produce more detailed log
- fixed an omission in GET_LOCK() : assign the thread_id when
acquiring the lock.
mysql-test/r/trigger.result:
Bug #28992: test case updated
mysql-test/t/trigger.test:
Bug #28992: test case updated. dangling connections closed.
sql/item_func.cc:
Bug #28992:
- GET_LOCK() and RELEASE_LOCK() now produce more detailed log
- fixed an omission in GET_LOCK() : assign the thread_id when
acquiring the lock.
Sometimes a parameter slot may not get a value because of the protocol
data being plain wrong.
Such cases should be detected and handled by returning an error.
Fixed by checking data stream constraints where possible (like maximum
length) and reacting to the case where a value cannot be constructed.
sql/sql_prepare.cc:
Bug #28934:
- check for a parameter slot not being set because
of wrong data
- check if the length read from the stream is not
greater than the maximum length of the field
tests/mysql_client_test.c:
Bug #28934: test case
When the INSERT .. ON DUPLICATE KEY UPDATE has to update a matched row but
the new data is the same as in the record then it returns as if
no rows were inserted or updated. Nevertheless the row is silently
updated. This leads to a situation when zero updated rows are reported
in the case when data has actually been changed.
Now the write_record function updates a row only if new data differs from
that in the record.
sql/sql_insert.cc:
Bug#28904: INSERT .. ON DUPLICATE was silently updating rows when it shouldn't.
Now the write_record function updates a row only if new data differs from
that in the record.
mysql-test/r/insert_update.result:
Added a test case for the bug#28904: INSERT .. ON DUPLICATE was silently
updating rows when it shouldn't.
mysql-test/t/insert_update.test:
Added a test case for the bug#28904: INSERT .. ON DUPLICATE was silently
updating rows when it shouldn't.
protocol
Update for function moved to new file in 5.1.
One could send a malformed packet that caused the server to SEGV. In
recent versions of the password protocol, the client tells the server
what length the ciphertext is (almost always 20). If that length was
large enough to overflow a signed char, then the number would jump to
very large after being casted to unsigned int.
Instead, cast the *passwd char to uchar.
sql/sql_connect.cc:
Update for function moved to new file in 5.1.
In create_tmp_table() don't set full table path as a table name. Other code assumes table names to not exceed NAME_LEN bytes.
sql/sql_select.cc:
In create_tmp_table() don't set full table path as a table name. Other code assumes table names to not exceed NAME_LEN bytes.
mysql-test/r/long_tmpdir.result:
Added testcase for bug #29015 "Stack overflow in processing temporary table name when tmpdir path is long"
mysql-test/t/long_tmpdir-master.opt:
Added testcase for bug #29015 "Stack overflow in processing temporary table name when tmpdir path is long"
mysql-test/t/long_tmpdir-master.sh:
Added testcase for bug #29015 "Stack overflow in processing temporary table name when tmpdir path is long"
mysql-test/t/long_tmpdir.test:
Added testcase for bug #29015 "Stack overflow in processing temporary table name when tmpdir path is long"
into moonbone.local:/mnt/gentoo64/work/test-5.1-opt-mysql
mysql-test/r/view.result:
Auto merged
mysql-test/t/grant2.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
mysql-test/r/grant2.result:
SCCS merged
mysql-test/r/information_schema.result:
SCCS merged
mysql-test/t/information_schema.test:
SCCS merged
sql/sql_table.cc:
SCCS merged
Post merge fix.
mysql-test/t/error_simulation.test:
Post merge fix.
mysql-test/r/subselect.result:
Post merge fix.
mysql-test/r/error_simulation.result:
Post merge fix.
sql/item.cc:
Post merge fix.
Post merge fix.
sql/sql_yacc.yy:
Post merge fix.
sql/sql_insert.cc:
Post merge fix.
sql/sql_class.h:
Post merge fix.
sql/item_cmpfunc.cc:
Post merge fix.
sql/field.cc:
Post merge fix.
changed bytes_received, bytes_sent status variables to longlong
sql/mysqld.cc:
changed bytes_received, bytes_sent status variables to longlong
sql/sql_class.h:
changed bytes_received, bytes_sent status variables to longlong
sql/sql_show.cc:
changed bytes_received, bytes_sent status variables to longlong
sql/structs.h:
changed bytes_received, bytes_sent status variables to longlong
IS_UPDATABLE flag is set to 'yes' when the view has at least one updatable column and
the algorithm is not 'temporary'.
mysql-test/r/information_schema.result:
test result
mysql-test/r/view.result:
test result
mysql-test/t/information_schema.test:
test case
mysql-test/t/view.test:
test case
sql/sql_show.cc:
IS_UPDATABLE flag is set to 'yes' when the view has at least one updatable column and
the algorithm is not 'temporary'.
mysql-test/include/have_archive.inc:
test fix(according to new 'support' column values)
mysql-test/include/have_blackhole.inc:
test fix(according to new 'support' column values)
mysql-test/include/have_csv.inc:
test fix(according to new 'support' column values)
mysql-test/include/have_exampledb.inc:
test fix(according to new 'support' column values)
mysql-test/include/have_federated_db.inc:
test fix(according to new 'support' column values)
mysql-test/include/have_innodb.inc:
test fix(according to new 'support' column values)
mysql-test/include/have_multi_ndb.inc:
test fix(according to new 'support' column values)
mysql-test/include/have_ndb.inc:
test fix(according to new 'support' column values)
mysql-test/r/information_schema.result:
result fix
protocol
One could send a malformed packet that caused the server to SEGV. In
recent versions of the password protocol, the client tells the server
what length the ciphertext is (almost always 20). If that length was
large enough to overflow a signed char, then the number would jump to
very large after being casted to unsigned int.
Instead, cast the *passwd char to uchar.
sql/sql_parse.cc:
Cast *passwd to get rid of the sign, so that sign extension doesn't
cause the sequence 125, 126, 127, 4294967169, 4294967170.
when logging is enabled.
Currently the partition engine doesn't allow log tables to
be partitioned. But this was not checked and the server crashed.
Fixed by adding a check in ALTER TABLE to disable partitioning the
log tables.
While working on the cause of the problem improved the way the log
thread structures are initialized before opening the log tables.
mysql-test/r/partition.result:
Bug #27816: test case
mysql-test/t/partition.test:
Bug #27816: test case
sql/log.cc:
Bug #27816: optional
Improved initialization of the log threads before opening
the log table.
Remedies problems that arise from open_table() et. al.
depending on a correctly initialized thd.
Prerequisite for handling partitioned log tables :
they call the parser while reading the .frm file.
sql/sql_table.cc:
Bug #27816: throw an error when paritioning the log tables :
not supported by the partition engine.
Changed SHOW ENGINES to work in the same way as I_S.ENGINES.
For this: removed the functions mysqld_show_storage_engines and show_handlerton, and
made SHOW ENGINES work via the common function iter_schema_engines.
There in no test case because an engine (except of MyISAM) may be not compiled or disabled
which may affect the test result.
sql/sql_parse.cc:
Changed SHOW ENGINES to work in the same way as I_S.ENGINES.
sql/sql_show.cc:
Changed SHOW ENGINES to work in the same way as I_S.ENGINES.
For this: removed the functions mysqld_show_storage_engines and show_handlerton, and
made SHOW ENGINES work via the common function iter_schema_engines.
When constructing the path to the original .frm file ALTER .. RENAME
was unnecessary (and incorrectly) lowercasing the whole path when not
on a case-insensitive filesystem.
This path should not be modified because of lower_case_table_names
as it is already in the correct case according to that setting.
Fixed by removing the lowercasing.
Unfortunately testing this would require running the tests on a case
sensitive filesystem in a directory that has uppercase letters.
This cannot be guaranteed in all setups so no test case added.
sql/sql_table.cc:
Bug #28754: don't downcase the .frm path
In case of database level grant the database name may be a pattern,
in case of table|column level grant the database name can not be a pattern.
We use 'dont_check_global_grants' as a flag to determine
if it's database level grant command
(see SQLCOM_GRANT case, mysql_execute_command() function) and
set db_is_pattern according to 'dont_check_global_grants' value.
mysql-test/r/grant2.result:
test result
mysql-test/t/grant2.test:
test case
sql/sql_parse.cc:
In case of database level grant the database name may be a pattern,
in case of table|column level grant the database name can not be a pattern.
We use 'dont_check_global_grants' as a flag to determine
if it's database level grant command
(see SQLCOM_GRANT case, mysql_execute_command() function) and
set db_is_pattern according to 'dont_check_global_grants' value.
ORDER BY and LIMIT 1.
The bug was introduced by the patch for bug 21727. The patch
erroneously skipped initialization of the array of headers
for sorted records for non-first evaluations of the subquery.
To fix the problem a new parameter has been added to the
function make_char_array that performs the initialization.
Now this function is called for any invocation of the
filesort procedure. Yet it allocates the buffer for sorted
records only if this parameter is NULL.
mysql-test/r/subselect.result:
Added a test case for bug #28811.
mysql-test/t/subselect.test:
Added a test case for bug #28811.
into rama.(none):/home/jimw/my/mysql-5.1-clean
mysql-test/extra/binlog_tests/insert_select-binlog.test:
Auto merged
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/sp_trans.test:
Auto merged
This bug was introduced by the fix for the bug#27300. In this fix a section
of code was added to the Item::tmp_table_field_from_field_type method.
This section intended to create Field_geom fields for the Item_geometry_func
class and its descendants. In order to get the geometry type of the current
item it casted "this" to the Item_geometry_func* type. But the
Item::tmp_table_field_from_field_type method is also used for creation of
fields for UNION and in this case this method is called for an object of the
Item_type_holder class and the cast to the Item_geometry_func* type causes
a server crash.
Now the Item::tmp_table_field_from_field_type method correctly works when it's
called for both the Item_type_holder and the Item_geometry_func classes.
The new geometry_type variable is added to the Item_type_holder class.
The new method called get_geometry_type is added to the Item_field
and the Field classes. It returns geometry type from the field for the
Item_field and the Field_geom classes and fails an assert for other Field
descendants.
sql/field.h:
Bug#28763: Selecting geometry fields in UNION caused server crash.
The new method called get_geometry_type is added to the Field class.
It returns geometry type of the field for the Field_geom class
and fails an assert for other Field descendants.
sql/item.cc:
Bug#28763: Selecting geometry fields in UNION caused server crash.
Now the Item::tmp_table_field_from_field_type method correctly works when it's
called for both the Item_type_holder and the Item_geometry_func classes.
mysql-test/r/gis.result:
Added a test case for the bug#28763: Selecting geometry fields in UNION caused server crash.
mysql-test/t/gis.test:
Added a test case for the bug#28763: Selecting geometry fields in UNION caused server crash.
sql/item.h:
Bug#28763: Selecting geometry fields in UNION caused server crash.
The new method called get_geometry_type is added to the Item_field class.
It returns geometry type from the field.
The new geometry_type variable is added to the Item_type_holder class.
Problem: getting an autoincrement value for a partition table in the ::info() method we call
the get_auto_increment() for all partitions. That may cause a problem for at least MyISAM
tables that rely on some table state (in this particular case table->naxt_nuber_field is
set to 0 in the mysql_insert() and we get a crash).
Moreover, calling get_auto_increment() is superfluous there.
Fix: use ::info(HA_STATUS_AUTO) calls to get autoincrement values for partitions instead of
get_auto_increment() ones in the ha_partition::info().
mysql-test/r/partition.result:
Fix for bug #28806: Running SHOW TABLE STATUS during high INSERT load crashes server
- test result.
mysql-test/t/partition.test:
Fix for bug #28806: Running SHOW TABLE STATUS during high INSERT load crashes server
- test case.
sql/ha_partition.cc:
Fix for bug #28806: Running SHOW TABLE STATUS during high INSERT load crashes server
- use info(HA_STATUS_AUTO) calls to get autoincrement values for partitions,
set the auto_increment_value as the biggest one.
If we have lower_case_table_names == 2 (usually on case insensitive file
systems) we sometimes make 'homedir' part of the path sent to the
handler into lowercase. So in this case HEAP engine couldn't properly
find and remove HP_SHARE, what caused the bug.
sql/handler.cc:
bug #28309 First insert violates UNIQUE constraint - was "memory" table empty?
we don't turn homedirectory part of the path into lowercase
sql/mysql_priv.h:
bug #28309 First insert violates UNIQUE constraint - was "memory" table empty?
mysql_data_home_len introduced
sql/mysqld.cc:
bug #28309 First insert violates UNIQUE constraint - was "memory" table empty?
mysql_data_home_len value is set with the mysql_data_home