mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-07 13:52:59 +00:00
fix: empty statements hang (#6480)
* fix: empty statements hang Signed-off-by: Dennis Zhuang <killme2008@gmail.com> * tests: add cases Signed-off-by: Dennis Zhuang <killme2008@gmail.com> --------- Signed-off-by: Dennis Zhuang <killme2008@gmail.com> Signed-off-by: evenyag <realevenyag@gmail.com>
This commit is contained in:
@@ -380,6 +380,13 @@ impl SqlQueryHandler for Instance {
|
||||
.and_then(|stmts| query_interceptor.post_parsing(stmts, query_ctx.clone()))
|
||||
{
|
||||
Ok(stmts) => {
|
||||
if stmts.is_empty() {
|
||||
return vec![InvalidSqlSnafu {
|
||||
err_msg: "empty statements",
|
||||
}
|
||||
.fail()];
|
||||
}
|
||||
|
||||
let mut results = Vec::with_capacity(stmts.len());
|
||||
for stmt in stmts {
|
||||
if let Err(e) = checker
|
||||
|
||||
@@ -152,6 +152,16 @@ pub async fn test_mysql_stmts(store_type: StorageType) {
|
||||
|
||||
conn.execute("SET TRANSACTION READ ONLY").await.unwrap();
|
||||
|
||||
// empty statements
|
||||
let err = conn.execute(" ------- ;").await.unwrap_err();
|
||||
assert!(err.to_string().contains("empty statements"));
|
||||
let err = conn.execute("----------\n;").await.unwrap_err();
|
||||
assert!(err.to_string().contains("empty statements"));
|
||||
let err = conn.execute(" ;").await.unwrap_err();
|
||||
assert!(err.to_string().contains("empty statements"));
|
||||
let err = conn.execute(" \n ;").await.unwrap_err();
|
||||
assert!(err.to_string().contains("empty statements"));
|
||||
|
||||
let _ = fe_mysql_server.shutdown().await;
|
||||
guard.remove_all().await;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user