HOUR(), MINUTE(), ... returned spurious results when used on a DATE-cast.
This happened because DATE-cast object did not overload get_time() method
in superclass Item. The default method was inappropriate here and
misinterpreted the data.
Patch adds missing method; get_time() on DATE-casts now returns SQL-NULL
on NULL input, 0 otherwise. This coincides with the way DATE-columns
behave.
Also fixes similar bug in Date-Field now.
mysql-test/r/cast.result:
Show that HOUR(), MINUTE(), ... return sensible values when used
on DATE-cast objects, namely NULL for NULL-dates and 0 otherwise.
Show that this coincides with how DATE-columns behave.
mysql-test/r/type_date.result:
Show that HOUR(), MINUTE(), ... return sensible values when used
on DATE-fields.
mysql-test/t/cast.test:
Show that HOUR(), MINUTE(), ... return sensible values when used
on DATE-cast objects, namely NULL for NULL-dates and 0 otherwise.
Show that this coincides with how DATE-columns behave.
mysql-test/t/type_date.test:
Show that HOUR(), MINUTE(), ... return sensible values when used
on DATE-fields.
sql/field.cc:
Add get_time() method to DATE-field object to overload
the method in Field superclass that would return spurious
results. Return zero-result.
sql/field.h:
Add get_time() declaration to date-field class
sql/item_timefunc.cc:
Add get_time() method to DATE-cast object to overload
the method in Item superclass that would return spurious
results. Return zero-result; flag NULL if input was NULL.
sql/item_timefunc.h:
Add get_time() declaration to DATE-cast object.
Formatting change to improve readability of the "test-*" targets.
Makefile.am:
Formatting change to improve readability:
In multi-line actions, indent the continuation lines
so that the start of the next statement is better visible.
This affects only "test-*" targets.
into adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
mysql-test/r/read_only.result:
Auto merged
sql/sql_parse.cc:
Auto merged
mysql-test/t/read_only.test:
Manual merge
mysql-test/r/read_only.result:
Removing non deterministic test results from test.
mysql-test/t/read_only.test:
Removing non deterministic test results from test.
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test:
Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraColMaster.result:
Auto merged
mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result:
manual merge
mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result:
manual merge
into pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build
client/mysqldump.c:
Auto merged
mysql-test/r/innodb_mysql.result:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/mysqld.cc:
Auto merged
LAST_DAY() says it returns a DATE, not a DATETIME, but didn't zero the time fields.
Adapted from a patch kindly supplied by Claudio Cherubino.
mysql-test/r/func_time.result:
show that LAST_DAY() returns only a DATE, not a DATETIME
mysql-test/t/func_time.test:
show that LAST_DAY() returns only a DATE, not a DATETIME
sql/item_timefunc.cc:
zero time-fields as we return only a DATE
fixes for SLES10
mysql-test/r/change_user.result:
It's unsigned.
mysys/my_getopt.c:
Failsafe no longer needed, we handle signedness correctly now.
sql/set_var.cc:
ha_rows can be derived from all kinds of types, but
they're all unsigned. Display it as such.
tests/mysql_client_test.c:
cannot easily check this here due to types.
check with Alik whether we need this on top
of change_user.test.
into lapi.mysql.com:/home/tkatchaounov/mysql/src/5.1#32694
mysql-test/r/type_datetime.result:
Auto merged
mysql-test/t/type_datetime.test:
Manual merge for BUG#32694.
sql/item_cmpfunc.cc:
Manual merge for BUG#32694.
The problem was that when convert_constant_item is called for subqueries,
this happens when we already started executing the top-level query, and
the field argument of convert_constant_item pointed to a valid table row.
In turn convert_constant_item used the field buffer to compute the value
of its item argument. This copied the item's value into the field,
and made equalities with outer references always true.
The fix saves/restores the original field's value when it belongs to an
outer table.
mysql-test/r/type_datetime.result:
Test for BUG#32694.
mysql-test/t/type_datetime.test:
Test for BUG#32694.
sql/item_cmpfunc.cc:
- Changed convert_constant_item() so that it doesn't destroy the contents
of its field argument when the field originates from table in an outer
query.
Both arguments of the function NAME_CONST must be constant expressions.
This constraint is checked in the Item_name_const::fix_fields method.
Yet if the argument of the function was not a constant expression no
error message was reported. As a result the client hanged waiting for a
response.
Now the function Item_name_const::fix_fields reports an error message
when any of the additional context conditions imposed on the function
NAME_CONST is not satisfied.
mysql-test/r/func_misc.result:
Added a test case for bug #26545.
mysql-test/t/func_misc.test:
Added a test case for bug #26545.
The index (key_part_1, key_part-2) was erroneously considered as compatible
with the required ordering in the function test_test_if_order_by_key when
a query with an ORDER BY clause contained a condition of the form
key_part_1=const OR key_part_1 IS NULL
and the order list contained only key_part_2. This happened because the value
of the const_key_parts field in the KEYUSE structure was not formed correctly
for the keys that could be used for ref_or_null access.
This was fixed in the code of the update_ref_and_keys function.
The problem could not manifest itself for MyISAM databases because the
implementation of the keys_to_use_for_scanning() handler function always
returns an empty bitmap for the MyISAM engine.
mysql-test/r/innodb_mysql.result:
Added a test case for bug #32815.
mysql-test/t/innodb_mysql.test:
Added a test case for bug #32815.
sql/sql_select.cc:
Fixed bug #32815.
The index (key_part_1, key_part-2) was erroneously considered as compatible
with the required ordering in the function test_test_if_order_by_key when
a query with an ORDER BY clause contained a condition of the form
key_part_1=const OR key_part_1 IS NULL
and the order list contained only key_part_2. This happened because the value
of the const_key_parts field in the KEYUSE structure was not formed correctly
for the keys that could be used for ref_or_null access.
This was fixed in the code of the update_ref_and_keys function.
Change LAST_EXECUTED time the execution start time, instead of the execution completion time. This ensures the END time always the same or later than the LAST_EXECUTED time.
mysql-test/t/disabled.def:
Enable events_scheduling test
mysql-test/mysql-test-run.pl:
Add a way to remove options which mysql-test-run.pl no longer uses. Since
mysql-test-run.pl passes unrecognized options through to mysqld directly,
it is not possible to just remove an option. Otherwise it would be given
to mysqld, which probably will not recognize it and will fail to start.
Instead, we now explicitly ignore the option, and print a warning to
the user.
The Item_func_set_user_var::register_field_in_read_map() did not check
that the result_field was null.This caused server crashes for queries that
required order by such a field and were executed without using a temporary
table.
The Item_func_set_user_var::register_field_in_read_map() now checks the
result_field to be not null.
mysql-test/t/user_var.test:
Added a test case for the bug#32482: Crash for a query with ORDER BY a user variable.
mysql-test/r/user_var.result:
Added a test case for the bug#32482: Crash for a query with ORDER BY a user variable.
sql/item_func.cc:
Bug#32482: Crash for a query with ORDER BY a user variable.
The Item_func_set_user_var::register_field_in_read_map() now checks the
result_field to be not null.
When read_only option was enabled, a user without SUPER privilege could
perform CREATE DATABASE and DROP DATABASE operations.
This patch adds a check to make sure this isn't possible. It also attempts to
simplify the logic used to determine if relevant tables are updated,
making it more human readable.
mysql-test/r/read_only.result:
Updated result file
mysql-test/t/read_only.test:
A test case is added which shows that it is not possible to drop or create a
database in read-only mode despite having the GRANT permissions to do so,
SUPER user excepted.
sql/sql_parse.cc:
- Simplified complex predicate by grouping it in a read friendly way.
- Added predicate to fail on database updates while running in read-only
mode.
into macbook.gmz:/Users/kgeorge/mysql/work/merge-5.1-opt
BitKeeper/deleted/.del-ps_6bdb.result:
Auto merged
client/mysql.cc:
Auto merged
mysql-test/r/delete.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/type_bit.result:
Auto merged
mysql-test/suite/ndb/r/ps_7ndb.result:
Auto merged
mysql-test/t/delete.test:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysql-test/t/variables.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/protocol.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql-common/my_time.c:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/r/myisam.result:
merge 5.0-opt -> 5.1-opt
mysql-test/r/subselect.result:
merge 5.0-opt -> 5.1-opt
mysql-test/t/myisam.test:
merge 5.0-opt -> 5.1-opt
mysql-test/t/subselect.test:
merge 5.0-opt -> 5.1-opt