From 1b3e363de0612544fe57a3ac8f35b24eb874abcc Mon Sep 17 00:00:00 2001 From: yb0 Date: Mon, 28 Feb 2022 20:15:19 +0800 Subject: [PATCH] fix parser bug abort uint64 --- src/sql/parser/sql_parser_mysql_mode.y | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/sql/parser/sql_parser_mysql_mode.y b/src/sql/parser/sql_parser_mysql_mode.y index 87a41007cd..b89bfab620 100644 --- a/src/sql/parser/sql_parser_mysql_mode.y +++ b/src/sql/parser/sql_parser_mysql_mode.y @@ -4813,6 +4813,15 @@ string_length_i: } else { $$[0] = val; } + } else if (T_UINT64 == $2->type_) { + uint64_t value = $2->value_; + if (value > UINT32_MAX) { + $$[0] = OUT_OF_STR_LEN;; + } else if (value > INT32_MAX) { + $$[0] = DEFAULT_STR_LENGTH; + } else { + $$[0] = $2->value_; + } } else if ($2->value_ < 0) { yyerror(&@2, result, "length cannot < 0\n"); YYABORT_UNEXPECTED;