Browse Source

fix invalid error handling

xx.x-mdev-12513-INTERVAL-data-type
Dave Gosselin 1 month ago
parent
commit
90d2d05b73
  1. 14
      mysql-test/main/type_interval.result
  2. 14
      mysql-test/main/type_interval.test
  3. 2
      sql/share/errmsg-utf8.txt
  4. 3
      sql/sql_yacc.yy

14
mysql-test/main/type_interval.result

@ -180,19 +180,19 @@ ERROR 42000: This version of MariaDB doesn't yet support 'INTERVAL MINUTE TO MIC
CREATE PROCEDURE sp_invalid7(IN a INTERVAL SECOND TO MICROSECOND) BEGIN END;
ERROR 42000: This version of MariaDB doesn't yet support 'INTERVAL SECOND TO MICROSECOND'
CREATE PROCEDURE sp_invalid8(IN a INTERVAL MICROSECOND TO SECOND) BEGIN END;
ERROR 42000: Invalid INTERVAL range combination near '\0014' at line 0
ERROR HY000: Invalid INTERVAL range combination
CREATE PROCEDURE sp_invalid11(IN a INTERVAL MICROSECOND TO MINUTE) BEGIN END;
ERROR 42000: Invalid INTERVAL range combination near '\0014' at line 0
ERROR HY000: Invalid INTERVAL range combination
CREATE PROCEDURE sp_invalid12(IN a INTERVAL YEAR TO SECOND) BEGIN END;
ERROR 42000: Invalid INTERVAL range combination near '\0014' at line 0
ERROR HY000: Invalid INTERVAL range combination
CREATE PROCEDURE sp_invalid13(IN a INTERVAL MONTH TO DAY) BEGIN END;
ERROR 42000: Invalid INTERVAL range combination near '\0014' at line 0
ERROR HY000: Invalid INTERVAL range combination
CREATE PROCEDURE sp_invalid14(IN a INTERVAL SECOND TO HOUR) BEGIN END;
ERROR 42000: Invalid INTERVAL range combination near '\0014' at line 0
ERROR HY000: Invalid INTERVAL range combination
CREATE PROCEDURE sp_invalid15(IN a INTERVAL WEEK TO DAY) BEGIN END;
ERROR 42000: Invalid INTERVAL range combination near '\0014' at line 0
ERROR HY000: Invalid INTERVAL range combination
CREATE PROCEDURE sp_invalid16(IN a INTERVAL YEAR TO SECOND) BEGIN END;
ERROR 42000: Invalid INTERVAL range combination near '\0014' at line 0
ERROR HY000: Invalid INTERVAL range combination
Precision validation – ensuring valid start and end precisions
CREATE PROCEDURE sp_invalid_1(IN a INTERVAL YEAR(5)) BEGIN END;
ERROR 42000: Too big precision specified for 'a'. Maximum is 4

14
mysql-test/main/type_interval.test

@ -323,25 +323,25 @@ CREATE PROCEDURE sp_invalid6(IN a INTERVAL MINUTE TO MICROSECOND) BEGIN END;
--error ER_NOT_SUPPORTED_YET
CREATE PROCEDURE sp_invalid7(IN a INTERVAL SECOND TO MICROSECOND) BEGIN END;
--error ER_PARSE_ERROR
--error ER_INVALID_INTERVAL_RANGE_COMBO
CREATE PROCEDURE sp_invalid8(IN a INTERVAL MICROSECOND TO SECOND) BEGIN END;
--error ER_PARSE_ERROR
--error ER_INVALID_INTERVAL_RANGE_COMBO
CREATE PROCEDURE sp_invalid11(IN a INTERVAL MICROSECOND TO MINUTE) BEGIN END;
--error ER_PARSE_ERROR
--error ER_INVALID_INTERVAL_RANGE_COMBO
CREATE PROCEDURE sp_invalid12(IN a INTERVAL YEAR TO SECOND) BEGIN END;
--error ER_PARSE_ERROR
--error ER_INVALID_INTERVAL_RANGE_COMBO
CREATE PROCEDURE sp_invalid13(IN a INTERVAL MONTH TO DAY) BEGIN END;
--error ER_PARSE_ERROR
--error ER_INVALID_INTERVAL_RANGE_COMBO
CREATE PROCEDURE sp_invalid14(IN a INTERVAL SECOND TO HOUR) BEGIN END;
--error ER_PARSE_ERROR
--error ER_INVALID_INTERVAL_RANGE_COMBO
CREATE PROCEDURE sp_invalid15(IN a INTERVAL WEEK TO DAY) BEGIN END;
--error ER_PARSE_ERROR
--error ER_INVALID_INTERVAL_RANGE_COMBO
CREATE PROCEDURE sp_invalid16(IN a INTERVAL YEAR TO SECOND) BEGIN END;

2
sql/share/errmsg-utf8.txt

@ -12360,3 +12360,5 @@ ER_WARN_CONFLICTING_COMPOUND_INDEX_HINT_FOR_TABLE
eng "Hint %s is ignored as conflicting/duplicated (an index hint of the same type or opposite kind has already been specified for this table)"
ER_WARN_CONFLICTING_COMPOUND_INDEX_HINT_FOR_KEY
eng "Hint %s is ignored as conflicting/duplicated (an index hint of the same type or opposite kind has already been specified for the key)"
ER_INVALID_INTERVAL_RANGE_COMBO
eng "Invalid INTERVAL range combination"

3
sql/sql_yacc.yy

@ -12814,8 +12814,7 @@ interval_qualifier:
YYERROR;
case INTERVAL_LAST:
my_error(ER_PARSE_ERROR, MYF(0),
interval_error_message($$.type));
my_error(ER_INVALID_INTERVAL_RANGE_COMBO, MYF(0));
YYERROR;
default:

Loading…
Cancel
Save