Updated test case for bug #28898. Additional cleanup.
mysql-test/t/metadata.test:
Updated test case for bug #28898. Additional cleanup.
mysql-test/r/metadata.result:
Updated test case for bug #28898. Additional cleanup.
For a join query with GROUP BY and/or ORDER BY and a view reference
in the FROM list the metadata erroneously showed empty table aliases
and database names for the view columns.
sql/item.h:
Fixed bug #28898.
Body of Item_ref::get_tmp_table_item method has been moved
to item.cc file.
mysql-test/t/metadata.test:
Updated test case for bug #28898.
sql/item.cc:
Fixed bug #28898.
The Item_ref::get_tmp_table_item method has been modified
to copy pointers to the table alias and database name to the new
Item_field object created for a field stored in the temporary
table.
mysql-test/r/metadata.result:
Updated test case for bug #28898.
sql/sql_select.cc:
Fixed bug #28898.
The change_to_use_tmp_fields function has been modified to
to copy pointers to the table alias and database name from
the Item_ref objects to the new Item_field objects created
for fields stored in the temporary table.
into mysql.com:/d2/hf/mrg/mysql-5.0-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/mysqld.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/innodb_mysql.result:
merging
mysql-test/t/innodb_mysql.test:
merging
sql/sql_select.cc:
merging
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.
- 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.
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'.
on PPC/Debian Linux default stack size for a thread is too big.
As we use default thread settings in mysqltest, the
thread creation fails if we create lots of threads (as it
happens in flush.test). So now stack size is explicitly specified
for the mysqltest
client/mysqltest.c:
Bug #28333 Test "flush" tries to create a new thread - on only one platform
specify appropriate stack size for the 'query' thread
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.
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.
into trift2.:/MySQL/M50/push-5.0
netware/comp_err.def:
Auto merged
netware/isamchk.def:
Auto merged
netware/isamlog.def:
Auto merged
netware/libmysql.def:
Auto merged
netware/myisam_ftdump.def:
Auto merged
netware/myisamchk.def:
Auto merged
netware/myisamlog.def:
Auto merged
netware/myisampack.def:
Auto merged
netware/mysql.def:
Auto merged
netware/mysql_install_db.def:
Auto merged
netware/mysql_test_run.def:
Auto merged
netware/mysql_waitpid.def:
Auto merged
netware/mysqladmin.def:
Auto merged
netware/mysqlbinlog.def:
Auto merged
netware/mysqlcheck.def:
Auto merged
netware/mysqld.def:
Auto merged
netware/mysqld_safe.def:
Auto merged
netware/mysqldump.def:
Auto merged
netware/mysqlimport.def:
Auto merged
netware/mysqlshow.def:
Auto merged
netware/mysqltest.def:
Auto merged
netware/pack_isam.def:
Auto merged
netware/perror.def:
Auto merged
netware/replace.def:
Auto merged
netware/resolve_stack_dump.def:
Auto merged
netware/resolveip.def:
Auto merged
netware/my_print_defaults.def:
Use 5.0 version
netware/comp_err.def:
Allocate 128K stack for all executables (bug#23504)
netware/isamchk.def:
Allocate 128K stack for all executables (bug#23504)
netware/isamlog.def:
Allocate 128K stack for all executables (bug#23504)
netware/libmysql.def:
Allocate 128K stack for all executables (bug#23504)
netware/my_print_defaults.def:
Allocate 128K stack for all executables (bug#23504)
netware/myisam_ftdump.def:
Allocate 128K stack for all executables (bug#23504)
netware/myisamchk.def:
Allocate 128K stack for all executables (bug#23504)
netware/myisamlog.def:
Allocate 128K stack for all executables (bug#23504)
netware/myisampack.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysql.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysql_install_db.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysql_test_run.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysql_waitpid.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysqladmin.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysqlbinlog.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysqlcheck.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysqld.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysqld_safe.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysqldump.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysqlimport.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysqlshow.def:
Allocate 128K stack for all executables (bug#23504)
netware/mysqltest.def:
Allocate 128K stack for all executables (bug#23504)
netware/pack_isam.def:
Allocate 128K stack for all executables (bug#23504)
netware/perror.def:
Allocate 128K stack for all executables (bug#23504)
netware/replace.def:
Allocate 128K stack for all executables (bug#23504)
netware/resolve_stack_dump.def:
Allocate 128K stack for all executables (bug#23504)
netware/resolveip.def:
Allocate 128K stack for all executables (bug#23504)
a temporary table has grown out of heap memory reserved for it and
the remaining disk space is not big enough to store the table as
a MyISAM table.
The crash happens because the function create_myisam_from_heap
does not handle safely the mem_root structure associated
with the converted table in the case when an error has occurred.
sql/sql_select.cc:
Fixed bug #28449: a crash may happen at some rare conditions when
a temporary table has grown out of heap memory reserved for it and
the remaining disk space is not big enough to store the table as
a MyISAM table.
The crash happens because the function create_myisam_from_heap
does not handle safely the mem_root structure associated
with the converted table in the case when an error has occurred.
As it's hard to create a sitiation that would throw an error
a special code has been added that raises an error for a newly
created test called error_simulation.
mysql-test/r/error_simulation.result:
New BitKeeper file ``mysql-test/r/error_simulation.result''
Added a test case for bug #28449.
mysql-test/t/error_simulation-master.opt:
New BitKeeper file ``mysql-test/t/error_simulation-master.opt''
mysql-test/t/error_simulation.test:
New BitKeeper file ``mysql-test/t/error_simulation.test''
Added a test case for bug #28449.
wrong result for DML
When making key reference buffers over CHAR fields whitespace (0x20)
must be used to fill in the remaining space in the field's buffer.
This is what Field_string::store() does.
Fixed Field_string::get_key_image() to do the same.
mysql-test/r/innodb_mysql.result:
Bug#28878: test case
mysql-test/t/innodb_mysql.test:
Bug#28878: test case
sql/field.cc:
Bug#28878: Fill with space instead of binary zeros.
flag is set.
When the CLIENT_FOUND_ROWS flag is set then the server should return
found number of rows independently whether they were updated or not.
But this wasn't the case for the INSERT statement which always returned
number of rows that were actually changed thus providing wrong info to
the user.
Now the select_insert::send_eof method and the mysql_insert function
are sending the number of touched rows if the CLIENT_FOUND_ROWS flag is set.
tests/mysql_client_test.c:
Added a test case for the bug#28505: mysql_affected_rows() may return wrong result
if CLIENT_FOUND_ROWS flag is set.
sql/sql_insert.cc:
Bug#28505: mysql_affected_rows() may return wrong result if CLIENT_FOUND_ROWS
flag is set.
Now the select_insert::send_eof method and the mysql_insert function
are sending the number of touched rows if the CLIENT_FOUND_ROWS flag is set.
into trift2.:/MySQL/M50/push-5.0
CMakeLists.txt:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/t/ctype_cp932_binlog.test:
Auto merged
mysql-test/t/mysqltest.test:
Auto merged
into mysql.com:/home/gluh/MySQL/Merge/5.0-opt
mysql-test/r/subselect.result:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/t/subselect.test:
manual merge
forbid the use of subselect in PURGE LOGS BEFORE command
mysql-test/r/subselect.result:
test result
mysql-test/t/subselect.test:
test case
sql/sql_yacc.yy:
forbid the use of subselect in PURGE LOGS BEFORE command
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun05/50
client/mysqldump.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
integer constants.
This bug is introduced by the fix for bug#16377. Before the fix the
Item_func_between::fix_length_and_dec method converted the second and third
arguments to the type of the first argument if they were constant and the first
argument is of the DATE/DATETIME type. That approach worked well for integer
constants and sometimes produced bad result for string constants. The fix for
the bug#16377 wrongly removed that code at all and as a result of this the
comparison of a DATETIME field and an integer constant was carried out in a
wrong way and sometimes led to wrong result sets.
Now the Item_func_between::fix_length_and_dec method converts the second and
third arguments to the type of the first argument if they are constant, the
first argument is of the DATE/DATETIME type and the DATETIME comparator isn't
applicable.
sql/item_cmpfunc.cc:
Bug#28778: Wrong result of BETWEEN when comparing a DATETIME field with an
integer constants.
Now the Item_func_between::fix_length_and_dec method converts the second and
third arguments to the type of the first argument if they are constant, the
first argument is of the DATE/DATETIME type and the DATETIME comparator isn't
applicable.
mysql-test/r/type_datetime.result:
Added a test case for the bug#28778: Wrong result of BETWEEN when comparing a DATETIME
field with an integer constants.
mysql-test/t/type_datetime.test:
Added a test case for the bug#28778: Wrong result of BETWEEN when comparing a DATETIME
field with an integer constants.