diff --git a/mysql-test/main/mdev_41684.result b/mysql-test/main/mdev_41684.result new file mode 100644 index 0000000000000..d144f80ce9b59 --- /dev/null +++ b/mysql-test/main/mdev_41684.result @@ -0,0 +1,11 @@ +# +# MDEV-41684: Embedded: prepared TIME parameter reports column length 16 instead of 23 +# +PREPARE stmt FROM 'SELECT ?'; +SET @a = '-838:59:59.000000'; +EXECUTE stmt USING @a; +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def ? 251 17 17 N 1 39 8 +? +-838:59:59.000000 +DEALLOCATE PREPARE stmt; diff --git a/mysql-test/main/mdev_41684.test b/mysql-test/main/mdev_41684.test new file mode 100644 index 0000000000000..74c0507a0a285 --- /dev/null +++ b/mysql-test/main/mdev_41684.test @@ -0,0 +1,10 @@ +--echo # +--echo # MDEV-41684: Embedded: prepared TIME parameter reports column length 16 instead of 23 +--echo # + +--enable_metadata +PREPARE stmt FROM 'SELECT ?'; +SET @a = '-838:59:59.000000'; +EXECUTE stmt USING @a; +DEALLOCATE PREPARE stmt; +--disable_metadata diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index a865dc3a1267a..61fecc266a5c5 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -777,7 +777,7 @@ void Item_param::set_param_time(uchar **pos, ulong len) tm.minute= 59; tm.second= 59; } - set_time(&tm, MYSQL_TIMESTAMP_TIME, MAX_TIME_WIDTH); + set_time(&tm, MYSQL_TIMESTAMP_TIME, MAX_TIME_FULL_WIDTH); } void Item_param::set_param_datetime(uchar **pos, ulong len)