diff --git a/src/common/error/src/status_code.rs b/src/common/error/src/status_code.rs index fbd8b52a95..3b39547d72 100644 --- a/src/common/error/src/status_code.rs +++ b/src/common/error/src/status_code.rs @@ -119,6 +119,11 @@ pub enum StatusCode { FlowAlreadyExists = 8000, FlowNotFound = 8001, // ====== End of flow related status code ===== + + // ====== Begin of trigger related status code ===== + TriggerAlreadyExists = 9000, + TriggerNotFound = 9001, + // ====== End of trigger related status code ===== } impl StatusCode { @@ -155,6 +160,8 @@ impl StatusCode { | StatusCode::RegionNotFound | StatusCode::FlowAlreadyExists | StatusCode::FlowNotFound + | StatusCode::TriggerAlreadyExists + | StatusCode::TriggerNotFound | StatusCode::RegionReadonly | StatusCode::TableColumnNotFound | StatusCode::TableColumnExists @@ -198,6 +205,8 @@ impl StatusCode { | StatusCode::PlanQuery | StatusCode::FlowAlreadyExists | StatusCode::FlowNotFound + | StatusCode::TriggerAlreadyExists + | StatusCode::TriggerNotFound | StatusCode::RegionNotReady | StatusCode::RegionBusy | StatusCode::RegionReadonly @@ -281,12 +290,14 @@ pub fn status_to_tonic_code(status_code: StatusCode) -> Code { | StatusCode::TableColumnExists | StatusCode::RegionAlreadyExists | StatusCode::DatabaseAlreadyExists + | StatusCode::TriggerAlreadyExists | StatusCode::FlowAlreadyExists => Code::AlreadyExists, StatusCode::TableNotFound | StatusCode::RegionNotFound | StatusCode::TableColumnNotFound | StatusCode::DatabaseNotFound | StatusCode::UserNotFound + | StatusCode::TriggerNotFound | StatusCode::FlowNotFound => Code::NotFound, StatusCode::TableUnavailable | StatusCode::StorageUnavailable diff --git a/src/servers/src/error.rs b/src/servers/src/error.rs index a756156d0b..0472263d28 100644 --- a/src/servers/src/error.rs +++ b/src/servers/src/error.rs @@ -807,6 +807,8 @@ pub fn status_code_to_http_status(status_code: &StatusCode) -> HttpStatusCode { | StatusCode::TableColumnNotFound | StatusCode::PlanQuery | StatusCode::DatabaseAlreadyExists + | StatusCode::TriggerAlreadyExists + | StatusCode::TriggerNotFound | StatusCode::FlowNotFound | StatusCode::FlowAlreadyExists => HttpStatusCode::BAD_REQUEST, diff --git a/src/servers/src/mysql/writer.rs b/src/servers/src/mysql/writer.rs index ef62ef70cf..701f26f8bc 100644 --- a/src/servers/src/mysql/writer.rs +++ b/src/servers/src/mysql/writer.rs @@ -369,5 +369,7 @@ fn mysql_error_kind(status_code: &StatusCode) -> ErrorKind { StatusCode::RateLimited => ErrorKind::ER_TOO_MANY_CONCURRENT_TRXS, StatusCode::FlowAlreadyExists => ErrorKind::ER_TABLE_EXISTS_ERROR, StatusCode::FlowNotFound => ErrorKind::ER_NO_SUCH_TABLE, + StatusCode::TriggerAlreadyExists => ErrorKind::ER_TABLE_EXISTS_ERROR, + StatusCode::TriggerNotFound => ErrorKind::ER_NO_SUCH_TABLE, } } diff --git a/src/servers/src/postgres/types/error.rs b/src/servers/src/postgres/types/error.rs index e555fe6e7c..143f02342a 100644 --- a/src/servers/src/postgres/types/error.rs +++ b/src/servers/src/postgres/types/error.rs @@ -389,11 +389,13 @@ impl From for PgErrorCode { // ====== End of SQL & query related status code =========== // ====== Begin of catalog & flow related status code ===== - StatusCode::TableNotFound | StatusCode::FlowNotFound | StatusCode::RegionNotFound => { - PgErrorCode::Ec42P01 - } + StatusCode::TableNotFound + | StatusCode::FlowNotFound + | StatusCode::RegionNotFound + | StatusCode::TriggerNotFound => PgErrorCode::Ec42P01, StatusCode::TableAlreadyExists | StatusCode::FlowAlreadyExists + | StatusCode::TriggerAlreadyExists | StatusCode::RegionAlreadyExists => PgErrorCode::Ec42P07, StatusCode::TableColumnNotFound => PgErrorCode::Ec42703,