diff options
author | Alexander Barkov <bar@mariadb.org> | 2017-04-19 05:20:19 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2017-04-19 05:20:19 +0400 |
commit | e2b03cd3b54f39e09bf20eef77effe1b53813f29 (patch) | |
tree | 4ac86a3a301c79b25ce497683d1416ecee822378 /mysql-test/t/gis.test | |
parent | 634f9186922d0decb597178fda15928d2b22f062 (diff) | |
download | mariadb-git-e2b03cd3b54f39e09bf20eef77effe1b53813f29.tar.gz |
MDEV-12514 Split Item_temporal_func::fix_length_and_dec() + MDEV-12515
This patch implements MDEV-12514 according to the task descriptions.
It automatically fixes:
MDEV-12515 Wrong value when storing DATE_ADD() and ADDTIME() to a numeric field
Additionally:
a. Moves Item_func::set_attributes_temporal() to
Type_str_attributes::fix_attributes_temporal(),
which is a more proper place and name for it.
b. Continues replacing calls for:
set_handler_by_field_type(MYSQL_TYPE_XXX)
to corresponding:
set_handler(&type_handler_xxx)
which is faster.
Note, we should eventually get rid of almost all set_handler_by_field_type().
c. Makes type_handler_string, type_handler_time2, type_handler_newdate,
type_handler_datetime2 public.
(all built-in handlers will become public eventually)
d. Removing Item_temporal_func::sql_mode, as it was not used.
Diffstat (limited to 'mysql-test/t/gis.test')
-rw-r--r-- | mysql-test/t/gis.test | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/mysql-test/t/gis.test b/mysql-test/t/gis.test index a19de83f046..1b355b70bc6 100644 --- a/mysql-test/t/gis.test +++ b/mysql-test/t/gis.test @@ -2090,6 +2090,40 @@ SELECT 1 MOD COALESCE(a) FROM t1; DROP TABLE t1; +--echo # +--echo # MDEV-12514 Split Item_temporal_func::fix_length_and_dec() +--echo # + +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT DATE_ADD(POINT(1,1), INTERVAL 10 DAY); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT DATE_SUB(POINT(1,1), INTERVAL 10 DAY); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT POINT(1,1) + INTERVAL 10 DAY; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT POINT(1,1) - INTERVAL 10 DAY; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT INTERVAL 10 DAY + POINT(1,1); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT INTERVAL 10 DAY + POINT(1,1); + +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT ADDTIME(POINT(1,1), '10:10:10'); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT ADDTIME('10:10:10', POINT(1,1)); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT ADDTIME(POINT(1,1), TIME'10:10:10'); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT ADDTIME(TIME'10:10:10', POINT(1,1)); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT ADDTIME(POINT(1,1), TIMESTAMP'2001-01-01 10:10:10'); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT ADDTIME(TIMESTAMP'2001-01-01 10:10:10', POINT(1,1)); + +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT STR_TO_DATE(POINT(1,1),'%M %d,%Y'); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT STR_TO_DATE('2001-01-01', POINT(1,1)); --echo # --echo # End of 10.3 tests |