@@ -171,9 +171,9 @@ func (s *testInferTypeSuite) createTestCase4Constants() []typeInferTestCase {
171171 {"b'0001'" , mysql .TypeVarString , charset .CharsetBin , mysql .BinaryFlag , 1 , 0 },
172172 {"b'000100001'" , mysql .TypeVarString , charset .CharsetBin , mysql .BinaryFlag , 2 , 0 },
173173 {"b'0000000000010000'" , mysql .TypeVarString , charset .CharsetBin , mysql .BinaryFlag , 2 , 0 },
174- {"x'10'" , mysql .TypeVarString , charset .CharsetBin , mysql .BinaryFlag | mysql .UnsignedFlag , 1 , 0 },
175- {"x'ff10'" , mysql .TypeVarString , charset .CharsetBin , mysql .BinaryFlag | mysql .UnsignedFlag , 2 , 0 },
176- {"x'0000000000000000ff10'" , mysql .TypeVarString , charset .CharsetBin , mysql .BinaryFlag | mysql .UnsignedFlag , 10 , 0 },
174+ {"x'10'" , mysql .TypeVarString , charset .CharsetBin , mysql .BinaryFlag | mysql .UnsignedFlag , 3 , 0 },
175+ {"x'ff10'" , mysql .TypeVarString , charset .CharsetBin , mysql .BinaryFlag | mysql .UnsignedFlag , 6 , 0 },
176+ {"x'0000000000000000ff10'" , mysql .TypeVarString , charset .CharsetBin , mysql .BinaryFlag | mysql .UnsignedFlag , 30 , 0 },
177177 }
178178}
179179
@@ -693,9 +693,9 @@ func (s *testInferTypeSuite) createTestCase4ArithmeticFuncs() []typeInferTestCas
693693 {"c_int_d + c_char" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
694694 {"c_int_d + c_time_d" , mysql .TypeLonglong , charset .CharsetBin , mysql .BinaryFlag , mysql .MaxIntWidth , 0 },
695695 {"c_int_d + c_double_d" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
696- {"c_int_d + c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , mysql . MaxDecimalWidth , mysql . MaxDecimalScale },
697- {"c_datetime + c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , mysql . MaxDecimalWidth , mysql . MaxDecimalScale },
698- {"c_bigint_d + c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , mysql . MaxDecimalWidth , mysql . MaxDecimalScale },
696+ {"c_int_d + c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , 17 , 3 },
697+ {"c_datetime + c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , 26 , 3 },
698+ {"c_bigint_d + c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , 26 , 3 },
699699 {"c_double_d + c_decimal" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
700700 {"c_double_d + c_char" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
701701 {"c_double_d + c_enum" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
@@ -705,9 +705,9 @@ func (s *testInferTypeSuite) createTestCase4ArithmeticFuncs() []typeInferTestCas
705705 {"c_int_d - c_char" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
706706 {"c_int_d - c_time_d" , mysql .TypeLonglong , charset .CharsetBin , mysql .BinaryFlag , mysql .MaxIntWidth , 0 },
707707 {"c_int_d - c_double_d" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
708- {"c_int_d - c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , mysql . MaxDecimalWidth , mysql . MaxDecimalScale },
709- {"c_datetime - c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , mysql . MaxDecimalWidth , mysql . MaxDecimalScale },
710- {"c_bigint_d - c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , mysql . MaxDecimalWidth , mysql . MaxDecimalScale },
708+ {"c_int_d - c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , 17 , 3 },
709+ {"c_datetime - c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , 26 , 3 },
710+ {"c_bigint_d - c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , 26 , 3 },
711711 {"c_double_d - c_decimal" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
712712 {"c_double_d - c_char" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
713713 {"c_double_d - c_enum" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
@@ -717,9 +717,9 @@ func (s *testInferTypeSuite) createTestCase4ArithmeticFuncs() []typeInferTestCas
717717 {"c_int_d * c_char" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
718718 {"c_int_d * c_time_d" , mysql .TypeLonglong , charset .CharsetBin , mysql .BinaryFlag , mysql .MaxIntWidth , 0 },
719719 {"c_int_d * c_double_d" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
720- {"c_int_d * c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , mysql . MaxDecimalWidth , mysql . MaxDecimalScale },
721- {"c_datetime * c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , mysql . MaxDecimalWidth , mysql . MaxDecimalScale },
722- {"c_bigint_d * c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , mysql . MaxDecimalWidth , mysql . MaxDecimalScale },
720+ {"c_int_d * c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , 20 , 3 },
721+ {"c_datetime * c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , 31 , 5 },
722+ {"c_bigint_d * c_decimal" , mysql .TypeNewDecimal , charset .CharsetBin , mysql .BinaryFlag , 29 , 3 },
723723 {"c_double_d * c_decimal" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
724724 {"c_double_d * c_char" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
725725 {"c_double_d * c_enum" , mysql .TypeDouble , charset .CharsetBin , mysql .BinaryFlag , types .UnspecifiedLength , types .UnspecifiedLength },
@@ -1267,31 +1267,31 @@ func (s *testInferTypeSuite) createTestCase4TimeFuncs() []typeInferTestCase {
12671267 {"subtime(c_date, c_timestamp)" , mysql .TypeString , charset .CharsetUTF8MB4 , 0 , 26 , types .UnspecifiedLength },
12681268 {"subtime(c_date, c_time)" , mysql .TypeString , charset .CharsetUTF8MB4 , 0 , 26 , types .UnspecifiedLength },
12691269
1270- {"timestamp(c_int_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 19 , 0 },
1271- {"timestamp(c_float_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1272- {"timestamp(c_double_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1273- {"timestamp(c_decimal)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 23 , 3 },
1274- {"timestamp(c_udecimal)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 23 , 3 },
1275- {"timestamp(c_decimal_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 19 , 0 },
1276- {"timestamp(c_udecimal_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 19 , 0 },
1277- {"timestamp(c_datetime)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 22 , 2 },
1278- {"timestamp(c_datetime_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 19 , 0 },
1279- {"timestamp(c_timestamp)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 24 , 4 },
1280- {"timestamp(c_time)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 23 , 3 },
1281- {"timestamp(c_time_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 19 , 0 },
1282- {"timestamp(c_bchar)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1283- {"timestamp(c_char)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1284- {"timestamp(c_varchar)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1285- {"timestamp(c_text_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1286- {"timestamp(c_btext_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1287- {"timestamp(c_blob_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1288- {"timestamp(c_set)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1289- {"timestamp(c_enum)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1290-
1291- {"timestamp(c_int_d, c_float_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1292- {"timestamp(c_datetime, c_timestamp)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 24 , 4 },
1293- {"timestamp(c_timestamp, c_char)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 6 },
1294- {"timestamp(c_int_d, c_datetime)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 22 , 2 },
1270+ {"timestamp(c_int_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 19 , types . UnspecifiedLength },
1271+ {"timestamp(c_float_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1272+ {"timestamp(c_double_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1273+ {"timestamp(c_decimal)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 23 , types . UnspecifiedLength },
1274+ {"timestamp(c_udecimal)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 23 , types . UnspecifiedLength },
1275+ {"timestamp(c_decimal_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 19 , types . UnspecifiedLength },
1276+ {"timestamp(c_udecimal_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 19 , types . UnspecifiedLength },
1277+ {"timestamp(c_datetime)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 22 , types . UnspecifiedLength },
1278+ {"timestamp(c_datetime_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 19 , types . UnspecifiedLength },
1279+ {"timestamp(c_timestamp)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 24 , types . UnspecifiedLength },
1280+ {"timestamp(c_time)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 23 , types . UnspecifiedLength },
1281+ {"timestamp(c_time_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 19 , types . UnspecifiedLength },
1282+ {"timestamp(c_bchar)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1283+ {"timestamp(c_char)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1284+ {"timestamp(c_varchar)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1285+ {"timestamp(c_text_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1286+ {"timestamp(c_btext_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1287+ {"timestamp(c_blob_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1288+ {"timestamp(c_set)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1289+ {"timestamp(c_enum)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1290+
1291+ {"timestamp(c_int_d, c_float_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1292+ {"timestamp(c_datetime, c_timestamp)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 24 , types . UnspecifiedLength },
1293+ {"timestamp(c_timestamp, c_char)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , types . UnspecifiedLength },
1294+ {"timestamp(c_int_d, c_datetime)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 22 , types . UnspecifiedLength },
12951295
12961296 {"addtime(c_int_d, c_time_d)" , mysql .TypeString , charset .CharsetUTF8MB4 , 0 , 26 , types .UnspecifiedLength },
12971297 {"addtime(c_datetime_d, c_time_d)" , mysql .TypeDatetime , charset .CharsetBin , mysql .BinaryFlag , 26 , 0 },
0 commit comments