You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Analyzing fuzz-bugs manually is boring and ineffective, we need some tools to find the minimally reproducible SQL automatically.
For example, we find the following tow queries behave differently in TiDB:
--OriginSELECTtmp1.id_3AS col_1,
tmp1.col_int_3AS col_2,
tmp1.col_float_3AS col_3,
tmp2.id_0AS col_4,
tmp2.col_int_0AS col_5,
tmp3.id_2AS col_6,
tmp3.col_varchar_2AS col_7,
tmp4.id_1AS col_8,
tmp4.col_float_1AS col_9
FROM
(
(
table_int_float AS tmp1
RIGHT JOIN table_int AS tmp2 ON !("N"<=tmp1.id_3)
)
JOIN table_varchar AS tmp3 ON !(
""AND1
)
)
RIGHT JOIN table_float AS tmp4 ON !(tmp1.col_float_3 IS NULL)
WHERE
(8.835640563878916e-01!="Keu+~E") IS NOT NULL;
--TLP TransformedSELECTtmp1.id_3AS col_1,
tmp1.col_int_3AS col_2,
tmp1.col_float_3AS col_3,
tmp2.id_0AS col_4,
tmp2.col_int_0AS col_5,
tmp3.id_2AS col_6,
tmp3.col_varchar_2AS col_7,
tmp4.id_1AS col_8,
tmp4.col_float_1AS col_9
FROM
(
(
table_int_float AS tmp1
RIGHT JOIN table_int AS tmp2 ON !("N"<=tmp1.id_3)
)
JOIN table_varchar AS tmp3 ON !(
""AND1
)
)
RIGHT JOIN table_float AS tmp4 ON !(tmp1.col_float_3 IS NULL)
WHERE
(8.835640563878916e-01!="Keu+~E") IS NOT NULLAND (
!(
(NULLIF("<'T", NULL))
XOR (
CASE
WHEN "2024-01-31 01:40:35" THEN tmp3.col_varchar_2
END
)
)
) IS TRUE
UNION
ALL
SELECTtmp1.id_3AS col_1,
tmp1.col_int_3AS col_2,
tmp1.col_float_3AS col_3,
tmp2.id_0AS col_4,
tmp2.col_int_0AS col_5,
tmp3.id_2AS col_6,
tmp3.col_varchar_2AS col_7,
tmp4.id_1AS col_8,
tmp4.col_float_1AS col_9
FROM
(
(
table_int_float AS tmp1
RIGHT JOIN table_int AS tmp2 ON !("N"<=tmp1.id_3)
)
JOIN table_varchar AS tmp3 ON !(
""AND1
)
)
RIGHT JOIN table_float AS tmp4 ON !(tmp1.col_float_3 IS NULL)
WHERE
(8.835640563878916e-01!="Keu+~E") IS NOT NULLAND (
!(
(NULLIF("<'T", NULL))
XOR (
CASE
WHEN "2024-01-31 01:40:35" THEN tmp3.col_varchar_2
END
)
)
) IS FALSE
UNION
ALL
SELECTtmp1.id_3AS col_1,
tmp1.col_int_3AS col_2,
tmp1.col_float_3AS col_3,
tmp2.id_0AS col_4,
tmp2.col_int_0AS col_5,
tmp3.id_2AS col_6,
tmp3.col_varchar_2AS col_7,
tmp4.id_1AS col_8,
tmp4.col_float_1AS col_9
FROM
(
(
table_int_float AS tmp1
RIGHT JOIN table_int AS tmp2 ON !("N"<=tmp1.id_3)
)
JOIN table_varchar AS tmp3 ON !(
""AND1
)
)
RIGHT JOIN table_float AS tmp4 ON !(tmp1.col_float_3 IS NULL)
WHERE
(8.835640563878916e-01!="Keu+~E") IS NOT NULLAND (
!(
(NULLIF("<'T", NULL))
XOR (
CASE
WHEN "2024-01-31 01:40:35" THEN tmp3.col_varchar_2
END
)
)
) IS NULL;
How to find the minimally reproducible query?
The text was updated successfully, but these errors were encountered:
Analyzing fuzz-bugs manually is boring and ineffective, we need some tools to find the minimally reproducible SQL automatically.
For example, we find the following tow queries behave differently in TiDB:
How to find the minimally reproducible query?
The text was updated successfully, but these errors were encountered: