build(deps): bump snafu to 0.8 (#3911)

* change Cargo.toml

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

* global replace

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

* handle alias in script engine

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

* fix clippy

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

---------

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>
This commit is contained in:
Ruihang Xia
2024-05-10 21:36:25 +08:00
committed by GitHub
parent aec5cca2c7
commit 115c74791d
51 changed files with 2211 additions and 348 deletions

127
Cargo.lock generated
View File

@@ -225,7 +225,7 @@ dependencies = [
"greptime-proto",
"paste",
"prost 0.12.4",
"snafu",
"snafu 0.8.2",
"tonic-build 0.9.2",
]
@@ -715,7 +715,7 @@ dependencies = [
"digest",
"notify",
"sha1",
"snafu",
"snafu 0.8.2",
"sql",
"tokio",
]
@@ -1279,7 +1279,7 @@ dependencies = [
"prometheus",
"serde_json",
"session",
"snafu",
"snafu 0.8.2",
"sql",
"store-api",
"table",
@@ -1555,7 +1555,7 @@ dependencies = [
"prost 0.12.4",
"rand",
"serde_json",
"snafu",
"snafu 0.8.2",
"substrait 0.17.1",
"substrait 0.7.2",
"tokio",
@@ -1638,7 +1638,7 @@ dependencies = [
"serde_json",
"servers",
"session",
"snafu",
"snafu 0.8.2",
"store-api",
"substrait 0.7.2",
"table",
@@ -1693,7 +1693,7 @@ dependencies = [
"common-macro",
"paste",
"serde",
"snafu",
"snafu 0.8.2",
"toml 0.8.12",
"zeroize",
]
@@ -1705,7 +1705,7 @@ dependencies = [
"chrono",
"common-error",
"common-macro",
"snafu",
"snafu 0.8.2",
"tokio",
]
@@ -1744,7 +1744,7 @@ dependencies = [
"paste",
"regex",
"serde",
"snafu",
"snafu 0.8.2",
"strum 0.25.0",
"tokio",
"tokio-util",
@@ -1761,14 +1761,14 @@ dependencies = [
"rust_decimal",
"serde",
"serde_json",
"snafu",
"snafu 0.8.2",
]
[[package]]
name = "common-error"
version = "0.7.2"
dependencies = [
"snafu",
"snafu 0.8.2",
"strum 0.25.0",
]
@@ -1783,7 +1783,7 @@ dependencies = [
"common-macro",
"common-query",
"session",
"snafu",
"snafu 0.8.2",
"sql",
]
@@ -1814,7 +1814,7 @@ dependencies = [
"serde",
"serde_json",
"session",
"snafu",
"snafu 0.8.2",
"statrs",
"store-api",
"table",
@@ -1857,7 +1857,7 @@ dependencies = [
"lazy_static",
"prost 0.12.4",
"rand",
"snafu",
"snafu 0.8.2",
"tokio",
"tonic 0.11.0",
"tower",
@@ -1876,7 +1876,7 @@ dependencies = [
"common-time",
"datatypes",
"paste",
"snafu",
"snafu 0.8.2",
"table",
]
@@ -1889,7 +1889,7 @@ dependencies = [
"datatypes",
"proc-macro2",
"quote",
"snafu",
"snafu 0.8.2",
"static_assertions",
"syn 1.0.109",
"syn 2.0.61",
@@ -1901,7 +1901,7 @@ version = "0.7.2"
dependencies = [
"common-error",
"common-macro",
"snafu",
"snafu 0.8.2",
"tempfile",
"tikv-jemalloc-ctl",
"tikv-jemalloc-sys",
@@ -1951,7 +1951,7 @@ dependencies = [
"serde_json",
"serde_with",
"session",
"snafu",
"snafu 0.8.2",
"store-api",
"strum 0.25.0",
"table",
@@ -1985,7 +1985,7 @@ dependencies = [
"serde",
"serde_json",
"smallvec",
"snafu",
"snafu 0.8.2",
"tokio",
"uuid",
]
@@ -2014,7 +2014,7 @@ dependencies = [
"datafusion-expr",
"datatypes",
"serde",
"snafu",
"snafu 0.8.2",
"sqlparser 0.44.0 (git+https://github.com/GreptimeTeam/sqlparser-rs.git?rev=c919990bf62ad38d2b0c0a3bc90b26ad919d51b0)",
"sqlparser_derive 0.1.1",
"statrs",
@@ -2036,7 +2036,7 @@ dependencies = [
"pin-project",
"serde",
"serde_json",
"snafu",
"snafu 0.8.2",
"tokio",
]
@@ -2052,7 +2052,7 @@ dependencies = [
"once_cell",
"paste",
"prometheus",
"snafu",
"snafu 0.8.2",
"tokio",
"tokio-metrics",
"tokio-metrics-collector",
@@ -2112,7 +2112,7 @@ dependencies = [
"rand",
"serde",
"serde_json",
"snafu",
"snafu 0.8.2",
]
[[package]]
@@ -2138,7 +2138,7 @@ dependencies = [
"serde",
"serde_json",
"serde_with",
"snafu",
"snafu 0.8.2",
"tokio",
"toml 0.8.12",
]
@@ -2898,7 +2898,7 @@ dependencies = [
"serde",
"servers",
"session",
"snafu",
"snafu 0.8.2",
"store-api",
"substrait 0.7.2",
"table",
@@ -2928,7 +2928,7 @@ dependencies = [
"paste",
"serde",
"serde_json",
"snafu",
"snafu 0.8.2",
]
[[package]]
@@ -3430,7 +3430,7 @@ dependencies = [
"object-store",
"serde",
"serde_json",
"snafu",
"snafu 0.8.2",
"store-api",
"table",
"tokio",
@@ -3535,7 +3535,7 @@ dependencies = [
"servers",
"session",
"smallvec",
"snafu",
"snafu 0.8.2",
"strum 0.25.0",
"substrait 0.7.2",
"table",
@@ -3618,7 +3618,7 @@ dependencies = [
"serde",
"servers",
"session",
"snafu",
"snafu 0.8.2",
"sql",
"sqlparser 0.44.0 (git+https://github.com/GreptimeTeam/sqlparser-rs.git?rev=c919990bf62ad38d2b0c0a3bc90b26ad919d51b0)",
"store-api",
@@ -4411,7 +4411,7 @@ dependencies = [
"rand",
"regex",
"regex-automata 0.4.6",
"snafu",
"snafu 0.8.2",
"tempfile",
"tokio",
"tokio-util",
@@ -4484,7 +4484,7 @@ dependencies = [
"bytes",
"nom",
"smallvec",
"snafu",
"snafu 0.7.5",
]
[[package]]
@@ -4986,7 +4986,7 @@ dependencies = [
"rskafka",
"serde",
"serde_json",
"snafu",
"snafu 0.8.2",
"store-api",
"tokio",
"uuid",
@@ -5260,7 +5260,7 @@ dependencies = [
"meta-srv",
"rand",
"serde",
"snafu",
"snafu 0.8.2",
"tokio",
"tokio-stream",
"tonic 0.11.0",
@@ -5312,7 +5312,7 @@ dependencies = [
"serde_json",
"servers",
"session",
"snafu",
"snafu 0.8.2",
"store-api",
"table",
"tokio",
@@ -5368,7 +5368,7 @@ dependencies = [
"object-store",
"prometheus",
"serde_json",
"snafu",
"snafu 0.8.2",
"store-api",
"tokio",
]
@@ -5468,7 +5468,7 @@ dependencies = [
"serde_json",
"serde_with",
"smallvec",
"snafu",
"snafu 0.8.2",
"store-api",
"strum 0.25.0",
"table",
@@ -6069,7 +6069,7 @@ dependencies = [
"itertools 0.12.1",
"parking_lot 0.12.2",
"percent-encoding",
"snafu",
"snafu 0.7.5",
"tokio",
"tracing",
"url",
@@ -6320,7 +6320,7 @@ dependencies = [
"serde_json",
"servers",
"session",
"snafu",
"snafu 0.8.2",
"sql",
"sqlparser 0.44.0 (git+https://github.com/GreptimeTeam/sqlparser-rs.git?rev=c919990bf62ad38d2b0c0a3bc90b26ad919d51b0)",
"store-api",
@@ -6350,7 +6350,7 @@ dependencies = [
"lazy_static",
"paste",
"prost 0.11.9",
"snafu",
"snafu 0.7.5",
"tokio",
"zigzag",
"zstd 0.12.4",
@@ -6574,7 +6574,7 @@ dependencies = [
"itertools 0.10.5",
"serde",
"serde_json",
"snafu",
"snafu 0.8.2",
"sql",
"sqlparser 0.44.0 (git+https://github.com/GreptimeTeam/sqlparser-rs.git?rev=c919990bf62ad38d2b0c0a3bc90b26ad919d51b0)",
"store-api",
@@ -6913,7 +6913,7 @@ dependencies = [
"datanode",
"frontend",
"meta-srv",
"snafu",
"snafu 0.8.2",
]
[[package]]
@@ -7200,7 +7200,7 @@ dependencies = [
"prost 0.12.4",
"query",
"session",
"snafu",
"snafu 0.8.2",
"table",
"tokio",
]
@@ -7398,7 +7398,7 @@ dependencies = [
"pin-project",
"serde",
"serde_json",
"snafu",
"snafu 0.8.2",
"tokio",
"tokio-util",
]
@@ -7549,7 +7549,7 @@ dependencies = [
"rand",
"regex",
"session",
"snafu",
"snafu 0.8.2",
"sql",
"statrs",
"stats-cli",
@@ -8909,7 +8909,7 @@ dependencies = [
"serde",
"servers",
"session",
"snafu",
"snafu 0.8.2",
"sql",
"table",
"tokio",
@@ -9212,7 +9212,7 @@ dependencies = [
"serde",
"serde_json",
"session",
"snafu",
"snafu 0.8.2",
"snap",
"sql",
"strum 0.25.0",
@@ -9247,7 +9247,7 @@ dependencies = [
"common-telemetry",
"common-time",
"derive_builder 0.12.0",
"snafu",
"snafu 0.8.2",
"sql",
]
@@ -9406,7 +9406,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6"
dependencies = [
"doc-comment",
"snafu-derive",
"snafu-derive 0.7.5",
]
[[package]]
name = "snafu"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75976f4748ab44f6e5332102be424e7c2dc18daeaf7e725f2040c3ebb133512e"
dependencies = [
"snafu-derive 0.8.2",
]
[[package]]
@@ -9421,6 +9430,18 @@ dependencies = [
"syn 1.0.109",
]
[[package]]
name = "snafu-derive"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4b19911debfb8c2fb1107bc6cb2d61868aaf53a988449213959bb1b5b1ed95f"
dependencies = [
"heck 0.4.1",
"proc-macro2",
"quote",
"syn 2.0.61",
]
[[package]]
name = "snap"
version = "1.1.1"
@@ -9515,7 +9536,7 @@ dependencies = [
"itertools 0.10.5",
"lazy_static",
"regex",
"snafu",
"snafu 0.8.2",
"sqlparser 0.44.0 (git+https://github.com/GreptimeTeam/sqlparser-rs.git?rev=c919990bf62ad38d2b0c0a3bc90b26ad919d51b0)",
"sqlparser_derive 0.1.1",
"table",
@@ -9784,7 +9805,7 @@ dependencies = [
"futures",
"serde",
"serde_json",
"snafu",
"snafu 0.8.2",
"strum 0.25.0",
"tokio",
]
@@ -9950,7 +9971,7 @@ dependencies = [
"promql",
"prost 0.12.4",
"session",
"snafu",
"snafu 0.8.2",
"substrait 0.17.1",
"tokio",
]
@@ -10151,7 +10172,7 @@ dependencies = [
"paste",
"serde",
"serde_json",
"snafu",
"snafu 0.8.2",
"store-api",
"tokio",
"tokio-util",
@@ -10255,7 +10276,7 @@ dependencies = [
"reqwest",
"serde",
"serde_json",
"snafu",
"snafu 0.8.2",
"sql",
"sqlparser 0.44.0 (git+https://github.com/GreptimeTeam/sqlparser-rs.git?rev=c919990bf62ad38d2b0c0a3bc90b26ad919d51b0)",
"sqlx",
@@ -10317,7 +10338,7 @@ dependencies = [
"serde_json",
"servers",
"session",
"snafu",
"snafu 0.8.2",
"sql",
"sqlx",
"store-api",

View File

@@ -154,7 +154,7 @@ serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0", features = ["float_roundtrip"] }
serde_with = "3"
smallvec = { version = "1", features = ["serde"] }
snafu = "0.7"
snafu = "0.8"
sysinfo = "0.30"
# on branch v0.44.x
sqlparser = { git = "https://github.com/GreptimeTeam/sqlparser-rs.git", rev = "c919990bf62ad38d2b0c0a3bc90b26ad919d51b0", features = [

View File

@@ -30,6 +30,7 @@ pub enum Error {
#[snafu(display("Unknown proto column datatype: {}", datatype))]
UnknownColumnDataType {
datatype: i32,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: prost::DecodeError,
@@ -38,12 +39,14 @@ pub enum Error {
#[snafu(display("Failed to create column datatype from {:?}", from))]
IntoColumnDataType {
from: ConcreteDataType,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert column default constraint, column: {}", column))]
ConvertColumnDefaultConstraint {
column: String,
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
@@ -51,6 +54,7 @@ pub enum Error {
#[snafu(display("Invalid column default constraint, column: {}", column))]
InvalidColumnDefaultConstraint {
column: String,
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},

View File

@@ -34,11 +34,13 @@ pub enum Error {
Io {
#[snafu(source)]
error: std::io::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Auth failed"))]
AuthBackend {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -72,7 +74,10 @@ pub enum Error {
},
#[snafu(display("User is not authorized to perform this action"))]
PermissionDenied { location: Location },
PermissionDenied {
#[snafu(implicit)]
location: Location,
},
}
impl ErrorExt for Error {

View File

@@ -30,12 +30,14 @@ use tokio::task::JoinError;
pub enum Error {
#[snafu(display("Failed to list catalogs"))]
ListCatalogs {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to list {}'s schemas", catalog))]
ListSchemas {
#[snafu(implicit)]
location: Location,
catalog: String,
source: BoxedError,
@@ -43,6 +45,7 @@ pub enum Error {
#[snafu(display("Failed to list {}.{}'s tables", catalog, schema))]
ListTables {
#[snafu(implicit)]
location: Location,
catalog: String,
schema: String,
@@ -51,23 +54,27 @@ pub enum Error {
#[snafu(display("Failed to list nodes in cluster: {source}"))]
ListNodes {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to re-compile script due to internal error"))]
CompileScriptInternal {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to open system catalog table"))]
OpenSystemCatalog {
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
#[snafu(display("Failed to create system catalog table"))]
CreateSystemCatalog {
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
@@ -75,12 +82,17 @@ pub enum Error {
#[snafu(display("Failed to create table, table info: {}", table_info))]
CreateTable {
table_info: String,
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
#[snafu(display("System catalog is not valid: {}", msg))]
SystemCatalog { msg: String, location: Location },
SystemCatalog {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"System catalog table type mismatch, expected: binary, found: {:?}",
@@ -88,34 +100,42 @@ pub enum Error {
))]
SystemCatalogTypeMismatch {
data_type: ConcreteDataType,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid system catalog entry type: {:?}", entry_type))]
InvalidEntryType {
entry_type: Option<u8>,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid system catalog key: {:?}", key))]
InvalidKey {
key: Option<String>,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Catalog value is not present"))]
EmptyValue { location: Location },
EmptyValue {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to deserialize value"))]
ValueDeserialize {
#[snafu(source)]
error: serde_json::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table engine not found: {}", engine_name))]
TableEngineNotFound {
engine_name: String,
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
@@ -123,6 +143,7 @@ pub enum Error {
#[snafu(display("Cannot find catalog by name: {}", catalog_name))]
CatalogNotFound {
catalog_name: String,
#[snafu(implicit)]
location: Location,
},
@@ -130,30 +151,49 @@ pub enum Error {
SchemaNotFound {
catalog: String,
schema: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table `{}` already exists", table))]
TableExists { table: String, location: Location },
TableExists {
table: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table not found: {}", table))]
TableNotExist { table: String, location: Location },
TableNotExist {
table: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Schema {} already exists", schema))]
SchemaExists { schema: String, location: Location },
SchemaExists {
schema: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Operation {} not implemented yet", operation))]
Unimplemented {
operation: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Operation {} not supported", op))]
NotSupported { op: String, location: Location },
NotSupported {
op: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to open table {table_id}"))]
OpenTable {
table_id: TableId,
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
@@ -167,6 +207,7 @@ pub enum Error {
#[snafu(display("Table not found while opening table, table info: {}", table_info))]
TableNotFound {
table_info: String,
#[snafu(implicit)]
location: Location,
},
@@ -178,57 +219,69 @@ pub enum Error {
#[snafu(display("Failed to read system catalog table records"))]
ReadSystemCatalog {
#[snafu(implicit)]
location: Location,
source: common_recordbatch::error::Error,
},
#[snafu(display("Failed to create recordbatch"))]
CreateRecordBatch {
#[snafu(implicit)]
location: Location,
source: common_recordbatch::error::Error,
},
#[snafu(display("Failed to insert table creation record to system catalog"))]
InsertCatalogRecord {
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
#[snafu(display("Failed to scan system catalog table"))]
SystemCatalogTableScan {
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
#[snafu(display("Internal error"))]
Internal {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to upgrade weak catalog manager reference"))]
UpgradeWeakCatalogManagerRef { location: Location },
UpgradeWeakCatalogManagerRef {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to execute system catalog table scan"))]
SystemCatalogTableScanExec {
#[snafu(implicit)]
location: Location,
source: common_query::error::Error,
},
#[snafu(display("Cannot parse catalog value"))]
InvalidCatalogValue {
#[snafu(implicit)]
location: Location,
source: common_catalog::error::Error,
},
#[snafu(display("Failed to perform metasrv operation"))]
Metasrv {
#[snafu(implicit)]
location: Location,
source: meta_client::error::Error,
},
#[snafu(display("Invalid table info in catalog"))]
InvalidTableInfoInCatalog {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
@@ -240,26 +293,37 @@ pub enum Error {
Datafusion {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table schema mismatch"))]
TableSchemaMismatch {
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
#[snafu(display("A generic error has occurred, msg: {}", msg))]
Generic { msg: String, location: Location },
Generic {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table metadata manager error"))]
TableMetadataManager {
source: common_meta::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Get null from table cache, key: {}", key))]
TableCacheNotGet { key: String, location: Location },
TableCacheNotGet {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to get table cache, err: {}", err_msg))]
GetTableCache { err_msg: String },

View File

@@ -26,7 +26,11 @@ use tonic::{Code, Status};
#[stack_trace_debug]
pub enum Error {
#[snafu(display("Illegal Flight messages, reason: {}", reason))]
IllegalFlightMessages { reason: String, location: Location },
IllegalFlightMessages {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to do Flight get, code: {}", tonic_code))]
FlightGet {
@@ -37,31 +41,43 @@ pub enum Error {
#[snafu(display("Failure occurs during handling request"))]
HandleRequest {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to convert FlightData"))]
ConvertFlightData {
#[snafu(implicit)]
location: Location,
source: common_grpc::Error,
},
#[snafu(display("Column datatype error"))]
ColumnDataType {
#[snafu(implicit)]
location: Location,
source: api::error::Error,
},
#[snafu(display("Illegal GRPC client state: {}", err_msg))]
IllegalGrpcClientState { err_msg: String, location: Location },
IllegalGrpcClientState {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing required field in protobuf, field: {}", field))]
MissingField { field: String, location: Location },
MissingField {
field: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to create gRPC channel, peer address: {}", addr))]
CreateChannel {
addr: String,
#[snafu(implicit)]
location: Location,
source: common_grpc::error::Error,
},
@@ -77,7 +93,11 @@ pub enum Error {
IllegalDatabaseResponse { err_msg: String },
#[snafu(display("Failed to send request with streaming: {}", err_msg))]
ClientStreaming { err_msg: String, location: Location },
ClientStreaming {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
}
pub type Result<T> = std::result::Result<T, Error>;

View File

@@ -565,11 +565,16 @@ mod v1_helper {
#[snafu(visibility(pub))]
pub enum Error {
#[snafu(display("Invalid catalog info: {}", key))]
InvalidCatalog { key: String, location: Location },
InvalidCatalog {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to deserialize catalog entry value: {}", raw))]
DeserializeCatalogEntryValue {
raw: String,
#[snafu(implicit)]
location: Location,
source: serde_json::error::Error,
},

View File

@@ -27,97 +27,120 @@ use snafu::{Location, Snafu};
pub enum Error {
#[snafu(display("Failed to create default catalog and schema"))]
InitMetadata {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to iter stream"))]
IterStream {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to init DDL manager"))]
InitDdlManager {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to init default timezone"))]
InitTimezone {
#[snafu(implicit)]
location: Location,
source: common_time::error::Error,
},
#[snafu(display("Failed to start procedure manager"))]
StartProcedureManager {
#[snafu(implicit)]
location: Location,
source: common_procedure::error::Error,
},
#[snafu(display("Failed to stop procedure manager"))]
StopProcedureManager {
#[snafu(implicit)]
location: Location,
source: common_procedure::error::Error,
},
#[snafu(display("Failed to start wal options allocator"))]
StartWalOptionsAllocator {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to start datanode"))]
StartDatanode {
#[snafu(implicit)]
location: Location,
source: datanode::error::Error,
},
#[snafu(display("Failed to shutdown datanode"))]
ShutdownDatanode {
#[snafu(implicit)]
location: Location,
source: datanode::error::Error,
},
#[snafu(display("Failed to start frontend"))]
StartFrontend {
#[snafu(implicit)]
location: Location,
source: frontend::error::Error,
},
#[snafu(display("Failed to shutdown frontend"))]
ShutdownFrontend {
#[snafu(implicit)]
location: Location,
source: frontend::error::Error,
},
#[snafu(display("Failed to build meta server"))]
BuildMetaServer {
#[snafu(implicit)]
location: Location,
source: meta_srv::error::Error,
},
#[snafu(display("Failed to start meta server"))]
StartMetaServer {
#[snafu(implicit)]
location: Location,
source: meta_srv::error::Error,
},
#[snafu(display("Failed to shutdown meta server"))]
ShutdownMetaServer {
#[snafu(implicit)]
location: Location,
source: meta_srv::error::Error,
},
#[snafu(display("Missing config, msg: {}", msg))]
MissingConfig { msg: String, location: Location },
MissingConfig {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Illegal config: {}", msg))]
IllegalConfig { msg: String, location: Location },
IllegalConfig {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported selector type: {}", selector_type))]
UnsupportedSelectorType {
selector_type: String,
#[snafu(implicit)]
location: Location,
source: meta_srv::error::Error,
},
@@ -129,6 +152,7 @@ pub enum Error {
ReplCreation {
#[snafu(source)]
error: ReadlineError,
#[snafu(implicit)]
location: Location,
},
@@ -136,23 +160,27 @@ pub enum Error {
Readline {
#[snafu(source)]
error: ReadlineError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to collect RecordBatches"))]
CollectRecordBatches {
#[snafu(implicit)]
location: Location,
source: common_recordbatch::error::Error,
},
#[snafu(display("Failed to pretty print Recordbatches"))]
PrettyPrintRecordBatches {
#[snafu(implicit)]
location: Location,
source: common_recordbatch::error::Error,
},
#[snafu(display("Failed to start Meta client"))]
StartMetaClient {
#[snafu(implicit)]
location: Location,
source: meta_client::error::Error,
},
@@ -160,18 +188,21 @@ pub enum Error {
#[snafu(display("Failed to parse SQL: {}", sql))]
ParseSql {
sql: String,
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("Failed to plan statement"))]
PlanStatement {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("Failed to encode logical plan in substrait"))]
SubstraitEncodeLogicalPlan {
#[snafu(implicit)]
location: Location,
source: substrait::error::Error,
},
@@ -180,11 +211,13 @@ pub enum Error {
LoadLayeredConfig {
#[snafu(source)]
error: ConfigError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to start catalog manager"))]
StartCatalogManager {
#[snafu(implicit)]
location: Location,
source: catalog::error::Error,
},
@@ -194,6 +227,7 @@ pub enum Error {
etcd_addr: String,
#[snafu(source)]
error: etcd_client::Error,
#[snafu(implicit)]
location: Location,
},
@@ -201,6 +235,7 @@ pub enum Error {
ConnectServer {
addr: String,
source: client::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -208,6 +243,7 @@ pub enum Error {
SerdeJson {
#[snafu(source)]
error: serde_json::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -216,17 +252,25 @@ pub enum Error {
reason: String,
#[snafu(source)]
error: reqwest::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Expect data from output, but got another thing"))]
NotDataFromOutput { location: Location },
NotDataFromOutput {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Empty result from output"))]
EmptyResult { location: Location },
EmptyResult {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to manipulate file"))]
FileIo {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: std::io::Error,
@@ -234,6 +278,7 @@ pub enum Error {
#[snafu(display("Invalid database name: {}", database))]
InvalidDatabaseName {
#[snafu(implicit)]
location: Location,
database: String,
},
@@ -248,11 +293,13 @@ pub enum Error {
#[snafu(display("Other error"))]
Other {
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build runtime"))]
BuildRuntime {
#[snafu(implicit)]
location: Location,
source: common_runtime::error::Error,
},

View File

@@ -33,16 +33,21 @@ pub enum Error {
Overflow {
src_len: usize,
dst_len: usize,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Buffer underflow"))]
Underflow { location: Location },
Underflow {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("IO operation reach EOF"))]
Eof {
#[snafu(source)]
error: std::io::Error,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -26,6 +26,7 @@ pub enum Error {
#[snafu(display("Invalid full table name: {}", table_name))]
InvalidFullTableName {
table_name: String,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -29,27 +29,38 @@ pub enum Error {
#[snafu(display("Unsupported compression type: {}", compression_type))]
UnsupportedCompressionType {
compression_type: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported backend protocol: {}, url: {}", protocol, url))]
UnsupportedBackendProtocol {
protocol: String,
#[snafu(implicit)]
location: Location,
url: String,
},
#[snafu(display("Unsupported format protocol: {}", format))]
UnsupportedFormat { format: String, location: Location },
UnsupportedFormat {
format: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("empty host: {}", url))]
EmptyHostPath { url: String, location: Location },
EmptyHostPath {
url: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid url: {}", url))]
InvalidUrl {
url: String,
#[snafu(source)]
error: ParseError,
#[snafu(implicit)]
location: Location,
},
@@ -57,11 +68,13 @@ pub enum Error {
BuildBackend {
#[snafu(source)]
error: object_store::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build orc reader"))]
OrcReader {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: orc_rust::error::Error,
@@ -70,6 +83,7 @@ pub enum Error {
#[snafu(display("Failed to read object from path: {}", path))]
ReadObject {
path: String,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: object_store::Error,
@@ -78,6 +92,7 @@ pub enum Error {
#[snafu(display("Failed to write object to path: {}", path))]
WriteObject {
path: String,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: object_store::Error,
@@ -87,11 +102,13 @@ pub enum Error {
AsyncWrite {
#[snafu(source)]
error: std::io::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to write record batch"))]
WriteRecordBatch {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: ArrowError,
@@ -99,6 +116,7 @@ pub enum Error {
#[snafu(display("Failed to encode record batch"))]
EncodeRecordBatch {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: ParquetError,
@@ -106,6 +124,7 @@ pub enum Error {
#[snafu(display("Failed to read record batch"))]
ReadRecordBatch {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: datafusion::error::DataFusionError,
@@ -113,6 +132,7 @@ pub enum Error {
#[snafu(display("Failed to read parquet"))]
ReadParquetSnafu {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: datafusion::parquet::errors::ParquetError,
@@ -120,6 +140,7 @@ pub enum Error {
#[snafu(display("Failed to convert parquet to schema"))]
ParquetToSchema {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: datafusion::parquet::errors::ParquetError,
@@ -127,6 +148,7 @@ pub enum Error {
#[snafu(display("Failed to infer schema from file"))]
InferSchema {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: arrow_schema::ArrowError,
@@ -135,16 +157,22 @@ pub enum Error {
#[snafu(display("Failed to list object in path: {}", path))]
ListObjects {
path: String,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: object_store::Error,
},
#[snafu(display("Invalid connection: {}", msg))]
InvalidConnection { msg: String, location: Location },
InvalidConnection {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to join handle"))]
JoinHandle {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: tokio::task::JoinError,
@@ -154,6 +182,7 @@ pub enum Error {
ParseFormat {
key: &'static str,
value: String,
#[snafu(implicit)]
location: Location,
},
@@ -161,15 +190,20 @@ pub enum Error {
MergeSchema {
#[snafu(source)]
error: arrow_schema::ArrowError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Buffered writer closed"))]
BufferedWriterClosed { location: Location },
BufferedWriterClosed {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to write parquet file, path: {}", path))]
WriteParquet {
path: String,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: parquet::errors::ParquetError,

View File

@@ -25,6 +25,7 @@ pub enum Error {
#[snafu(display("Decimal out of range, decimal value: {}", value))]
BigDecimalOutOfRange {
value: BigDecimal,
#[snafu(implicit)]
location: Location,
},
@@ -43,7 +44,11 @@ pub enum Error {
},
#[snafu(display("Invalid precision or scale, resion: {}", reason))]
InvalidPrecisionOrScale { reason: String, location: Location },
InvalidPrecisionOrScale {
reason: String,
#[snafu(implicit)]
location: Location,
},
}
impl ErrorExt for Error {

View File

@@ -23,6 +23,7 @@ use snafu::{Location, Snafu};
pub enum Error {
#[snafu(display("External error"))]
External {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},

View File

@@ -24,10 +24,15 @@ use snafu::{Location, Snafu};
#[stack_trace_debug]
pub enum Error {
#[snafu(display("Illegal delete request, reason: {reason}"))]
IllegalDeleteRequest { reason: String, location: Location },
IllegalDeleteRequest {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Column datatype error"))]
ColumnDataType {
#[snafu(implicit)]
location: Location,
source: api::error::Error,
},
@@ -40,39 +45,63 @@ pub enum Error {
DuplicatedTimestampColumn {
exists: String,
duplicated: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Duplicated column name in gRPC requests, name: {}", name,))]
DuplicatedColumnName { name: String, location: Location },
DuplicatedColumnName {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing timestamp column, msg: {}", msg))]
MissingTimestampColumn { msg: String, location: Location },
MissingTimestampColumn {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid column proto: {}", err_msg))]
InvalidColumnProto { err_msg: String, location: Location },
InvalidColumnProto {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to create vector"))]
CreateVector {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
#[snafu(display("Missing required field in protobuf, field: {}", field))]
MissingField { field: String, location: Location },
MissingField {
field: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid column proto definition, column: {}", column))]
InvalidColumnDef {
column: String,
#[snafu(implicit)]
location: Location,
source: api::error::Error,
},
#[snafu(display("Unexpected values length, reason: {}", reason))]
UnexpectedValuesLength { reason: String, location: Location },
UnexpectedValuesLength {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unknown location type: {}", location_type))]
UnknownLocationType {
location_type: i32,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -33,6 +33,7 @@ pub enum Error {
InvalidConfigFilePath {
#[snafu(source)]
error: io::Error,
#[snafu(implicit)]
location: Location,
},
@@ -46,6 +47,7 @@ pub enum Error {
column_name: String,
expected: String,
actual: String,
#[snafu(implicit)]
location: Location,
},
@@ -53,30 +55,42 @@ pub enum Error {
CreateChannel {
#[snafu(source)]
error: tonic::transport::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to create RecordBatch"))]
CreateRecordBatch {
#[snafu(implicit)]
location: Location,
source: common_recordbatch::error::Error,
},
#[snafu(display("Failed to convert Arrow type: {}", from))]
Conversion { from: String, location: Location },
Conversion {
from: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to decode FlightData"))]
DecodeFlightData {
#[snafu(source)]
error: api::DecodeError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid FlightData, reason: {}", reason))]
InvalidFlightData { reason: String, location: Location },
InvalidFlightData {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert Arrow Schema"))]
ConvertArrowSchema {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},

View File

@@ -34,7 +34,11 @@ pub enum Error {
ProfilingNotEnabled,
#[snafu(display("Failed to build temp file from given path: {:?}", path))]
BuildTempPath { path: PathBuf, location: Location },
BuildTempPath {
path: PathBuf,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to open temp file: {}", path))]
OpenTempFile {

View File

@@ -32,7 +32,10 @@ use crate::DatanodeId;
#[stack_trace_debug]
pub enum Error {
#[snafu(display("Empty key is not allowed"))]
EmptyKey { location: Location },
EmptyKey {
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Another procedure is operating the region: {} on peer: {}",
@@ -40,17 +43,23 @@ pub enum Error {
peer_id
))]
RegionOperatingRace {
#[snafu(implicit)]
location: Location,
peer_id: DatanodeId,
region_id: RegionId,
},
#[snafu(display("Invalid result with a txn response: {}", err_msg))]
InvalidTxnResult { err_msg: String, location: Location },
InvalidTxnResult {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid engine type: {}", engine_type))]
InvalidEngineType {
engine_type: String,
#[snafu(implicit)]
location: Location,
},
@@ -58,6 +67,7 @@ pub enum Error {
ConnectEtcd {
#[snafu(source)]
error: etcd_client::Error,
#[snafu(implicit)]
location: Location,
},
@@ -65,6 +75,7 @@ pub enum Error {
EtcdFailed {
#[snafu(source)]
error: etcd_client::Error,
#[snafu(implicit)]
location: Location,
},
@@ -73,50 +84,72 @@ pub enum Error {
max_operations: usize,
#[snafu(source)]
error: etcd_client::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to get sequence: {}", err_msg))]
NextSequence { err_msg: String, location: Location },
NextSequence {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Sequence out of range: {}, start={}, step={}", name, start, step))]
SequenceOutOfRange {
name: String,
start: u64,
step: u64,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected sequence value: {}", err_msg))]
UnexpectedSequenceValue { err_msg: String, location: Location },
UnexpectedSequenceValue {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table info not found: {}", table))]
TableInfoNotFound { table: String, location: Location },
TableInfoNotFound {
table: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to register procedure loader, type name: {}", type_name))]
RegisterProcedureLoader {
type_name: String,
#[snafu(implicit)]
location: Location,
source: common_procedure::error::Error,
},
#[snafu(display("Failed to submit procedure"))]
SubmitProcedure {
#[snafu(implicit)]
location: Location,
source: common_procedure::Error,
},
#[snafu(display("Failed to query procedure"))]
QueryProcedure {
#[snafu(implicit)]
location: Location,
source: common_procedure::Error,
},
#[snafu(display("Procedure not found: {pid}"))]
ProcedureNotFound { location: Location, pid: String },
ProcedureNotFound {
#[snafu(implicit)]
location: Location,
pid: String,
},
#[snafu(display("Failed to parse procedure id: {key}"))]
ParseProcedureId {
#[snafu(implicit)]
location: Location,
key: String,
#[snafu(source)]
@@ -126,11 +159,13 @@ pub enum Error {
#[snafu(display("Unsupported operation {}", operation))]
Unsupported {
operation: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to wait procedure done"))]
WaitProcedure {
#[snafu(implicit)]
location: Location,
source: common_procedure::Error,
},
@@ -141,28 +176,36 @@ pub enum Error {
ProcedureOutput {
procedure_id: String,
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert RawTableInfo into TableInfo"))]
ConvertRawTableInfo {
#[snafu(implicit)]
location: Location,
source: datatypes::Error,
},
#[snafu(display("Primary key '{key}' not found when creating region request"))]
PrimaryKeyNotFound { key: String, location: Location },
PrimaryKeyNotFound {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build table meta for table: {}", table_name))]
BuildTableMeta {
table_name: String,
#[snafu(source)]
error: table::metadata::TableMetaBuilderError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table occurs error"))]
Table {
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
@@ -170,11 +213,13 @@ pub enum Error {
#[snafu(display("Failed to find table route for table id {}", table_id))]
TableRouteNotFound {
table_id: TableId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to decode protobuf"))]
DecodeProto {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: prost::DecodeError,
@@ -182,6 +227,7 @@ pub enum Error {
#[snafu(display("Failed to encode object into json"))]
EncodeJson {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: JsonError,
@@ -189,21 +235,30 @@ pub enum Error {
#[snafu(display("Failed to decode object from json"))]
DecodeJson {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: JsonError,
},
#[snafu(display("Payload not exist"))]
PayloadNotExist { location: Location },
PayloadNotExist {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to send message: {err_msg}"))]
SendMessage { err_msg: String, location: Location },
SendMessage {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to serde json"))]
SerdeJson {
#[snafu(source)]
error: serde_json::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -211,55 +266,78 @@ pub enum Error {
ParseOption {
key: String,
value: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Corrupted table route data, err: {}", err_msg))]
RouteInfoCorrupted { err_msg: String, location: Location },
RouteInfoCorrupted {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Illegal state from server, code: {}, error: {}", code, err_msg))]
IllegalServerState {
code: i32,
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert alter table request"))]
ConvertAlterTableRequest {
source: common_grpc_expr::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid protobuf message: {err_msg}"))]
InvalidProtoMsg { err_msg: String, location: Location },
InvalidProtoMsg {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected: {err_msg}"))]
Unexpected { err_msg: String, location: Location },
Unexpected {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table already exists, table: {}", table_name))]
TableAlreadyExists {
table_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Flow already exists: {}", flow_name))]
FlowAlreadyExists {
flow_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Catalog already exists, catalog: {}", catalog))]
CatalogAlreadyExists { catalog: String, location: Location },
CatalogAlreadyExists {
catalog: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Schema already exists, catalog:{}, schema: {}", catalog, schema))]
SchemaAlreadyExists {
catalog: String,
schema: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert raw key to str"))]
ConvertRawKey {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: Utf8Error,
@@ -268,35 +346,54 @@ pub enum Error {
#[snafu(display("Table not found: '{}'", table_name))]
TableNotFound {
table_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Flow not found: '{}'", flow_name))]
FlowNotFound {
flow_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Schema nod found, schema: {}", table_schema))]
SchemaNotFound {
table_schema: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to rename table, reason: {}", reason))]
RenameTable { reason: String, location: Location },
RenameTable {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid table metadata, err: {}", err_msg))]
InvalidTableMetadata { err_msg: String, location: Location },
InvalidTableMetadata {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to get kv cache, err: {}", err_msg))]
GetKvCache { err_msg: String },
#[snafu(display("Get null from cache, key: {}", key))]
CacheNotGet { key: String, location: Location },
CacheNotGet {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Etcd txn error: {err_msg}"))]
EtcdTxnOpResponse { err_msg: String, location: Location },
EtcdTxnOpResponse {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Failed to move region {} in table {}, err: {}",
@@ -308,26 +405,33 @@ pub enum Error {
table_id: TableId,
region: RegionNumber,
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid catalog value"))]
InvalidCatalogValue {
source: common_catalog::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("External error"))]
External {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Invalid heartbeat response"))]
InvalidHeartbeatResponse { location: Location },
InvalidHeartbeatResponse {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to operate on datanode: {}", peer))]
OperateDatanode {
#[snafu(implicit)]
location: Location,
peer: Peer,
source: BoxedError,
@@ -344,12 +448,14 @@ pub enum Error {
wal_options: WalOptions,
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid number of topics {}", num_topics))]
InvalidNumTopics {
num_topics: usize,
#[snafu(implicit)]
location: Location,
},
@@ -359,6 +465,7 @@ pub enum Error {
))]
BuildKafkaClient {
broker_endpoints: Vec<String>,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: rskafka::client::error::Error,
@@ -369,6 +476,7 @@ pub enum Error {
#[snafu(display("Failed to build a Kafka controller client"))]
BuildKafkaCtrlClient {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: rskafka::client::error::Error,
@@ -382,6 +490,7 @@ pub enum Error {
BuildKafkaPartitionClient {
topic: String,
partition: i32,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: rskafka::client::error::Error,
@@ -390,6 +499,7 @@ pub enum Error {
#[snafu(display("Failed to produce records to Kafka, topic: {}", topic))]
ProduceRecord {
topic: String,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: rskafka::client::error::Error,
@@ -397,66 +507,112 @@ pub enum Error {
#[snafu(display("Failed to create a Kafka wal topic"))]
CreateKafkaWalTopic {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: rskafka::client::error::Error,
},
#[snafu(display("The topic pool is empty"))]
EmptyTopicPool { location: Location },
EmptyTopicPool {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected table route type: {}", err_msg))]
UnexpectedLogicalRouteTable { location: Location, err_msg: String },
UnexpectedLogicalRouteTable {
#[snafu(implicit)]
location: Location,
err_msg: String,
},
#[snafu(display("The tasks of {} cannot be empty", name))]
EmptyDdlTasks { name: String, location: Location },
EmptyDdlTasks {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Metadata corruption: {}", err_msg))]
MetadataCorruption { err_msg: String, location: Location },
MetadataCorruption {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Alter logical tables invalid arguments: {}", err_msg))]
AlterLogicalTablesInvalidArguments { err_msg: String, location: Location },
AlterLogicalTablesInvalidArguments {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Create logical tables invalid arguments: {}", err_msg))]
CreateLogicalTablesInvalidArguments { err_msg: String, location: Location },
CreateLogicalTablesInvalidArguments {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid node info key: {}", key))]
InvalidNodeInfoKey { key: String, location: Location },
InvalidNodeInfoKey {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse number: {}", err_msg))]
ParseNum {
err_msg: String,
#[snafu(source)]
error: std::num::ParseIntError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid role: {}", role))]
InvalidRole { role: i32, location: Location },
InvalidRole {
role: i32,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Delimiter not found, key: {}", key))]
DelimiterNotFound { key: String, location: Location },
DelimiterNotFound {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid prefix: {}, key: {}", prefix, key))]
MismatchPrefix {
prefix: String,
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to move values: {err_msg}"))]
MoveValues { err_msg: String, location: Location },
MoveValues {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse {} from utf8", name))]
FromUtf8 {
name: String,
#[snafu(source)]
error: std::string::FromUtf8Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Value not exists"))]
ValueNotExist { location: Location },
ValueNotExist {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to get cache"))]
GetCache { source: Arc<Error> },

View File

@@ -32,27 +32,37 @@ pub enum Error {
External { source: BoxedError },
#[snafu(display("Loader {} is already registered", name))]
LoaderConflict { name: String, location: Location },
LoaderConflict {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Procedure Manager is stopped"))]
ManagerNotStart { location: Location },
ManagerNotStart {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to serialize to json"))]
ToJson {
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Procedure {} already exists", procedure_id))]
DuplicateProcedure {
procedure_id: ProcedureId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to put state, key: '{key}'"))]
PutState {
key: String,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -67,6 +77,7 @@ pub enum Error {
#[snafu(display("Failed to delete keys: '{keys}'"))]
DeleteStates {
keys: String,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -74,6 +85,7 @@ pub enum Error {
#[snafu(display("Failed to list state, path: '{path}'"))]
ListState {
path: String,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -82,6 +94,7 @@ pub enum Error {
FromJson {
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
@@ -95,17 +108,23 @@ pub enum Error {
WaitWatcher {
#[snafu(source)]
error: tokio::sync::watch::error::RecvError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to execute procedure"))]
ProcedureExec {
source: Arc<Error>,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Rollback Procedure recovered: {error}"))]
RollbackProcedureRecovered { error: String, location: Location },
RollbackProcedureRecovered {
error: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Procedure retry exceeded max times, procedure_id: {}", procedure_id))]
RetryTimesExceeded {
@@ -131,12 +150,14 @@ pub enum Error {
#[snafu(display("Failed to start the remove_outdated_meta method, error"))]
StartRemoveOutdatedMetaTask {
source: common_runtime::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to stop the remove_outdated_meta method, error"))]
StopRemoveOutdatedMetaTask {
source: common_runtime::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -144,11 +165,13 @@ pub enum Error {
SubprocedureFailed {
subprocedure_id: ProcedureId,
source: Arc<Error>,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse segment key: {key}"))]
ParseSegmentKey {
#[snafu(implicit)]
location: Location,
key: String,
#[snafu(source)]
@@ -156,10 +179,17 @@ pub enum Error {
},
#[snafu(display("Unexpected: {err_msg}"))]
Unexpected { location: Location, err_msg: String },
Unexpected {
#[snafu(implicit)]
location: Location,
err_msg: String,
},
#[snafu(display("Not support to rollback the procedure"))]
RollbackNotSupported { location: Location },
RollbackNotSupported {
#[snafu(implicit)]
location: Location,
},
}
pub type Result<T> = std::result::Result<T, Error>;

View File

@@ -35,11 +35,13 @@ pub enum Error {
PyUdf {
// TODO(discord9): find a way that prevent circle depend(query<-script<-query) and can use script's error type
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to create temporary recordbatch when eval Python UDF"))]
UdfTempRecordBatch {
#[snafu(implicit)]
location: Location,
source: RecordbatchError,
},
@@ -48,6 +50,7 @@ pub enum Error {
ExecuteFunction {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
@@ -55,6 +58,7 @@ pub enum Error {
UnsupportedInputDataType {
function: String,
datatypes: Vec<ConcreteDataType>,
#[snafu(implicit)]
location: Location,
},
@@ -62,23 +66,27 @@ pub enum Error {
GenerateFunction {
#[snafu(source)]
error: StatsError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to cast scalar value into vector"))]
FromScalarValue {
#[snafu(implicit)]
location: Location,
source: DataTypeError,
},
#[snafu(display("Failed to cast arrow array into vector"))]
FromArrowArray {
#[snafu(implicit)]
location: Location,
source: DataTypeError,
},
#[snafu(display("Failed to cast arrow array into vector: {:?}", data_type))]
IntoVector {
#[snafu(implicit)]
location: Location,
source: DataTypeError,
data_type: ArrowDatatype,
@@ -91,10 +99,15 @@ pub enum Error {
DowncastVector { err_msg: String },
#[snafu(display("Bad accumulator implementation: {}", err_msg))]
BadAccumulatorImpl { err_msg: String, location: Location },
BadAccumulatorImpl {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid input type: {}", err_msg))]
InvalidInputType {
#[snafu(implicit)]
location: Location,
source: DataTypeError,
err_msg: String,
@@ -103,35 +116,48 @@ pub enum Error {
#[snafu(display(
"Illegal input_types status, check if DataFusion has changed its UDAF execution logic"
))]
InvalidInputState { location: Location },
InvalidInputState {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("unexpected: not constant column"))]
InvalidInputCol { location: Location },
InvalidInputCol {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Not expected to run ExecutionPlan more than once"))]
ExecuteRepeatedly { location: Location },
ExecuteRepeatedly {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("General DataFusion error"))]
GeneralDataFusion {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert DataFusion's recordbatch stream"))]
ConvertDfRecordBatchStream {
#[snafu(implicit)]
location: Location,
source: common_recordbatch::error::Error,
},
#[snafu(display("Failed to convert arrow schema"))]
ConvertArrowSchema {
#[snafu(implicit)]
location: Location,
source: DataTypeError,
},
#[snafu(display("Failed to execute physical plan"))]
ExecutePhysicalPlan {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -141,6 +167,7 @@ pub enum Error {
#[snafu(source)]
error: ArrowError,
typ: arrow::datatypes::DataType,
#[snafu(implicit)]
location: Location,
},
@@ -148,53 +175,76 @@ pub enum Error {
ArrowCompute {
#[snafu(source)]
error: ArrowError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Query engine fail to cast value"))]
ToScalarValue {
#[snafu(implicit)]
location: Location,
source: DataTypeError,
},
#[snafu(display("Failed to get scalar vector"))]
GetScalarVector {
#[snafu(implicit)]
location: Location,
source: DataTypeError,
},
#[snafu(display("Failed to execute function: {source}"))]
Execute {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to join thread"))]
ThreadJoin { location: Location },
ThreadJoin {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to do table mutation"))]
TableMutation {
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to do procedure task"))]
ProcedureService {
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing TableMutationHandler, not expected"))]
MissingTableMutationHandler { location: Location },
MissingTableMutationHandler {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing ProcedureServiceHandler, not expected"))]
MissingProcedureServiceHandler { location: Location },
MissingProcedureServiceHandler {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid function args: {}", err_msg))]
InvalidFuncArgs { err_msg: String, location: Location },
InvalidFuncArgs {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Permission denied: {}", err_msg))]
PermissionDenied { err_msg: String, location: Location },
PermissionDenied {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
}
pub type Result<T> = std::result::Result<T, Error>;

View File

@@ -32,27 +32,35 @@ pub enum Error {
NewDfRecordBatch {
#[snafu(source)]
error: datatypes::arrow::error::ArrowError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Data types error"))]
DataTypes {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
#[snafu(display("External error"))]
External {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to create RecordBatches, reason: {}", reason))]
CreateRecordBatches { reason: String, location: Location },
CreateRecordBatches {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert Arrow schema"))]
SchemaConversion {
source: datatypes::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -60,6 +68,7 @@ pub enum Error {
PollStream {
#[snafu(source)]
error: datafusion::error::DataFusionError,
#[snafu(implicit)]
location: Location,
},
@@ -67,6 +76,7 @@ pub enum Error {
Format {
#[snafu(source)]
error: datatypes::arrow::error::ArrowError,
#[snafu(implicit)]
location: Location,
},
@@ -75,6 +85,7 @@ pub enum Error {
v: ScalarValue,
#[snafu(source)]
error: datafusion_common::DataFusionError,
#[snafu(implicit)]
location: Location,
},
@@ -86,6 +97,7 @@ pub enum Error {
ProjectArrowRecordBatch {
#[snafu(source)]
error: datatypes::arrow::error::ArrowError,
#[snafu(implicit)]
location: Location,
schema: datatypes::schema::SchemaRef,
projection: Vec<usize>,
@@ -95,6 +107,7 @@ pub enum Error {
ColumnNotExists {
column_name: String,
table_name: String,
#[snafu(implicit)]
location: Location,
},
@@ -106,6 +119,7 @@ pub enum Error {
CastVector {
from_type: ConcreteDataType,
to_type: ConcreteDataType,
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
@@ -114,11 +128,16 @@ pub enum Error {
ArrowCompute {
#[snafu(source)]
error: datatypes::arrow::error::ArrowError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported operation: {}", reason))]
UnsupportedOperation { reason: String, location: Location },
UnsupportedOperation {
reason: String,
#[snafu(implicit)]
location: Location,
},
}
impl ErrorExt for Error {

View File

@@ -29,17 +29,23 @@ pub enum Error {
BuildRuntime {
#[snafu(source)]
error: std::io::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Repeated task {} is already started", name))]
IllegalState { name: String, location: Location },
IllegalState {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to wait for repeated task {} to stop", name))]
WaitGcTaskStop {
name: String,
#[snafu(source)]
error: JoinError,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -27,24 +27,38 @@ use snafu::{Location, Snafu};
#[stack_trace_debug]
pub enum Error {
#[snafu(display("Unsupported physical plan: {}", name))]
UnsupportedPlan { name: String, location: Location },
UnsupportedPlan {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported expr: {}", name))]
UnsupportedExpr { name: String, location: Location },
UnsupportedExpr {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported concrete type: {:?}", ty))]
UnsupportedConcreteType {
ty: ConcreteDataType,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported substrait type: {}", ty))]
UnsupportedSubstraitType { ty: String, location: Location },
UnsupportedSubstraitType {
ty: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to decode substrait relation"))]
DecodeRel {
#[snafu(source)]
error: DecodeError,
#[snafu(implicit)]
location: Location,
},
@@ -52,40 +66,57 @@ pub enum Error {
EncodeRel {
#[snafu(source)]
error: EncodeError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Input plan is empty"))]
EmptyPlan { location: Location },
EmptyPlan {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Input expression is empty"))]
EmptyExpr { location: Location },
EmptyExpr {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing required field in protobuf, field: {}, plan: {}", field, plan))]
MissingField {
field: String,
plan: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid parameters: {}", reason))]
InvalidParameters { reason: String, location: Location },
InvalidParameters {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Internal error from DataFusion"))]
DFInternal {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Internal error"))]
Internal {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Cannot convert plan doesn't belong to GreptimeDB"))]
UnknownPlan { location: Location },
UnknownPlan {
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Schema from Substrait proto doesn't match with the schema in storage.
@@ -97,11 +128,13 @@ pub enum Error {
SchemaNotMatch {
substrait_schema: datafusion::arrow::datatypes::SchemaRef,
storage_schema: datafusion::arrow::datatypes::SchemaRef,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert DataFusion schema"))]
ConvertDfSchema {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
@@ -109,6 +142,7 @@ pub enum Error {
#[snafu(display("Unable to resolve table: {table_name}, error: "))]
ResolveTable {
table_name: String,
#[snafu(implicit)]
location: Location,
source: catalog::error::Error,
},
@@ -117,6 +151,7 @@ pub enum Error {
EncodeDfPlan {
#[snafu(source)]
error: datafusion::error::DataFusionError,
#[snafu(implicit)]
location: Location,
},
@@ -124,6 +159,7 @@ pub enum Error {
DecodeDfPlan {
#[snafu(source)]
error: datafusion::error::DataFusionError,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -33,28 +33,46 @@ pub enum Error {
},
#[snafu(display("Invalid date string, raw: {}", raw))]
InvalidDateStr { raw: String, location: Location },
InvalidDateStr {
raw: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse a string into Timestamp, raw string: {}", raw))]
ParseTimestamp { raw: String, location: Location },
ParseTimestamp {
raw: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse a string into Interval, raw string: {}", raw))]
ParseInterval { raw: String, location: Location },
ParseInterval {
raw: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Current timestamp overflow"))]
TimestampOverflow {
#[snafu(source)]
error: TryFromIntError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Timestamp arithmetic overflow, msg: {}", msg))]
ArithmeticOverflow { msg: String, location: Location },
ArithmeticOverflow {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid timezone offset: {hours}:{minutes}"))]
InvalidTimezoneOffset {
hours: i32,
minutes: u32,
#[snafu(implicit)]
location: Location,
},
@@ -63,17 +81,23 @@ pub enum Error {
raw: String,
#[snafu(source)]
error: ParseIntError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid timezone string {raw}"))]
ParseTimezoneName { raw: String, location: Location },
ParseTimezoneName {
raw: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to format, pattern: {}", pattern))]
Format {
pattern: String,
#[snafu(source)]
error: std::fmt::Error,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -30,12 +30,14 @@ use table::error::Error as TableError;
pub enum Error {
#[snafu(display("Failed to execute async task"))]
AsyncTaskExecute {
#[snafu(implicit)]
location: Location,
source: Arc<Error>,
},
#[snafu(display("Failed to watch change"))]
WatchAsyncTaskChange {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: tokio::sync::watch::error::RecvError,
@@ -43,39 +45,58 @@ pub enum Error {
#[snafu(display("Failed to handle heartbeat response"))]
HandleHeartbeatResponse {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to get info from meta server"))]
GetMetadata {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to execute logical plan"))]
ExecuteLogicalPlan {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("Failed to decode logical plan"))]
DecodeLogicalPlan {
#[snafu(implicit)]
location: Location,
source: substrait::error::Error,
},
#[snafu(display("Incorrect internal state: {}", state))]
IncorrectInternalState { state: String, location: Location },
IncorrectInternalState {
state: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Catalog not found: {}", name))]
CatalogNotFound { name: String, location: Location },
CatalogNotFound {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Schema not found: {}", name))]
SchemaNotFound { name: String, location: Location },
SchemaNotFound {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing timestamp column in request"))]
MissingTimestampColumn { location: Location },
MissingTimestampColumn {
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Columns and values number mismatch, columns: {}, values: {}",
@@ -87,12 +108,14 @@ pub enum Error {
#[snafu(display("Failed to delete value from table: {}", table_name))]
Delete {
table_name: String,
#[snafu(implicit)]
location: Location,
source: TableError,
},
#[snafu(display("Failed to start server"))]
StartServer {
#[snafu(implicit)]
location: Location,
source: servers::error::Error,
},
@@ -120,6 +143,7 @@ pub enum Error {
#[snafu(display("Failed to open log store"))]
OpenLogStore {
#[snafu(implicit)]
location: Location,
source: Box<log_store::error::Error>,
},
@@ -128,17 +152,22 @@ pub enum Error {
InitBackend {
#[snafu(source)]
error: object_store::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Runtime resource error"))]
RuntimeResource {
#[snafu(implicit)]
location: Location,
source: common_runtime::error::Error,
},
#[snafu(display("Expect KvBackend but not found"))]
MissingKvBackend { location: Location },
MissingKvBackend {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid SQL, error: {}", msg))]
InvalidSql { msg: String },
@@ -147,22 +176,36 @@ pub enum Error {
NotSupportSql { msg: String },
#[snafu(display("Specified timestamp key or primary key column not found: {}", name))]
KeyColumnNotFound { name: String, location: Location },
KeyColumnNotFound {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Illegal primary keys definition: {}", msg))]
IllegalPrimaryKeysDef { msg: String, location: Location },
IllegalPrimaryKeysDef {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Schema {} already exists", name))]
SchemaExists { name: String, location: Location },
SchemaExists {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to access catalog"))]
Catalog {
#[snafu(implicit)]
location: Location,
source: catalog::error::Error,
},
#[snafu(display("Failed to initialize meta client"))]
MetaClientInit {
#[snafu(implicit)]
location: Location,
source: meta_client::error::Error,
},
@@ -170,13 +213,23 @@ pub enum Error {
#[snafu(display(
"Table id provider not found, cannot execute SQL directly on datanode in distributed mode"
))]
TableIdProviderNotFound { location: Location },
TableIdProviderNotFound {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing node id in Datanode config"))]
MissingNodeId { location: Location },
MissingNodeId {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing required field: {}", name))]
MissingRequiredField { name: String, location: Location },
MissingRequiredField {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Cannot find requested database: {}-{}", catalog, schema))]
DatabaseNotFound { catalog: String, schema: String },
@@ -185,35 +238,49 @@ pub enum Error {
"No valid default value can be built automatically, column: {}",
column,
))]
ColumnNoneDefaultValue { column: String, location: Location },
ColumnNoneDefaultValue {
column: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to shutdown server"))]
ShutdownServer {
#[snafu(implicit)]
location: Location,
source: servers::error::Error,
},
#[snafu(display("Failed to shutdown instance"))]
ShutdownInstance {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Payload not exist"))]
PayloadNotExist { location: Location },
PayloadNotExist {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing WAL dir config"))]
MissingWalDirConfig { location: Location },
MissingWalDirConfig {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected, violated: {}", violated))]
Unexpected {
violated: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to handle request for region {}", region_id))]
HandleRegionRequest {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -221,35 +288,48 @@ pub enum Error {
#[snafu(display("RegionId {} not found", region_id))]
RegionNotFound {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Region {} not ready", region_id))]
RegionNotReady {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Region {} is busy", region_id))]
RegionBusy {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Region engine {} is not registered", name))]
RegionEngineNotFound { name: String, location: Location },
RegionEngineNotFound {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported gRPC request, kind: {}", kind))]
UnsupportedGrpcRequest { kind: String, location: Location },
UnsupportedGrpcRequest {
kind: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported output type, expected: {}", expected))]
UnsupportedOutput {
expected: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build region requests"))]
BuildRegionRequests {
#[snafu(implicit)]
location: Location,
source: store_api::metadata::MetadataError,
},
@@ -257,6 +337,7 @@ pub enum Error {
#[snafu(display("Failed to stop region engine {}", name))]
StopRegionEngine {
name: String,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -268,12 +349,14 @@ pub enum Error {
FindLogicalRegions {
physical_region_id: RegionId,
source: metric_engine::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build mito engine"))]
BuildMitoEngine {
source: mito2::error::Error,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -27,6 +27,7 @@ pub enum Error {
Serialize {
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
@@ -34,26 +35,37 @@ pub enum Error {
Deserialize {
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
json: String,
},
#[snafu(display("Failed to convert datafusion type: {}", from))]
Conversion { from: String, location: Location },
Conversion {
from: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Bad array access, Index out of bounds: {}, size: {}", index, size))]
BadArrayAccess {
index: usize,
size: usize,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unknown vector, {}", msg))]
UnknownVector { msg: String, location: Location },
UnknownVector {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported arrow data type, type: {:?}", arrow_type))]
UnsupportedArrowType {
arrow_type: arrow::datatypes::DataType,
#[snafu(implicit)]
location: Location,
},
@@ -61,6 +73,7 @@ pub enum Error {
UnsupportedOperation {
op: String,
vector_type: String,
#[snafu(implicit)]
location: Location,
},
@@ -69,19 +82,29 @@ pub enum Error {
value: String,
#[snafu(source)]
error: std::num::ParseIntError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid timestamp index: {}", index))]
InvalidTimestampIndex { index: usize, location: Location },
InvalidTimestampIndex {
index: usize,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("{}", msg))]
CastType { msg: String, location: Location },
CastType {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to cast arrow time i32 type into i64"))]
CastTimeType {
#[snafu(source)]
error: std::num::TryFromIntError,
#[snafu(implicit)]
location: Location,
},
@@ -89,6 +112,7 @@ pub enum Error {
ArrowCompute {
#[snafu(source)]
error: arrow::error::ArrowError,
#[snafu(implicit)]
location: Location,
},
@@ -96,32 +120,64 @@ pub enum Error {
ProjectArrowSchema {
#[snafu(source)]
error: arrow::error::ArrowError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported column default constraint expression: {}", expr))]
UnsupportedDefaultExpr { expr: String, location: Location },
UnsupportedDefaultExpr {
expr: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Default value should not be null for non null column"))]
NullDefault { location: Location },
NullDefault {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Incompatible default value type, reason: {}", reason))]
DefaultValueType { reason: String, location: Location },
DefaultValueType {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Duplicated metadata for {}", key))]
DuplicateMeta { key: String, location: Location },
DuplicateMeta {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert value into scalar value, reason: {}", reason))]
ToScalarValue { reason: String, location: Location },
ToScalarValue {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid timestamp precision: {}", precision))]
InvalidTimestampPrecision { precision: u64, location: Location },
InvalidTimestampPrecision {
precision: u64,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Column {} already exists", column))]
DuplicateColumn { column: String, location: Location },
DuplicateColumn {
column: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to unpack value to given type: {}", reason))]
TryFromValue { reason: String, location: Location },
TryFromValue {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to specify the precision {} and scale {}", precision, scale))]
InvalidPrecisionOrScale {
@@ -129,6 +185,7 @@ pub enum Error {
scale: i8,
#[snafu(source)]
error: arrow::error::ArrowError,
#[snafu(implicit)]
location: Location,
},
@@ -137,6 +194,7 @@ pub enum Error {
precision: u8,
#[snafu(source)]
error: arrow::error::ArrowError,
#[snafu(implicit)]
location: Location,
},
@@ -144,6 +202,7 @@ pub enum Error {
ConvertArrowArrayToScalars {
#[snafu(source)]
error: datafusion_common::DataFusionError,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -30,27 +30,35 @@ pub enum Error {
#[snafu(display("Unsupported operation: {}", operation))]
Unsupported {
operation: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected engine: {}", engine))]
UnexpectedEngine { engine: String, location: Location },
UnexpectedEngine {
engine: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid region metadata"))]
InvalidMetadata {
source: store_api::metadata::MetadataError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Region not found, region_id: {}", region_id))]
RegionNotFound {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to check object from path: {}", path))]
CheckObject {
path: String,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: object_store::Error,
@@ -58,6 +66,7 @@ pub enum Error {
#[snafu(display("Fail to encode object into json"))]
EncodeJson {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: JsonError,
@@ -65,6 +74,7 @@ pub enum Error {
#[snafu(display("Fail to decode object from json"))]
DecodeJson {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: JsonError,
@@ -75,6 +85,7 @@ pub enum Error {
#[snafu(source)]
error: object_store::Error,
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
@@ -83,6 +94,7 @@ pub enum Error {
#[snafu(source)]
error: object_store::Error,
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
@@ -91,17 +103,27 @@ pub enum Error {
#[snafu(source)]
error: object_store::Error,
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Manifest already exists: {}", path))]
ManifestExists { path: String, location: Location },
ManifestExists {
path: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing required field: {}", name))]
MissingRequiredField { name: String, location: Location },
MissingRequiredField {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build backend"))]
BuildBackend {
#[snafu(implicit)]
location: Location,
source: common_datasource::error::Error,
},
@@ -110,6 +132,7 @@ pub enum Error {
BuildCsvConfig {
#[snafu(source)]
error: common_datasource::file_format::csv::CsvConfigBuilderError,
#[snafu(implicit)]
location: Location,
},
@@ -117,6 +140,7 @@ pub enum Error {
BuildStream {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
@@ -124,23 +148,27 @@ pub enum Error {
ProjectArrowSchema {
#[snafu(source)]
error: ArrowError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to project schema"))]
ProjectSchema {
source: datatypes::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build stream adapter"))]
BuildStreamAdapter {
#[snafu(implicit)]
location: Location,
source: common_recordbatch::error::Error,
},
#[snafu(display("Failed to parse file format"))]
ParseFileFormat {
#[snafu(implicit)]
location: Location,
source: common_datasource::error::Error,
},
@@ -149,6 +177,7 @@ pub enum Error {
ParquetScanPlan {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
@@ -160,6 +189,7 @@ pub enum Error {
ProjectionOutOfBounds {
column_index: usize,
bounds: usize,
#[snafu(implicit)]
location: Location,
},
@@ -167,6 +197,7 @@ pub enum Error {
ExtractColumnFromFilter {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
@@ -174,11 +205,16 @@ pub enum Error {
CreateDefault {
column: String,
source: datatypes::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing default value for column: {}", column))]
MissingColumnNoDefault { column: String, location: Location },
MissingColumnNoDefault {
column: String,
#[snafu(implicit)]
location: Location,
},
}
pub type Result<T> = std::result::Result<T, Error>;

View File

@@ -36,41 +36,72 @@ pub enum Error {
#[snafu(display("Failed to eval stream"))]
Eval {
source: EvalError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table not found: {name}"))]
TableNotFound { name: String, location: Location },
TableNotFound {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table already exist: {name}"))]
TableAlreadyExist { name: String, location: Location },
TableAlreadyExist {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to join task"))]
JoinTask {
#[snafu(source)]
error: tokio::task::JoinError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid query: {reason}"))]
InvalidQuery { reason: String, location: Location },
InvalidQuery {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("No protobuf type for value: {value}"))]
NoProtoType { value: Value, location: Location },
NoProtoType {
value: Value,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Not implement in flow: {reason}"))]
NotImplemented { reason: String, location: Location },
NotImplemented {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Flow plan error: {reason}"))]
Plan { reason: String, location: Location },
Plan {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported temporal filter: {reason}"))]
UnsupportedTemporalFilter { reason: String, location: Location },
UnsupportedTemporalFilter {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Datatypes error: {source} with extra message: {extra}"))]
Datatypes {
source: datatypes::Error,
extra: String,
#[snafu(implicit)]
location: Location,
},
@@ -78,6 +109,7 @@ pub enum Error {
Datafusion {
raw: datafusion_common::DataFusionError,
context: String,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -31,24 +31,33 @@ use snafu::{Location, Snafu};
#[stack_trace_debug]
pub enum EvalError {
#[snafu(display("Division by zero"))]
DivisionByZero { location: Location },
DivisionByZero {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Type mismatch: expected {expected}, actual {actual}"))]
TypeMismatch {
expected: ConcreteDataType,
actual: ConcreteDataType,
#[snafu(implicit)]
location: Location,
},
/// can't nest datatypes error because EvalError need to be store in map and serialization
#[snafu(display("Fail to unpack from value to given type: {msg}"))]
TryFromValue { msg: String, location: Location },
TryFromValue {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Fail to cast value of type {from} to given type {to}"))]
CastValue {
from: ConcreteDataType,
to: ConcreteDataType,
source: datatypes::Error,
#[snafu(implicit)]
location: Location,
},
@@ -56,18 +65,34 @@ pub enum EvalError {
DataType {
msg: String,
source: datatypes::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid argument: {reason}"))]
InvalidArgument { reason: String, location: Location },
InvalidArgument {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Internal error: {reason}"))]
Internal { reason: String, location: Location },
Internal {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Optimize error: {reason}"))]
Optimize { reason: String, location: Location },
Optimize {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Overflowed during evaluation"))]
Overflow { location: Location },
Overflow {
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -28,48 +28,56 @@ use store_api::storage::RegionNumber;
pub enum Error {
#[snafu(display("Failed to invalidate table cache"))]
InvalidateTableCache {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to open raft engine backend"))]
OpenRaftEngineBackend {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to handle heartbeat response"))]
HandleHeartbeatResponse {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("External error"))]
External {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to query"))]
RequestQuery {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Runtime resource error"))]
RuntimeResource {
#[snafu(implicit)]
location: Location,
source: common_runtime::error::Error,
},
#[snafu(display("Failed to start server"))]
StartServer {
#[snafu(implicit)]
location: Location,
source: servers::error::Error,
},
#[snafu(display("Failed to shutdown server"))]
ShutdownServer {
#[snafu(implicit)]
location: Location,
source: servers::error::Error,
},
@@ -83,42 +91,66 @@ pub enum Error {
#[snafu(display("Failed to parse SQL"))]
ParseSql {
#[snafu(implicit)]
location: Location,
source: sql::error::Error,
},
#[snafu(display("Failed to convert vector to GRPC column, reason: {}", reason))]
VectorToGrpcColumn { reason: String, location: Location },
VectorToGrpcColumn {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid SQL, error: {}", err_msg))]
InvalidSql { err_msg: String, location: Location },
InvalidSql {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Incomplete GRPC request: {}", err_msg))]
IncompleteGrpcRequest { err_msg: String, location: Location },
IncompleteGrpcRequest {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to find Datanode by region: {:?}", region))]
FindDatanode {
region: RegionNumber,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid InsertRequest, reason: {}", reason))]
InvalidInsertRequest { reason: String, location: Location },
InvalidInsertRequest {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid DeleteRequest, reason: {}", reason))]
InvalidDeleteRequest { reason: String, location: Location },
InvalidDeleteRequest {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table not found: {}", table_name))]
TableNotFound { table_name: String },
#[snafu(display("General catalog error"))]
Catalog {
#[snafu(implicit)]
location: Location,
source: catalog::error::Error,
},
#[snafu(display("Failed to start Meta client"))]
StartMetaClient {
#[snafu(implicit)]
location: Location,
source: meta_client::error::Error,
},
@@ -126,30 +158,42 @@ pub enum Error {
#[snafu(display("Failed to create heartbeat stream to Metasrv"))]
CreateMetaHeartbeatStream {
source: meta_client::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to find table route for table id {}", table_id))]
FindTableRoute {
table_id: u32,
#[snafu(implicit)]
location: Location,
source: partition::error::Error,
},
#[snafu(display("Schema {} already exists", name))]
SchemaExists { name: String, location: Location },
SchemaExists {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table occurs error"))]
Table {
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
#[snafu(display("Cannot find column by name: {}", msg))]
ColumnNotFound { msg: String, location: Location },
ColumnNotFound {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to plan statement"))]
PlanStatement {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
@@ -157,33 +201,45 @@ pub enum Error {
#[snafu(display("Failed to read table: {table_name}"))]
ReadTable {
table_name: String,
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("Failed to execute logical plan"))]
ExecLogicalPlan {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("Operation to region server failed"))]
InvokeRegionServer {
#[snafu(implicit)]
location: Location,
source: servers::error::Error,
},
#[snafu(display("Failed to find leaders when altering table, table: {}", table))]
LeaderNotFound { table: String, location: Location },
LeaderNotFound {
table: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to found context value: {}", key))]
ContextValueNotFound { key: String, location: Location },
ContextValueNotFound {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Not supported: {}", feat))]
NotSupported { feat: String },
#[snafu(display("SQL execution intercepted"))]
SqlExecIntercepted {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -192,27 +248,35 @@ pub enum Error {
#[snafu(display("Failed to execute PromQL query {}", query))]
ExecutePromql {
query: String,
#[snafu(implicit)]
location: Location,
source: servers::error::Error,
},
#[snafu(display("Failed to create logical plan for prometheus query"))]
PromStoreRemoteQueryPlan {
#[snafu(implicit)]
location: Location,
source: servers::error::Error,
},
#[snafu(display("Failed to describe schema for given statement"))]
DescribeStatement {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("Illegal primary keys definition: {}", msg))]
IllegalPrimaryKeysDef { msg: String, location: Location },
IllegalPrimaryKeysDef {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to start script manager"))]
StartScriptManager {
#[snafu(implicit)]
location: Location,
source: script::error::Error,
},
@@ -220,6 +284,7 @@ pub enum Error {
#[snafu(display("Failed to copy table: {}", table_name))]
CopyTable {
table_name: String,
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
@@ -227,27 +292,41 @@ pub enum Error {
#[snafu(display("Failed to insert value into table: {}", table_name))]
Insert {
table_name: String,
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
#[snafu(display("Unsupported format: {:?}", format))]
UnsupportedFormat { location: Location, format: Format },
UnsupportedFormat {
#[snafu(implicit)]
location: Location,
format: Format,
},
#[snafu(display("Failed to pass permission check"))]
Permission {
source: auth::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Empty data: {}", msg))]
EmptyData { msg: String, location: Location },
EmptyData {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"No valid default value can be built automatically, column: {}",
column,
))]
ColumnNoneDefaultValue { column: String, location: Location },
ColumnNoneDefaultValue {
column: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid region request, reason: {}", reason))]
InvalidRegionRequest { reason: String },
@@ -255,6 +334,7 @@ pub enum Error {
#[snafu(display("Table operation error"))]
TableOperation {
source: operator::error::Error,
#[snafu(implicit)]
location: Location,
},

View File

@@ -30,6 +30,7 @@ pub enum Error {
Seek {
#[snafu(source)]
error: IoError,
#[snafu(implicit)]
location: Location,
},
@@ -37,6 +38,7 @@ pub enum Error {
Read {
#[snafu(source)]
error: IoError,
#[snafu(implicit)]
location: Location,
},
@@ -44,6 +46,7 @@ pub enum Error {
Write {
#[snafu(source)]
error: IoError,
#[snafu(implicit)]
location: Location,
},
@@ -51,6 +54,7 @@ pub enum Error {
Flush {
#[snafu(source)]
error: IoError,
#[snafu(implicit)]
location: Location,
},
@@ -58,6 +62,7 @@ pub enum Error {
Close {
#[snafu(source)]
error: IoError,
#[snafu(implicit)]
location: Location,
},
@@ -67,6 +72,7 @@ pub enum Error {
UnexpectedBlobSize {
min_blob_size: u64,
actual_blob_size: u64,
#[snafu(implicit)]
location: Location,
},
@@ -74,6 +80,7 @@ pub enum Error {
UnexpectedFooterPayloadSize {
max_payload_size: u64,
actual_payload_size: u64,
#[snafu(implicit)]
location: Location,
},
@@ -86,12 +93,16 @@ pub enum Error {
},
#[snafu(display("Unexpected zero segment row count"))]
UnexpectedZeroSegmentRowCount { location: Location },
UnexpectedZeroSegmentRowCount {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to decode fst"))]
DecodeFst {
#[snafu(source)]
error: fst::Error,
#[snafu(implicit)]
location: Location,
},
@@ -99,6 +110,7 @@ pub enum Error {
DecodeProto {
#[snafu(source)]
error: prost::DecodeError,
#[snafu(implicit)]
location: Location,
},
@@ -107,6 +119,7 @@ pub enum Error {
#[snafu(source)]
error: regex::Error,
pattern: String,
#[snafu(implicit)]
location: Location,
},
@@ -114,33 +127,49 @@ pub enum Error {
ParseDFA {
#[snafu(source)]
error: Box<regex_automata::dfa::dense::BuildError>,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected empty predicates to construct fst applier"))]
EmptyPredicates { location: Location },
EmptyPredicates {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to construct intersection fst applier with InList predicate"))]
IntersectionApplierWithInList { location: Location },
IntersectionApplierWithInList {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to construct keys fst applier without InList predicate"))]
KeysApplierWithoutInList { location: Location },
KeysApplierWithoutInList {
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Failed to construct keys fst applier with unexpected predicates: {predicates:?}"
))]
KeysApplierUnexpectedPredicates {
#[snafu(implicit)]
location: Location,
predicates: Vec<Predicate>,
},
#[snafu(display("index not found, name: {name}"))]
IndexNotFound { name: String, location: Location },
IndexNotFound {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to insert value to FST"))]
FstInsert {
#[snafu(source)]
error: fst::Error,
#[snafu(implicit)]
location: Location,
},
@@ -148,6 +177,7 @@ pub enum Error {
FstCompile {
#[snafu(source)]
error: fst::Error,
#[snafu(implicit)]
location: Location,
},
@@ -155,11 +185,16 @@ pub enum Error {
CommonIoError {
#[snafu(source)]
error: IoError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unknown intermediate codec magic: {magic:?}"))]
UnknownIntermediateCodecMagic { magic: [u8; 4], location: Location },
UnknownIntermediateCodecMagic {
magic: [u8; 4],
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Inconsistent row count, index_name: {index_name}, total_row_count: {total_row_count}, expected: {expected_row_count}"))]
InconsistentRowCount {
@@ -171,6 +206,7 @@ pub enum Error {
#[snafu(display("External error"))]
External {
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -29,12 +29,14 @@ use crate::kafka::NamespaceImpl as KafkaNamespace;
pub enum Error {
#[snafu(display("Failed to start log store gc task"))]
StartGcTask {
#[snafu(implicit)]
location: Location,
source: RuntimeError,
},
#[snafu(display("Failed to stop log store gc task"))]
StopGcTask {
#[snafu(implicit)]
location: Location,
source: RuntimeError,
},
@@ -43,6 +45,7 @@ pub enum Error {
AddEntryLogBatch {
#[snafu(source)]
error: raft_engine::Error,
#[snafu(implicit)]
location: Location,
},
@@ -50,6 +53,7 @@ pub enum Error {
RaftEngine {
#[snafu(source)]
error: raft_engine::Error,
#[snafu(implicit)]
location: Location,
},
@@ -58,14 +62,22 @@ pub enum Error {
path: String,
#[snafu(source)]
error: std::io::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Log store not started yet"))]
IllegalState { location: Location },
IllegalState {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Namespace is illegal: {}", ns))]
IllegalNamespace { ns: u64, location: Location },
IllegalNamespace {
ns: u64,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Failed to fetch entries from namespace: {}, start: {}, end: {}, max size: {}",
@@ -81,6 +93,7 @@ pub enum Error {
max_size: usize,
#[snafu(source)]
error: raft_engine::Error,
#[snafu(implicit)]
location: Location,
},
@@ -94,6 +107,7 @@ pub enum Error {
namespace: u64,
first_index: u64,
attempt_index: u64,
#[snafu(implicit)]
location: Location,
},
@@ -103,6 +117,7 @@ pub enum Error {
))]
BuildClient {
broker_endpoints: Vec<String>,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: rskafka::client::error::Error,
@@ -119,6 +134,7 @@ pub enum Error {
BuildPartitionClient {
topic: String,
partition: i32,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: rskafka::client::error::Error,
@@ -131,18 +147,28 @@ pub enum Error {
))]
GetClient {
topic: String,
#[snafu(implicit)]
location: Location,
error: String,
},
#[snafu(display("Missing required key in a record"))]
MissingKey { location: Location },
MissingKey {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing required value in a record"))]
MissingValue { location: Location },
MissingValue {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Cannot build a record from empty entries"))]
EmptyEntries { location: Location },
EmptyEntries {
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Failed to produce records to Kafka, topic: {}, size: {}, limit: {}",
@@ -154,6 +180,7 @@ pub enum Error {
topic: String,
size: usize,
limit: usize,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: rskafka::client::producer::Error,
@@ -162,6 +189,7 @@ pub enum Error {
#[snafu(display("Failed to read a record from Kafka, ns: {}", ns))]
ConsumeRecord {
ns: KafkaNamespace,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: rskafka::client::error::Error,
@@ -170,16 +198,21 @@ pub enum Error {
#[snafu(display("Failed to get the latest offset, ns: {}", ns))]
GetOffset {
ns: KafkaNamespace,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: rskafka::client::error::Error,
},
#[snafu(display("Failed to do a cast"))]
Cast { location: Location },
Cast {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to encode object into json"))]
EncodeJson {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: JsonError,
@@ -187,13 +220,18 @@ pub enum Error {
#[snafu(display("Failed to decode object from json"))]
DecodeJson {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: JsonError,
},
#[snafu(display("The record sequence is not legal, error: {}", error))]
IllegalSequence { location: Location, error: String },
IllegalSequence {
#[snafu(implicit)]
location: Location,
error: String,
},
#[snafu(display(
"Attempt to append discontinuous log entry, region: {}, last index: {}, attempt index: {}",

View File

@@ -24,19 +24,30 @@ use tonic::Status;
#[stack_trace_debug]
pub enum Error {
#[snafu(display("Illegal GRPC client state: {}", err_msg))]
IllegalGrpcClientState { err_msg: String, location: Location },
IllegalGrpcClientState {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("{}", msg))]
MetaServer { code: StatusCode, msg: String },
#[snafu(display("Failed to ask leader from all endpoints"))]
AskLeader { location: Location },
AskLeader {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("No leader, should ask leader first"))]
NoLeader { location: Location },
NoLeader {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Ask leader timeout"))]
AskLeaderTimeout {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: tokio::time::error::Elapsed,
@@ -44,33 +55,48 @@ pub enum Error {
#[snafu(display("Failed to create gRPC channel"))]
CreateChannel {
#[snafu(implicit)]
location: Location,
source: common_grpc::error::Error,
},
#[snafu(display("{} not started", name))]
NotStarted { name: String, location: Location },
NotStarted {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to send heartbeat: {}", err_msg))]
SendHeartbeat { err_msg: String, location: Location },
SendHeartbeat {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed create heartbeat stream to server"))]
CreateHeartbeatStream { location: Location },
CreateHeartbeatStream {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid response header"))]
InvalidResponseHeader {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to convert Metasrv request"))]
ConvertMetaRequest {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to convert Metasrv response"))]
ConvertMetaResponse {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},

View File

@@ -33,16 +33,25 @@ use crate::pubsub::Message;
#[stack_trace_debug]
pub enum Error {
#[snafu(display("The target peer is unavailable temporally: {}", peer_id))]
PeerUnavailable { location: Location, peer_id: u64 },
PeerUnavailable {
#[snafu(implicit)]
location: Location,
peer_id: u64,
},
#[snafu(display("Another migration procedure is running for region: {}", region_id))]
MigrationRunning {
#[snafu(implicit)]
location: Location,
region_id: RegionId,
},
#[snafu(display("The region migration procedure aborted, reason: {}", reason))]
MigrationAbort { location: Location, reason: String },
MigrationAbort {
#[snafu(implicit)]
location: Location,
reason: String,
},
#[snafu(display(
"Another procedure is opening the region: {} on peer: {}",
@@ -50,6 +59,7 @@ pub enum Error {
peer_id
))]
RegionOpeningRace {
#[snafu(implicit)]
location: Location,
peer_id: DatanodeId,
region_id: RegionId,
@@ -57,42 +67,49 @@ pub enum Error {
#[snafu(display("Failed to init ddl manager"))]
InitDdlManager {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to create default catalog and schema"))]
InitMetadata {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to allocate next sequence number"))]
NextSequence {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to start telemetry task"))]
StartTelemetryTask {
#[snafu(implicit)]
location: Location,
source: common_runtime::error::Error,
},
#[snafu(display("Failed to submit ddl task"))]
SubmitDdlTask {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to invalidate table cache"))]
InvalidateTableCache {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to operate region on peer:{}", peer))]
OperateRegion {
#[snafu(implicit)]
location: Location,
peer: Peer,
source: BoxedError,
@@ -100,12 +117,14 @@ pub enum Error {
#[snafu(display("Failed to list catalogs"))]
ListCatalogs {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to list {}'s schemas", catalog))]
ListSchemas {
#[snafu(implicit)]
location: Location,
catalog: String,
source: BoxedError,
@@ -113,6 +132,7 @@ pub enum Error {
#[snafu(display("Failed to list {}.{}'s tables", catalog, schema))]
ListTables {
#[snafu(implicit)]
location: Location,
catalog: String,
schema: String,
@@ -121,13 +141,18 @@ pub enum Error {
#[snafu(display("Failed to join a future"))]
Join {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: JoinError,
},
#[snafu(display("Failed to execute transaction: {}", msg))]
Txn { location: Location, msg: String },
Txn {
#[snafu(implicit)]
location: Location,
msg: String,
},
#[snafu(display(
"Unexpected table_id changed, expected: {}, found: {}",
@@ -135,6 +160,7 @@ pub enum Error {
found,
))]
TableIdChanged {
#[snafu(implicit)]
location: Location,
expected: u64,
found: u64,
@@ -146,6 +172,7 @@ pub enum Error {
available
))]
NoEnoughAvailableDatanode {
#[snafu(implicit)]
location: Location,
required: usize,
available: usize,
@@ -153,6 +180,7 @@ pub enum Error {
#[snafu(display("Failed to request Datanode {}", peer))]
RequestDatanode {
#[snafu(implicit)]
location: Location,
peer: Peer,
source: client::Error,
@@ -166,18 +194,23 @@ pub enum Error {
#[snafu(display("Failed to shutdown {} server", server))]
ShutdownServer {
#[snafu(implicit)]
location: Location,
source: servers::error::Error,
server: String,
},
#[snafu(display("Empty key is not allowed"))]
EmptyKey { location: Location },
EmptyKey {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to execute via Etcd"))]
EtcdFailed {
#[snafu(source)]
error: etcd_client::Error,
#[snafu(implicit)]
location: Location,
},
@@ -185,6 +218,7 @@ pub enum Error {
ConnectEtcd {
#[snafu(source)]
error: etcd_client::Error,
#[snafu(implicit)]
location: Location,
},
@@ -193,6 +227,7 @@ pub enum Error {
addr: String,
#[snafu(source)]
error: std::io::Error,
#[snafu(implicit)]
location: Location,
},
@@ -206,15 +241,18 @@ pub enum Error {
StartGrpc {
#[snafu(source)]
error: tonic::transport::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to start http server"))]
StartHttp {
#[snafu(implicit)]
location: Location,
source: servers::error::Error,
},
#[snafu(display("Failed to init export metrics task"))]
InitExportMetricsTask {
#[snafu(implicit)]
location: Location,
source: servers::error::Error,
},
@@ -231,21 +269,37 @@ pub enum Error {
error: std::net::AddrParseError,
},
#[snafu(display("Empty table name"))]
EmptyTableName { location: Location },
EmptyTableName {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid datanode lease key: {}", key))]
InvalidLeaseKey { key: String, location: Location },
InvalidLeaseKey {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid datanode stat key: {}", key))]
InvalidStatKey { key: String, location: Location },
InvalidStatKey {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid inactive region key: {}", key))]
InvalidInactiveRegionKey { key: String, location: Location },
InvalidInactiveRegionKey {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse datanode lease key from utf8"))]
LeaseKeyFromUtf8 {
#[snafu(source)]
error: std::string::FromUtf8Error,
#[snafu(implicit)]
location: Location,
},
@@ -253,6 +307,7 @@ pub enum Error {
LeaseValueFromUtf8 {
#[snafu(source)]
error: std::string::FromUtf8Error,
#[snafu(implicit)]
location: Location,
},
@@ -260,6 +315,7 @@ pub enum Error {
StatKeyFromUtf8 {
#[snafu(source)]
error: std::string::FromUtf8Error,
#[snafu(implicit)]
location: Location,
},
@@ -267,6 +323,7 @@ pub enum Error {
StatValueFromUtf8 {
#[snafu(source)]
error: std::string::FromUtf8Error,
#[snafu(implicit)]
location: Location,
},
@@ -274,6 +331,7 @@ pub enum Error {
InvalidRegionKeyFromUtf8 {
#[snafu(source)]
error: std::string::FromUtf8Error,
#[snafu(implicit)]
location: Location,
},
@@ -282,6 +340,7 @@ pub enum Error {
input: String,
#[snafu(source)]
error: serde_json::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -290,6 +349,7 @@ pub enum Error {
input: String,
#[snafu(source)]
error: serde_json::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -298,6 +358,7 @@ pub enum Error {
err_msg: String,
#[snafu(source)]
error: std::num::ParseIntError,
#[snafu(implicit)]
location: Location,
},
@@ -306,20 +367,27 @@ pub enum Error {
err_msg: String,
#[snafu(source)]
error: std::str::ParseBoolError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid arguments: {}", err_msg))]
InvalidArguments { err_msg: String, location: Location },
InvalidArguments {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Cannot parse catalog value"))]
InvalidCatalogValue {
#[snafu(implicit)]
location: Location,
source: common_catalog::error::Error,
},
#[snafu(display("Cannot parse full table name"))]
InvalidFullTableName {
#[snafu(implicit)]
location: Location,
source: common_catalog::error::Error,
},
@@ -328,24 +396,28 @@ pub enum Error {
DecodeTableRoute {
#[snafu(source)]
error: prost::DecodeError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to find table route for {table_id}"))]
TableRouteNotFound {
table_id: TableId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to find table route for {region_id}"))]
RegionRouteNotFound {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table info not found: {}", table_id))]
TableInfoNotFound {
table_id: TableId,
#[snafu(implicit)]
location: Location,
},
@@ -353,6 +425,7 @@ pub enum Error {
DatanodeTableNotFound {
table_id: TableId,
datanode_id: DatanodeId,
#[snafu(implicit)]
location: Location,
},
@@ -360,35 +433,50 @@ pub enum Error {
CorruptedTableRoute {
key: String,
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Metasrv has no leader at this moment"))]
NoLeader { location: Location },
NoLeader {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table {} not found", name))]
TableNotFound { name: String, location: Location },
TableNotFound {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Failed to move the value of {} because other clients caused a race condition",
key
))]
MoveValue { key: String, location: Location },
MoveValue {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported selector type, {}", selector_type))]
UnsupportedSelectorType {
selector_type: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected, violated: {violated}"))]
Unexpected {
violated: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to create gRPC channel"))]
CreateChannel {
#[snafu(implicit)]
location: Location,
source: common_grpc::error::Error,
},
@@ -397,6 +485,7 @@ pub enum Error {
BatchGet {
#[snafu(source)]
error: tonic::Status,
#[snafu(implicit)]
location: Location,
},
@@ -404,15 +493,20 @@ pub enum Error {
Range {
#[snafu(source)]
error: tonic::Status,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Response header not found"))]
ResponseHeaderNotFound { location: Location },
ResponseHeaderNotFound {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("The requested meta node is not leader, node addr: {}", node_addr))]
IsNotLeader {
node_addr: String,
#[snafu(implicit)]
location: Location,
},
@@ -420,6 +514,7 @@ pub enum Error {
InvalidHttpBody {
#[snafu(source)]
error: http::Error,
#[snafu(implicit)]
location: Location,
},
@@ -431,6 +526,7 @@ pub enum Error {
ExceededRetryLimit {
func_name: String,
retry_num: usize,
#[snafu(implicit)]
location: Location,
},
@@ -438,6 +534,7 @@ pub enum Error {
Lock {
#[snafu(source)]
error: etcd_client::Error,
#[snafu(implicit)]
location: Location,
},
@@ -445,6 +542,7 @@ pub enum Error {
Unlock {
#[snafu(source)]
error: etcd_client::Error,
#[snafu(implicit)]
location: Location,
},
@@ -452,16 +550,21 @@ pub enum Error {
LeaseGrant {
#[snafu(source)]
error: etcd_client::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Distributed lock is not configured"))]
LockNotConfig { location: Location },
LockNotConfig {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid utf-8 value"))]
InvalidUtf8Value {
#[snafu(source)]
error: std::string::FromUtf8Error,
#[snafu(implicit)]
location: Location,
},
@@ -470,33 +573,42 @@ pub enum Error {
#[snafu(display("Failed to start procedure manager"))]
StartProcedureManager {
#[snafu(implicit)]
location: Location,
source: common_procedure::Error,
},
#[snafu(display("Failed to stop procedure manager"))]
StopProcedureManager {
#[snafu(implicit)]
location: Location,
source: common_procedure::Error,
},
#[snafu(display("Failed to wait procedure done"))]
WaitProcedure {
#[snafu(implicit)]
location: Location,
source: common_procedure::Error,
},
#[snafu(display("Failed to query procedure state"))]
QueryProcedure {
#[snafu(implicit)]
location: Location,
source: common_procedure::Error,
},
#[snafu(display("Procedure not found: {pid}"))]
ProcedureNotFound { location: Location, pid: String },
ProcedureNotFound {
#[snafu(implicit)]
location: Location,
pid: String,
},
#[snafu(display("Failed to submit procedure"))]
SubmitProcedure {
#[snafu(implicit)]
location: Location,
source: common_procedure::Error,
},
@@ -504,43 +616,63 @@ pub enum Error {
#[snafu(display("Schema already exists, name: {schema_name}"))]
SchemaAlreadyExists {
schema_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table already exists: {table_name}"))]
TableAlreadyExists {
table_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Pusher not found: {pusher_id}"))]
PusherNotFound {
pusher_id: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to push message: {err_msg}"))]
PushMessage { err_msg: String, location: Location },
PushMessage {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Mailbox already closed: {id}"))]
MailboxClosed { id: u64, location: Location },
MailboxClosed {
id: u64,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Mailbox timeout: {id}"))]
MailboxTimeout { id: u64, location: Location },
MailboxTimeout {
id: u64,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Mailbox receiver got an error: {id}, {err_msg}"))]
MailboxReceiver {
id: u64,
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing request header"))]
MissingRequestHeader { location: Location },
MissingRequestHeader {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to register procedure loader, type name: {}", type_name))]
RegisterProcedureLoader {
type_name: String,
#[snafu(implicit)]
location: Location,
source: common_procedure::error::Error,
},
@@ -548,6 +680,7 @@ pub enum Error {
#[snafu(display("Failed to find failover candidates for region: {}", failed_region))]
RegionFailoverCandidatesNotFound {
failed_region: String,
#[snafu(implicit)]
location: Location,
},
@@ -559,30 +692,42 @@ pub enum Error {
UnexpectedInstructionReply {
mailbox_message: String,
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Expected to retry later, reason: {}", reason))]
RetryLater { reason: String, location: Location },
RetryLater {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Expected to retry later, reason: {}", reason))]
RetryLaterWithSource {
reason: String,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to update table metadata, err_msg: {}", err_msg))]
UpdateTableMetadata { err_msg: String, location: Location },
UpdateTableMetadata {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert table route"))]
TableRouteConversion {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to convert proto data"))]
ConvertProtoData {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
@@ -592,49 +737,63 @@ pub enum Error {
#[snafu(display("Other error"))]
Other {
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table metadata manager error"))]
TableMetadataManager {
source: common_meta::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Keyvalue backend error"))]
KvBackend {
source: common_meta::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to update table route"))]
UpdateTableRoute {
source: common_meta::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to get table info error"))]
GetFullTableInfo {
source: common_meta::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid heartbeat request: {}", err_msg))]
InvalidHeartbeatRequest { err_msg: String, location: Location },
InvalidHeartbeatRequest {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to publish message"))]
PublishMessage {
#[snafu(source)]
error: SendError<Message>,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Too many partitions"))]
TooManyPartitions { location: Location },
TooManyPartitions {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported operation {}", operation))]
Unsupported {
operation: String,
#[snafu(implicit)]
location: Location,
},
@@ -642,14 +801,19 @@ pub enum Error {
WeightArray {
#[snafu(source)]
error: WeightedError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Weight array is not set"))]
NotSetWeightArray { location: Location },
NotSetWeightArray {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected table route type: {}", err_msg))]
UnexpectedLogicalRouteTable {
#[snafu(implicit)]
location: Location,
err_msg: String,
source: common_meta::error::Error,
@@ -657,12 +821,14 @@ pub enum Error {
#[snafu(display("Failed to save cluster info"))]
SaveClusterInfo {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Invalid cluster info format"))]
InvalidClusterInfoFormat {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},

View File

@@ -27,12 +27,17 @@ use store_api::storage::RegionId;
#[stack_trace_debug]
pub enum Error {
#[snafu(display("Missing internal column {} in physical metric table", column))]
MissingInternalColumn { column: String, location: Location },
MissingInternalColumn {
column: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to create mito region, region type: {}", region_type))]
CreateMitoRegion {
region_type: String,
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
@@ -40,6 +45,7 @@ pub enum Error {
OpenMitoRegion {
region_type: String,
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
@@ -47,12 +53,14 @@ pub enum Error {
CloseMitoRegion {
region_id: RegionId,
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Region `{}` already exists", region_id))]
RegionAlreadyExists {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
@@ -61,6 +69,7 @@ pub enum Error {
raw: String,
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
@@ -69,6 +78,7 @@ pub enum Error {
raw: String,
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
@@ -76,6 +86,7 @@ pub enum Error {
SerializeColumnMetadata {
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
@@ -83,6 +94,7 @@ pub enum Error {
DecodeColumnValue {
#[snafu(source)]
error: base64::DecodeError,
#[snafu(implicit)]
location: Location,
},
@@ -91,45 +103,61 @@ pub enum Error {
raw: String,
#[snafu(source)]
error: <u64 as std::str::FromStr>::Err,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Mito read operation fails"))]
MitoReadOperation {
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Mito write operation fails"))]
MitoWriteOperation {
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to collect record batch stream"))]
CollectRecordBatchStream {
source: common_recordbatch::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Internal column {} is reserved", column))]
InternalColumnOccupied { column: String, location: Location },
InternalColumnOccupied {
column: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Required table option is missing"))]
MissingRegionOption { location: Location },
MissingRegionOption {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Region options are conflicted"))]
ConflictRegionOption { location: Location },
ConflictRegionOption {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Physical region {} not found", region_id))]
PhysicalRegionNotFound {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Logical region {} not found", region_id))]
LogicalRegionNotFound {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
@@ -137,6 +165,7 @@ pub enum Error {
ColumnTypeMismatch {
expect: ConcreteDataType,
actual: ConcreteDataType,
#[snafu(implicit)]
location: Location,
},
@@ -144,15 +173,20 @@ pub enum Error {
ColumnNotFound {
name: String,
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Alter request to physical region is forbidden"))]
ForbiddenPhysicalAlter { location: Location },
ForbiddenPhysicalAlter {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid region metadata"))]
InvalidMetadata {
source: store_api::metadata::MetadataError,
#[snafu(implicit)]
location: Location,
},
@@ -162,12 +196,14 @@ pub enum Error {
))]
PhysicalRegionBusy {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported region request: {}", request))]
UnsupportedRegionRequest {
request: RegionRequest,
#[snafu(implicit)]
location: Location,
},
@@ -175,14 +211,22 @@ pub enum Error {
MultipleFieldColumn {
previous: String,
current: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Adding field column {} to physical table", name))]
AddingFieldColumn { name: String, location: Location },
AddingFieldColumn {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("No field column found"))]
NoFieldColumn { location: Location },
NoFieldColumn {
#[snafu(implicit)]
location: Location,
},
}
pub type Result<T, E = Error> = std::result::Result<T, E>;

View File

@@ -42,6 +42,7 @@ pub enum Error {
region_id, expected_last_entry_id, replayed_last_entry_id
))]
UnexpectedReplay {
#[snafu(implicit)]
location: Location,
region_id: RegionId,
expected_last_entry_id: u64,
@@ -50,6 +51,7 @@ pub enum Error {
#[snafu(display("OpenDAL operator failed"))]
OpenDal {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: object_store::Error,
@@ -73,6 +75,7 @@ pub enum Error {
#[snafu(display("Failed to ser/de json object"))]
SerdeJson {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: serde_json::Error,
@@ -82,47 +85,64 @@ pub enum Error {
InvalidScanIndex {
start: ManifestVersion,
end: ManifestVersion,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid UTF-8 content"))]
Utf8 {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: std::str::Utf8Error,
},
#[snafu(display("Cannot find RegionMetadata"))]
RegionMetadataNotFound { location: Location },
RegionMetadataNotFound {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to join handle"))]
Join {
#[snafu(source)]
error: common_runtime::JoinError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Worker {} is stopped", id))]
WorkerStopped { id: WorkerId, location: Location },
WorkerStopped {
id: WorkerId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to recv result"))]
Recv {
#[snafu(source)]
error: tokio::sync::oneshot::error::RecvError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid metadata, {}", reason))]
InvalidMeta { reason: String, location: Location },
InvalidMeta {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid region metadata"))]
InvalidMetadata {
source: store_api::metadata::MetadataError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to create RecordBatch from vectors"))]
NewRecordBatch {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: ArrowError,
@@ -130,6 +150,7 @@ pub enum Error {
#[snafu(display("Failed to write to buffer"))]
WriteBuffer {
#[snafu(implicit)]
location: Location,
source: common_datasource::error::Error,
},
@@ -139,18 +160,21 @@ pub enum Error {
path: String,
#[snafu(source)]
error: parquet::errors::ParquetError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Region {} not found", region_id))]
RegionNotFound {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Object store not found: {}", object_store))]
ObjectStoreNotFound {
object_store: String,
#[snafu(implicit)]
location: Location,
},
@@ -158,6 +182,7 @@ pub enum Error {
RegionCorrupted {
region_id: RegionId,
reason: String,
#[snafu(implicit)]
location: Location,
},
@@ -165,6 +190,7 @@ pub enum Error {
InvalidRequest {
region_id: RegionId,
reason: String,
#[snafu(implicit)]
location: Location,
},
@@ -175,6 +201,7 @@ pub enum Error {
ConvertColumnDataType {
reason: String,
source: api::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -200,6 +227,7 @@ pub enum Error {
#[snafu(display("Failed to encode WAL entry, region_id: {}", region_id))]
EncodeWal {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: EncodeError,
@@ -207,6 +235,7 @@ pub enum Error {
#[snafu(display("Failed to write WAL"))]
WriteWal {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -214,6 +243,7 @@ pub enum Error {
#[snafu(display("Failed to read WAL, region_id: {}", region_id))]
ReadWal {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -221,6 +251,7 @@ pub enum Error {
#[snafu(display("Failed to decode WAL entry, region_id: {}", region_id))]
DecodeWal {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: DecodeError,
@@ -229,6 +260,7 @@ pub enum Error {
#[snafu(display("Failed to delete WAL, region_id: {}", region_id))]
DeleteWal {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -244,6 +276,7 @@ pub enum Error {
SerializeField {
#[snafu(source)]
error: memcomparable::Error,
#[snafu(implicit)]
location: Location,
},
@@ -253,6 +286,7 @@ pub enum Error {
))]
NotSupportedField {
data_type: ConcreteDataType,
#[snafu(implicit)]
location: Location,
},
@@ -260,6 +294,7 @@ pub enum Error {
DeserializeField {
#[snafu(source)]
error: memcomparable::Error,
#[snafu(implicit)]
location: Location,
},
@@ -267,23 +302,34 @@ pub enum Error {
InvalidParquet {
file: String,
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid batch, {}", reason))]
InvalidBatch { reason: String, location: Location },
InvalidBatch {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid arrow record batch, {}", reason))]
InvalidRecordBatch { reason: String, location: Location },
InvalidRecordBatch {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert array to vector"))]
ConvertVector {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
#[snafu(display("Failed to compute arrow arrays"))]
ComputeArrow {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: datatypes::arrow::error::ArrowError,
@@ -291,6 +337,7 @@ pub enum Error {
#[snafu(display("Failed to compute vector"))]
ComputeVector {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
@@ -299,19 +346,27 @@ pub enum Error {
PrimaryKeyLengthMismatch {
expect: usize,
actual: usize,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid sender",))]
InvalidSender { location: Location },
InvalidSender {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid scheduler state"))]
InvalidSchedulerState { location: Location },
InvalidSchedulerState {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to stop scheduler"))]
StopScheduler {
#[snafu(source)]
error: JoinError,
#[snafu(implicit)]
location: Location,
},
@@ -320,6 +375,7 @@ pub enum Error {
file_id: FileId,
#[snafu(source)]
error: object_store::Error,
#[snafu(implicit)]
location: Location,
},
@@ -328,6 +384,7 @@ pub enum Error {
file_id: FileId,
#[snafu(source)]
error: object_store::Error,
#[snafu(implicit)]
location: Location,
},
@@ -335,24 +392,28 @@ pub enum Error {
FlushRegion {
region_id: RegionId,
source: Arc<Error>,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Region {} is dropped", region_id))]
RegionDropped {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Region {} is closed", region_id))]
RegionClosed {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Region {} is truncated", region_id))]
RegionTruncated {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
@@ -362,6 +423,7 @@ pub enum Error {
))]
RejectWrite {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
@@ -369,6 +431,7 @@ pub enum Error {
CompactRegion {
region_id: RegionId,
source: Arc<Error>,
#[snafu(implicit)]
location: Location,
},
@@ -380,12 +443,14 @@ pub enum Error {
CompatReader {
region_id: RegionId,
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalue region req"))]
InvalidRegionRequest {
source: store_api::metadata::MetadataError,
#[snafu(implicit)]
location: Location,
},
@@ -393,6 +458,7 @@ pub enum Error {
InvalidRegionRequestSchemaVersion {
expect: u64,
actual: u64,
#[snafu(implicit)]
location: Location,
},
@@ -401,6 +467,7 @@ pub enum Error {
region_id: RegionId,
state: RegionState,
expect: RegionState,
#[snafu(implicit)]
location: Location,
},
@@ -408,6 +475,7 @@ pub enum Error {
JsonOptions {
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
@@ -419,12 +487,14 @@ pub enum Error {
EmptyRegionDir {
region_id: RegionId,
region_dir: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Empty manifest directory, manifest_dir: {}", manifest_dir,))]
EmptyManifestDir {
manifest_dir: String,
#[snafu(implicit)]
location: Location,
},
@@ -433,79 +503,98 @@ pub enum Error {
path: String,
#[snafu(source)]
error: ArrowError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid file metadata"))]
ConvertMetaData {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: parquet::errors::ParquetError,
},
#[snafu(display("Column not found, column: {column}"))]
ColumnNotFound { column: String, location: Location },
ColumnNotFound {
column: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build index applier"))]
BuildIndexApplier {
source: index::inverted_index::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert value"))]
ConvertValue {
source: datatypes::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to apply index"))]
ApplyIndex {
source: index::inverted_index::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to push index value"))]
PushIndexValue {
source: index::inverted_index::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to write index completely"))]
IndexFinish {
source: index::inverted_index::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Operate on aborted index"))]
OperateAbortedIndex { location: Location },
OperateAbortedIndex {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to read puffin metadata"))]
PuffinReadMetadata {
source: puffin::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to read puffin blob"))]
PuffinReadBlob {
source: puffin::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Blob type not found, blob_type: {blob_type}"))]
PuffinBlobTypeNotFound {
blob_type: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to write puffin completely"))]
PuffinFinish {
source: puffin::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to add blob to puffin file"))]
PuffinAddBlob {
source: puffin::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -514,11 +603,16 @@ pub enum Error {
dir: String,
#[snafu(source)]
error: std::io::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid config, {reason}"))]
InvalidConfig { reason: String, location: Location },
InvalidConfig {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Stale log entry found during replay, region: {}, flushed: {}, replayed: {}",
@@ -544,12 +638,14 @@ pub enum Error {
file_type: FileType,
#[snafu(source)]
error: std::io::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to filter record batch"))]
FilterRecordBatch {
source: common_recordbatch::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -557,16 +653,21 @@ pub enum Error {
BiError {
first: Box<Error>,
second: Box<Error>,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Encode null value"))]
IndexEncodeNull { location: Location },
IndexEncodeNull {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to encode memtable to Parquet bytes"))]
EncodeMemtable {
#[snafu(source)]
error: parquet::errors::ParquetError,
#[snafu(implicit)]
location: Location,
},
@@ -577,7 +678,11 @@ pub enum Error {
},
#[snafu(display("Invalid region options, {}", reason))]
InvalidRegionOptions { reason: String, location: Location },
InvalidRegionOptions {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("checksum mismatch (actual: {}, expected: {})", actual, expected))]
ChecksumMismatch { actual: u32, expected: u32 },
@@ -585,6 +690,7 @@ pub enum Error {
#[snafu(display("Region {} is stopped", region_id))]
RegionStopped {
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -29,16 +29,22 @@ use sql::ast::Value;
#[stack_trace_debug]
pub enum Error {
#[snafu(display("Table already exists: `{}`", table))]
TableAlreadyExists { table: String, location: Location },
TableAlreadyExists {
table: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to invalidate table cache"))]
InvalidateTableCache {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to execute ddl"))]
ExecuteDdl {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
@@ -46,38 +52,47 @@ pub enum Error {
#[snafu(display("Unexpected, violated: {}", violated))]
Unexpected {
violated: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("external error"))]
External {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to insert data"))]
RequestInserts {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to delete data"))]
RequestDeletes {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Failed to send request to region"))]
RequestRegion {
#[snafu(implicit)]
location: Location,
source: common_meta::error::Error,
},
#[snafu(display("Unsupported region request"))]
UnsupportedRegionRequest { location: Location },
UnsupportedRegionRequest {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse SQL"))]
ParseSql {
#[snafu(implicit)]
location: Location,
source: sql::error::Error,
},
@@ -85,6 +100,7 @@ pub enum Error {
#[snafu(display("Failed to convert identifier: {}", ident))]
ConvertIdentifier {
ident: String,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: datafusion::error::DataFusionError,
@@ -93,12 +109,14 @@ pub enum Error {
#[snafu(display("Failed to convert value to sql value: {}", value))]
ConvertSqlValue {
value: Value,
#[snafu(implicit)]
location: Location,
source: sql::error::Error,
},
#[snafu(display("Column datatype error"))]
ColumnDataType {
#[snafu(implicit)]
location: Location,
source: api::error::Error,
},
@@ -106,6 +124,7 @@ pub enum Error {
#[snafu(display("Invalid column proto definition, column: {}", column))]
InvalidColumnDef {
column: String,
#[snafu(implicit)]
location: Location,
source: api::error::Error,
},
@@ -113,18 +132,31 @@ pub enum Error {
#[snafu(display("Failed to convert column default constraint, column: {}", column_name))]
ConvertColumnDefaultConstraint {
column_name: String,
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
#[snafu(display("Invalid SQL, error: {}", err_msg))]
InvalidSql { err_msg: String, location: Location },
InvalidSql {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid InsertRequest, reason: {}", reason))]
InvalidInsertRequest { reason: String, location: Location },
InvalidInsertRequest {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid DeleteRequest, reason: {}", reason))]
InvalidDeleteRequest { reason: String, location: Location },
InvalidDeleteRequest {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table not found: {}", table_name))]
TableNotFound { table_name: String },
@@ -136,11 +168,13 @@ pub enum Error {
JoinTask {
#[snafu(source)]
error: common_runtime::JoinError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("General catalog error"))]
Catalog {
#[snafu(implicit)]
location: Location,
source: catalog::error::Error,
},
@@ -148,6 +182,7 @@ pub enum Error {
#[snafu(display("Failed to find table partition rule for table {}", table_name))]
FindTablePartitionRule {
table_name: String,
#[snafu(implicit)]
location: Location,
source: partition::error::Error,
},
@@ -155,29 +190,34 @@ pub enum Error {
#[snafu(display("Failed to split insert request"))]
SplitInsert {
source: partition::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to split delete request"))]
SplitDelete {
source: partition::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to find leader for region"))]
FindRegionLeader {
source: partition::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to create table info"))]
CreateTableInfo {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
#[snafu(display("Failed to build CreateExpr on insertion"))]
BuildCreateExprOnInsertion {
#[snafu(implicit)]
location: Location,
source: common_grpc_expr::error::Error,
},
@@ -185,41 +225,55 @@ pub enum Error {
#[snafu(display("Failed to find schema, schema info: {}", schema_info))]
SchemaNotFound {
schema_info: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Schema {} already exists", name))]
SchemaExists { name: String, location: Location },
SchemaExists {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table occurs error"))]
Table {
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
#[snafu(display("Cannot find column by name: {}", msg))]
ColumnNotFound { msg: String, location: Location },
ColumnNotFound {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to execute statement"))]
ExecuteStatement {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("Failed to plan statement"))]
PlanStatement {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("Failed to parse query"))]
ParseQuery {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("Failed to execute logical plan"))]
ExecLogicalPlan {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
@@ -228,11 +282,13 @@ pub enum Error {
BuildDfLogicalPlan {
#[snafu(source)]
error: datafusion_common::DataFusionError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert AlterExpr to AlterRequest"))]
AlterExprToRequest {
#[snafu(implicit)]
location: Location,
source: common_grpc_expr::error::Error,
},
@@ -242,6 +298,7 @@ pub enum Error {
table_name: String,
#[snafu(source)]
error: table::metadata::TableMetaBuilderError,
#[snafu(implicit)]
location: Location,
},
@@ -250,45 +307,56 @@ pub enum Error {
#[snafu(display("Failed to find new columns on insertion"))]
FindNewColumnsOnInsertion {
#[snafu(implicit)]
location: Location,
source: common_grpc_expr::error::Error,
},
#[snafu(display("Failed to convert into vectors"))]
IntoVectors {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
#[snafu(display("Failed to deserialize partition in meta to partition def"))]
DeserializePartition {
#[snafu(implicit)]
location: Location,
source: partition::error::Error,
},
#[snafu(display("Failed to describe schema for given statement"))]
DescribeStatement {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("Illegal primary keys definition: {}", msg))]
IllegalPrimaryKeysDef { msg: String, location: Location },
IllegalPrimaryKeysDef {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unrecognized table option"))]
UnrecognizedTableOption {
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
#[snafu(display("Missing time index column"))]
MissingTimeIndexColumn {
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
#[snafu(display("Failed to build regex"))]
BuildRegex {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: regex::Error,
@@ -297,6 +365,7 @@ pub enum Error {
#[snafu(display("Failed to copy table: {}", table_name))]
CopyTable {
table_name: String,
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
@@ -304,33 +373,42 @@ pub enum Error {
#[snafu(display("Failed to insert value into table: {}", table_name))]
Insert {
table_name: String,
#[snafu(implicit)]
location: Location,
source: table::error::Error,
},
#[snafu(display("Failed to parse data source url"))]
ParseUrl {
#[snafu(implicit)]
location: Location,
source: common_datasource::error::Error,
},
#[snafu(display("Unsupported format: {:?}", format))]
UnsupportedFormat { location: Location, format: Format },
UnsupportedFormat {
#[snafu(implicit)]
location: Location,
format: Format,
},
#[snafu(display("Failed to parse file format"))]
ParseFileFormat {
#[snafu(implicit)]
location: Location,
source: common_datasource::error::Error,
},
#[snafu(display("Failed to build data source backend"))]
BuildBackend {
#[snafu(implicit)]
location: Location,
source: common_datasource::error::Error,
},
#[snafu(display("Failed to list objects"))]
ListObjects {
#[snafu(implicit)]
location: Location,
source: common_datasource::error::Error,
},
@@ -338,6 +416,7 @@ pub enum Error {
#[snafu(display("Failed to infer schema from path: {}", path))]
InferSchema {
path: String,
#[snafu(implicit)]
location: Location,
source: common_datasource::error::Error,
},
@@ -346,12 +425,14 @@ pub enum Error {
BuildCsvConfig {
#[snafu(source)]
error: common_datasource::file_format::csv::CsvConfigBuilderError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to write stream to path: {}", path))]
WriteStreamToFile {
path: String,
#[snafu(implicit)]
location: Location,
source: common_datasource::error::Error,
},
@@ -359,6 +440,7 @@ pub enum Error {
#[snafu(display("Failed to read object in path: {}", path))]
ReadObject {
path: String,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: object_store::Error,
@@ -368,6 +450,7 @@ pub enum Error {
ReadDfRecordBatch {
#[snafu(source)]
error: datafusion::error::DataFusionError,
#[snafu(implicit)]
location: Location,
},
@@ -375,17 +458,20 @@ pub enum Error {
ReadParquetMetadata {
#[snafu(source)]
error: parquet::errors::ParquetError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to read orc schema"))]
ReadOrc {
source: common_datasource::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build parquet record batch stream"))]
BuildParquetRecordBatchStream {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: parquet::errors::ParquetError,
@@ -393,6 +479,7 @@ pub enum Error {
#[snafu(display("Failed to build file stream"))]
BuildFileStream {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: datafusion::error::DataFusionError,
@@ -408,6 +495,7 @@ pub enum Error {
index: usize,
table_schema: String,
file_schema: String,
#[snafu(implicit)]
location: Location,
},
@@ -415,6 +503,7 @@ pub enum Error {
ProjectSchema {
#[snafu(source)]
error: ArrowError,
#[snafu(implicit)]
location: Location,
},
@@ -422,11 +511,13 @@ pub enum Error {
EncodeJson {
#[snafu(source)]
error: serde_json::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to prepare immutable table"))]
PrepareImmutableTable {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
@@ -435,45 +526,56 @@ pub enum Error {
InvalidCopyParameter {
key: String,
value: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid COPY DATABASE location, must end with '/': {}", value))]
InvalidCopyDatabasePath { value: String, location: Location },
InvalidCopyDatabasePath {
value: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table metadata manager error"))]
TableMetadataManager {
source: common_meta::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to read record batch"))]
ReadRecordBatch {
source: common_recordbatch::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build column vectors"))]
BuildColumnVectors {
source: common_recordbatch::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing insert body"))]
MissingInsertBody {
source: sql::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse sql value"))]
ParseSqlValue {
source: sql::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build default value, column: {}", column))]
ColumnDefaultValue {
column: String,
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
@@ -482,7 +584,11 @@ pub enum Error {
"No valid default value can be built automatically, column: {}",
column,
))]
ColumnNoneDefaultValue { column: String, location: Location },
ColumnNoneDefaultValue {
column: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Invalid partition columns when creating table '{}', reason: {}",
@@ -492,23 +598,27 @@ pub enum Error {
InvalidPartitionColumns {
table: String,
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to prepare file table"))]
PrepareFileTable {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("Failed to infer file table schema"))]
InferFileTableSchema {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
#[snafu(display("The schema of the file table is incompatible with the table schema"))]
SchemaIncompatible {
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
@@ -516,33 +626,49 @@ pub enum Error {
#[snafu(display("Invalid table name: {}", table_name))]
InvalidTableName {
table_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Do not support {} in multiple catalogs", ddl_name))]
DdlWithMultiCatalogs {
ddl_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Do not support {} in multiple schemas", ddl_name))]
DdlWithMultiSchemas {
ddl_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Empty {} expr", name))]
EmptyDdlExpr { name: String, location: Location },
EmptyDdlExpr {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to create logical tables: {}", reason))]
CreateLogicalTables { reason: String, location: Location },
CreateLogicalTables {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid partition rule: {}", reason))]
InvalidPartitionRule { reason: String, location: Location },
InvalidPartitionRule {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid configuration value."))]
InvalidConfigValue {
source: session::session_config::Error,
#[snafu(implicit)]
location: Location,
},
@@ -550,6 +676,7 @@ pub enum Error {
InvalidTimestampRange {
start: String,
end: String,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -32,22 +32,29 @@ pub enum Error {
#[snafu(display("Table route manager error"))]
TableRouteManager {
source: common_meta::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to get meta info from cache, error: {}", err_msg))]
GetCache { err_msg: String, location: Location },
GetCache {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to find Datanode, table id: {}, region: {}", table_id, region))]
FindDatanode {
table_id: TableId,
region: RegionNumber,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to find table routes for table id {}", table_id))]
FindTableRoutes {
table_id: TableId,
#[snafu(implicit)]
location: Location,
},
@@ -59,6 +66,7 @@ pub enum Error {
FindRegionRoutes {
table_id: TableId,
region_id: u64,
#[snafu(implicit)]
location: Location,
},
@@ -66,6 +74,7 @@ pub enum Error {
SerializeJson {
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
@@ -73,6 +82,7 @@ pub enum Error {
DeserializeJson {
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
@@ -83,34 +93,50 @@ pub enum Error {
RegionKeysSize {
expect: usize,
actual: usize,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to find region, reason: {}", reason))]
FindRegion { reason: String, location: Location },
FindRegion {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to find regions by filters: {:?}", filters))]
FindRegions {
filters: Vec<Expr>,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid InsertRequest, reason: {}", reason))]
InvalidInsertRequest { reason: String, location: Location },
InvalidInsertRequest {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid DeleteRequest, reason: {}", reason))]
InvalidDeleteRequest { reason: String, location: Location },
InvalidDeleteRequest {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid table route data, table id: {}, msg: {}", table_id, err_msg))]
InvalidTableRouteData {
table_id: TableId,
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert DataFusion's ScalarValue: {:?}", value))]
ConvertScalarValue {
value: ScalarValue,
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
@@ -119,11 +145,13 @@ pub enum Error {
FindLeader {
table_id: TableId,
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected table route type: {}", err_msg))]
UnexpectedLogicalRouteTable {
#[snafu(implicit)]
location: Location,
err_msg: String,
source: common_meta::error::Error,
@@ -132,6 +160,7 @@ pub enum Error {
#[snafu(display("Conjunct expr with non-expr is invalid"))]
ConjunctExprWithNonExpr {
expr: PartitionExpr,
#[snafu(implicit)]
location: Location,
},
@@ -139,17 +168,23 @@ pub enum Error {
UnclosedValue {
value: String,
column: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid partition expr: {:?}", expr))]
InvalidExpr {
expr: PartitionExpr,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Undefined column: {}", column))]
UndefinedColumn { column: String, location: Location },
UndefinedColumn {
column: String,
#[snafu(implicit)]
location: Location,
},
}
impl ErrorExt for Error {

View File

@@ -26,17 +26,23 @@ use snafu::{Location, Snafu};
#[stack_trace_debug]
pub enum Error {
#[snafu(display("Unsupported expr type: {}", name))]
UnsupportedExpr { name: String, location: Location },
UnsupportedExpr {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported vector matches: {:?}", name))]
UnsupportedVectorMatch {
name: VectorMatchCardinality,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected token: {:?}", token))]
UnexpectedToken {
token: TokenType,
#[snafu(implicit)]
location: Location,
},
@@ -44,29 +50,53 @@ pub enum Error {
DataFusionPlanning {
#[snafu(source)]
error: datafusion::error::DataFusionError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected plan or expression: {}", desc))]
UnexpectedPlanExpr { desc: String, location: Location },
UnexpectedPlanExpr {
desc: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unknown table type, downcast failed"))]
UnknownTable { location: Location },
UnknownTable {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Cannot find time index column in table {}", table))]
TimeIndexNotFound { table: String, location: Location },
TimeIndexNotFound {
table: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Cannot find value columns in table {}", table))]
ValueNotFound { table: String, location: Location },
ValueNotFound {
table: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Cannot accept multiple vector as function input, PromQL expr: {:?}",
expr,
))]
MultipleVector { expr: PromExpr, location: Location },
MultipleVector {
expr: PromExpr,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Expect a PromQL expr but not found, input expr: {:?}", expr))]
ExpectExpr { expr: PromExpr, location: Location },
ExpectExpr {
expr: PromExpr,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Illegal range: offset {}, length {}, array len {}",
offset,
@@ -77,6 +107,7 @@ pub enum Error {
offset: u32,
length: u32,
len: usize,
#[snafu(implicit)]
location: Location,
},
@@ -84,40 +115,68 @@ pub enum Error {
Deserialize {
#[snafu(source)]
error: prost::DecodeError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Empty range is not expected"))]
EmptyRange { location: Location },
EmptyRange {
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Table (metric) name not found, this indicates a procedure error in PromQL planner"
))]
TableNameNotFound { location: Location },
TableNameNotFound {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("General catalog error: "))]
Catalog {
#[snafu(implicit)]
location: Location,
source: catalog::error::Error,
},
#[snafu(display("Expect a range selector, but not found"))]
ExpectRangeSelector { location: Location },
ExpectRangeSelector {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Zero range in range selector"))]
ZeroRangeSelector { location: Location },
ZeroRangeSelector {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Cannot find column {col}"))]
ColumnNotFound { col: String, location: Location },
ColumnNotFound {
col: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Found multiple metric matchers in selector"))]
MultipleMetricMatchers { location: Location },
MultipleMetricMatchers {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Expect a metric matcher, but not found"))]
NoMetricMatcher { location: Location },
NoMetricMatcher {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid function argument for {}", fn_name))]
FunctionInvalidArgument { fn_name: String, location: Location },
FunctionInvalidArgument {
fn_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Attempt to combine two tables with different column sets, left: {:?}, right: {:?}",
@@ -127,12 +186,14 @@ pub enum Error {
CombineTableColumnMismatch {
left: Vec<String>,
right: Vec<String>,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Multi fields calculation is not supported in {}", operator))]
MultiFieldsNotSupported {
operator: String,
#[snafu(implicit)]
location: Location,
},
@@ -140,6 +201,7 @@ pub enum Error {
UnsupportedMatcherOp {
matcher_op: String,
matcher: String,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -28,6 +28,7 @@ pub enum Error {
Seek {
#[snafu(source)]
error: IoError,
#[snafu(implicit)]
location: Location,
},
@@ -35,6 +36,7 @@ pub enum Error {
Read {
#[snafu(source)]
error: IoError,
#[snafu(implicit)]
location: Location,
},
@@ -42,6 +44,7 @@ pub enum Error {
Write {
#[snafu(source)]
error: IoError,
#[snafu(implicit)]
location: Location,
},
@@ -49,6 +52,7 @@ pub enum Error {
Flush {
#[snafu(source)]
error: IoError,
#[snafu(implicit)]
location: Location,
},
@@ -56,22 +60,28 @@ pub enum Error {
Close {
#[snafu(source)]
error: IoError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Magic not matched"))]
MagicNotMatched { location: Location },
MagicNotMatched {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert bytes to integer"))]
BytesToInteger {
#[snafu(source)]
error: std::array::TryFromSliceError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported decompression: {}", decompression))]
UnsupportedDecompression {
decompression: String,
#[snafu(implicit)]
location: Location,
},
@@ -79,6 +89,7 @@ pub enum Error {
SerializeJson {
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
@@ -86,6 +97,7 @@ pub enum Error {
DeserializeJson {
#[snafu(source)]
error: serde_json::Error,
#[snafu(implicit)]
location: Location,
},
@@ -93,11 +105,16 @@ pub enum Error {
ParseStageNotMatch {
expected: String,
actual: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unexpected footer payload size: {}", size))]
UnexpectedFooterPayloadSize { size: i32, location: Location },
UnexpectedFooterPayloadSize {
size: i32,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Unexpected puffin file size, min: {}, actual: {}",
@@ -107,14 +124,23 @@ pub enum Error {
UnexpectedPuffinFileSize {
min_file_size: u64,
actual_file_size: u64,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid blob offset: {}, location: {:?}", offset, location))]
InvalidBlobOffset { offset: i64, location: Location },
InvalidBlobOffset {
offset: i64,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid blob area end: {}, location: {:?}", offset, location))]
InvalidBlobAreaEnd { offset: u64, location: Location },
InvalidBlobAreaEnd {
offset: u64,
#[snafu(implicit)]
location: Location,
},
}
impl ErrorExt for Error {

View File

@@ -29,26 +29,33 @@ pub enum InnerError {
Datafusion {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("PhysicalPlan downcast failed"))]
PhysicalPlanDowncast { location: Location },
PhysicalPlanDowncast {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Fail to convert arrow schema"))]
ConvertSchema {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
#[snafu(display("Failed to convert DataFusion's recordbatch stream"))]
ConvertDfRecordBatchStream {
#[snafu(implicit)]
location: Location,
source: common_recordbatch::error::Error,
},
#[snafu(display("Failed to execute physical plan"))]
ExecutePhysicalPlan {
#[snafu(implicit)]
location: Location,
source: common_query::error::Error,
},

View File

@@ -29,47 +29,72 @@ use store_api::storage::RegionId;
#[stack_trace_debug]
pub enum Error {
#[snafu(display("Unsupported expr type: {}", name))]
UnsupportedExpr { name: String, location: Location },
UnsupportedExpr {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unsupported show variable: {}", name))]
UnsupportedVariable { name: String, location: Location },
UnsupportedVariable {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Operation {} not implemented yet", operation))]
Unimplemented {
operation: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("General catalog error"))]
Catalog {
source: catalog::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Catalog not found: {}", catalog))]
CatalogNotFound { catalog: String, location: Location },
CatalogNotFound {
catalog: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Schema not found: {}", schema))]
SchemaNotFound { schema: String, location: Location },
SchemaNotFound {
schema: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table not found: {}", table))]
TableNotFound { table: String, location: Location },
TableNotFound {
table: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to create RecordBatch"))]
CreateRecordBatch {
source: common_recordbatch::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failure during query execution"))]
QueryExecution {
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failure during query planning"))]
QueryPlan {
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
@@ -77,6 +102,7 @@ pub enum Error {
QueryParse {
query: String,
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
@@ -84,15 +110,21 @@ pub enum Error {
QueryAccessDenied {
catalog: String,
schema: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("The SQL string has multiple statements, query: {}", query))]
MultipleStatements { query: String, location: Location },
MultipleStatements {
query: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert Datafusion schema"))]
ConvertDatafusionSchema {
source: datatypes::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -101,17 +133,23 @@ pub enum Error {
raw: String,
#[snafu(source)]
error: chrono::ParseError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid timestamp `{}`", raw))]
InvalidTimestamp { raw: String, location: Location },
InvalidTimestamp {
raw: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse float number `{}`", raw))]
ParseFloat {
raw: String,
#[snafu(source)]
error: std::num::ParseFloatError,
#[snafu(implicit)]
location: Location,
},
@@ -119,17 +157,20 @@ pub enum Error {
DataFusion {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to encode Substrait logical plan"))]
EncodeSubstraitLogicalPlan {
source: substrait::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("General SQL error"))]
Sql {
#[snafu(implicit)]
location: Location,
source: sql::error::Error,
},
@@ -138,12 +179,14 @@ pub enum Error {
PlanSql {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Timestamp column for table '{table_name}' is missing!"))]
MissingTimestampColumn {
table_name: String,
#[snafu(implicit)]
location: Location,
},
@@ -151,6 +194,7 @@ pub enum Error {
ConvertSqlValue {
value: Value,
source: sql::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -158,14 +202,20 @@ pub enum Error {
ConvertSqlType {
datatype: ConcreteDataType,
source: sql::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing required field: {}", name))]
MissingRequiredField { name: String, location: Location },
MissingRequiredField {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to regex"))]
BuildRegex {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: regex::Error,
@@ -174,41 +224,54 @@ pub enum Error {
#[snafu(display("Failed to build data source backend"))]
BuildBackend {
source: common_datasource::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to list objects"))]
ListObjects {
source: common_datasource::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse file format"))]
ParseFileFormat {
source: common_datasource::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to infer schema"))]
InferSchema {
source: common_datasource::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert datafusion schema"))]
ConvertSchema {
source: datatypes::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unknown table type, downcast failed"))]
UnknownTable { location: Location },
UnknownTable {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Cannot find time index column in table {}", table))]
TimeIndexNotFound { table: String, location: Location },
TimeIndexNotFound {
table: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to add duration '{:?}' to SystemTime, overflowed", duration))]
AddSystemTimeOverflow {
duration: Duration,
#[snafu(implicit)]
location: Location,
},
@@ -222,29 +285,43 @@ pub enum Error {
column: String,
file_type: ConcreteDataType,
table_type: ConcreteDataType,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Column schema has no default value, column: {}", column))]
ColumnSchemaNoDefault { column: String, location: Location },
ColumnSchemaNoDefault {
column: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Region query error"))]
RegionQuery {
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Table mutation error"))]
TableMutation {
source: common_query::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing table mutation handler"))]
MissingTableMutationHandler { location: Location },
MissingTableMutationHandler {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Range Query: {}", msg))]
RangeQuery { msg: String, location: Location },
RangeQuery {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Failed to get metadata from engine {} for region_id {}",
@@ -254,6 +331,7 @@ pub enum Error {
GetRegionMetadata {
engine: String,
region_id: RegionId,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},

View File

@@ -24,14 +24,22 @@ use snafu::{Location, Snafu};
#[stack_trace_debug]
pub enum Error {
#[snafu(display("Failed to find column in scripts table, name: {}", name))]
FindColumnInScriptsTable { name: String, location: Location },
FindColumnInScriptsTable {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Scripts table not found"))]
ScriptsTableNotFound { location: Location },
ScriptsTableNotFound {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to insert script to scripts table, name: {}", name))]
InsertScript {
name: String,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -39,6 +47,7 @@ pub enum Error {
#[snafu(display("Failed to compile python script, name: {}", name))]
CompilePython {
name: String,
#[snafu(implicit)]
location: Location,
source: crate::python::error::Error,
},
@@ -46,32 +55,44 @@ pub enum Error {
#[snafu(display("Failed to execute python script {}", name))]
ExecutePython {
name: String,
#[snafu(implicit)]
location: Location,
source: crate::python::error::Error,
},
#[snafu(display("Script not found, name: {}", name))]
ScriptNotFound { location: Location, name: String },
ScriptNotFound {
#[snafu(implicit)]
location: Location,
name: String,
},
#[snafu(display("Failed to collect record batch"))]
CollectRecords {
#[snafu(implicit)]
location: Location,
source: common_recordbatch::error::Error,
},
#[snafu(display("Failed to cast type, msg: {}", msg))]
CastType { msg: String, location: Location },
CastType {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build DataFusion logical plan"))]
BuildDfLogicalPlan {
#[snafu(source)]
error: datafusion_common::DataFusionError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to execute internal statement"))]
ExecuteInternalStatement {
source: query::error::Error,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -38,18 +38,21 @@ pub(crate) fn ret_other_error_with(reason: String) -> OtherSnafu<String> {
pub enum Error {
#[snafu(display("Datatype error"))]
TypeCast {
#[snafu(implicit)]
location: SnafuLocation,
source: DataTypeError,
},
#[snafu(display("Failed to query"))]
DatabaseQuery {
#[snafu(implicit)]
location: SnafuLocation,
source: QueryError,
},
#[snafu(display("Failed to parse script"))]
PyParse {
#[snafu(implicit)]
location: SnafuLocation,
#[snafu(source)]
error: ParseError,
@@ -57,6 +60,7 @@ pub enum Error {
#[snafu(display("Failed to compile script"))]
PyCompile {
#[snafu(implicit)]
location: SnafuLocation,
#[snafu(source)]
error: CodegenError,
@@ -66,11 +70,13 @@ pub enum Error {
#[snafu(display("Python Runtime error, error: {}", msg))]
PyRuntime {
msg: String,
#[snafu(implicit)]
location: SnafuLocation,
},
#[snafu(display("Arrow error"))]
Arrow {
#[snafu(implicit)]
location: SnafuLocation,
#[snafu(source)]
error: ArrowError,
@@ -78,6 +84,7 @@ pub enum Error {
#[snafu(display("DataFusion error"))]
DataFusion {
#[snafu(implicit)]
location: SnafuLocation,
#[snafu(source)]
error: DataFusionError,
@@ -91,6 +98,7 @@ pub enum Error {
"".into()
}))]
CoprParse {
#[snafu(implicit)]
location: SnafuLocation,
reason: String,
// location is option because maybe errors can't give a clear location?
@@ -100,6 +108,7 @@ pub enum Error {
/// Other types of error that isn't any of above
#[snafu(display("Coprocessor's Internal error: {}", reason))]
Other {
#[snafu(implicit)]
location: SnafuLocation,
reason: String,
},
@@ -107,17 +116,20 @@ pub enum Error {
#[snafu(display("Unsupported sql in coprocessor: {}", sql))]
UnsupportedSql {
sql: String,
#[snafu(implicit)]
location: SnafuLocation,
},
#[snafu(display("Failed to retrieve record batches"))]
RecordBatch {
#[snafu(implicit)]
location: SnafuLocation,
source: common_recordbatch::error::Error,
},
#[snafu(display("Failed to create record batch"))]
NewRecordBatch {
#[snafu(implicit)]
location: SnafuLocation,
source: common_recordbatch::error::Error,
},

View File

@@ -65,6 +65,7 @@ pub enum Error {
#[snafu(display("Failed to collect recordbatch"))]
CollectRecordbatch {
#[snafu(implicit)]
location: Location,
source: common_recordbatch::error::Error,
},
@@ -82,7 +83,11 @@ pub enum Error {
},
#[snafu(display("{} server is already started", server))]
AlreadyStarted { server: String, location: Location },
AlreadyStarted {
server: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to bind address {}", addr))]
TcpBind {
@@ -99,30 +104,35 @@ pub enum Error {
#[snafu(display("Failed to execute query"))]
ExecuteQuery {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to execute plan"))]
ExecutePlan {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Execute gRPC query error"))]
ExecuteGrpcQuery {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Execute gRPC request error"))]
ExecuteGrpcRequest {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
#[snafu(display("Failed to check database validity"))]
CheckDatabaseValidity {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -133,6 +143,7 @@ pub enum Error {
#[snafu(display("Failed to insert script with name: {}", name))]
InsertScript {
name: String,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -140,6 +151,7 @@ pub enum Error {
#[snafu(display("Failed to execute script by name: {}", name))]
ExecuteScript {
name: String,
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -148,13 +160,22 @@ pub enum Error {
NotSupported { feat: String },
#[snafu(display("Invalid request parameter: {}", reason))]
InvalidParameter { reason: String, location: Location },
InvalidParameter {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid query: {}", reason))]
InvalidQuery { reason: String, location: Location },
InvalidQuery {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse InfluxDB line protocol"))]
InfluxdbLineProtocol {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: influxdb_line_protocol::Error,
@@ -162,27 +183,37 @@ pub enum Error {
#[snafu(display("Failed to write row"))]
RowWriter {
#[snafu(implicit)]
location: Location,
source: common_grpc::error::Error,
},
#[snafu(display("Failed to write prometheus series"))]
PromSeriesWrite {
#[snafu(implicit)]
location: Location,
source: common_grpc::error::Error,
},
#[snafu(display("Failed to write OTLP metrics"))]
OtlpMetricsWrite {
#[snafu(implicit)]
location: Location,
source: common_grpc::error::Error,
},
#[snafu(display("Failed to convert time precision, name: {}", name))]
TimePrecision { name: String, location: Location },
TimePrecision {
name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Connection reset by peer"))]
ConnResetByPeer { location: Location },
ConnResetByPeer {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Hyper error"))]
Hyper {
@@ -194,11 +225,13 @@ pub enum Error {
InvalidOpentsdbJsonRequest {
#[snafu(source)]
error: serde_json::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to decode prometheus remote request"))]
DecodePromRemoteRequest {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: prost::DecodeError,
@@ -206,6 +239,7 @@ pub enum Error {
#[snafu(display("Failed to decode OTLP request"))]
DecodeOtlpRequest {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: prost::DecodeError,
@@ -213,6 +247,7 @@ pub enum Error {
#[snafu(display("Failed to decompress snappy prometheus remote request"))]
DecompressSnappyPromRemoteRequest {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: snap::Error,
@@ -220,6 +255,7 @@ pub enum Error {
#[snafu(display("Failed to decompress zstd prometheus remote request"))]
DecompressZstdPromRemoteRequest {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: std::io::Error,
@@ -227,31 +263,46 @@ pub enum Error {
#[snafu(display("Failed to send prometheus remote request"))]
SendPromRemoteRequest {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: reqwest::Error,
},
#[snafu(display("Invalid export metrics config, msg: {}", msg))]
InvalidExportMetricsConfig { msg: String, location: Location },
InvalidExportMetricsConfig {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to compress prometheus remote request"))]
CompressPromRemoteRequest {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: snap::Error,
},
#[snafu(display("Invalid prometheus remote request, msg: {}", msg))]
InvalidPromRemoteRequest { msg: String, location: Location },
InvalidPromRemoteRequest {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid prometheus remote read query result, msg: {}", msg))]
InvalidPromRemoteReadQueryResult { msg: String, location: Location },
InvalidPromRemoteReadQueryResult {
msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid Flight ticket"))]
InvalidFlightTicket {
#[snafu(source)]
error: api::DecodeError,
#[snafu(implicit)]
location: Location,
},
@@ -260,6 +311,7 @@ pub enum Error {
#[snafu(display("Failed to get user info"))]
Auth {
#[snafu(implicit)]
location: Location,
source: auth::error::Error,
},
@@ -277,6 +329,7 @@ pub enum Error {
InvalidAuthHeaderInvisibleASCII {
#[snafu(source)]
error: hyper::header::ToStrError,
#[snafu(implicit)]
location: Location,
},
@@ -284,16 +337,21 @@ pub enum Error {
InvalidAuthHeaderInvalidUtf8Value {
#[snafu(source)]
error: FromUtf8Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid http authorization header"))]
InvalidAuthHeader { location: Location },
InvalidAuthHeader {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid base64 value"))]
InvalidBase64Value {
#[snafu(source)]
error: DecodeError,
#[snafu(implicit)]
location: Location,
},
@@ -301,12 +359,14 @@ pub enum Error {
InvalidUtf8Value {
#[snafu(source)]
error: FromUtf8Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Error accessing catalog"))]
CatalogError {
source: catalog::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -314,6 +374,7 @@ pub enum Error {
DatabaseNotFound {
catalog: String,
schema: String,
#[snafu(implicit)]
location: Location,
},
@@ -322,26 +383,37 @@ pub enum Error {
catalog: String,
schema: String,
table: String,
#[snafu(implicit)]
location: Location,
},
#[cfg(feature = "mem-prof")]
#[snafu(display("Failed to dump profile data"))]
DumpProfileData {
#[snafu(implicit)]
location: Location,
source: common_mem_prof::error::Error,
},
#[snafu(display("Invalid prepare statement: {}", err_msg))]
InvalidPrepareStatement { err_msg: String, location: Location },
InvalidPrepareStatement {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid flush argument: {}", err_msg))]
InvalidFlushArgument { err_msg: String, location: Location },
InvalidFlushArgument {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build gRPC reflection service"))]
GrpcReflectionService {
#[snafu(source)]
error: tonic_reflection::server::Error,
#[snafu(implicit)]
location: Location,
},
@@ -349,12 +421,14 @@ pub enum Error {
BuildHttpResponse {
#[snafu(source)]
error: http::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to parse PromQL: {query:?}"))]
ParsePromQL {
query: Box<PromQuery>,
#[snafu(implicit)]
location: Location,
source: query::error::Error,
},
@@ -362,17 +436,23 @@ pub enum Error {
#[snafu(display("Failed to get param types"))]
GetPreparedStmtParams {
source: query::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("{}", reason))]
UnexpectedResult { reason: String, location: Location },
UnexpectedResult {
reason: String,
#[snafu(implicit)]
location: Location,
},
// this error is used for custom error mapping
// please do not delete it
#[snafu(display("Other error"))]
Other {
source: BoxedError,
#[snafu(implicit)]
location: Location,
},
@@ -380,6 +460,7 @@ pub enum Error {
JoinTask {
#[snafu(source)]
error: tokio::task::JoinError,
#[snafu(implicit)]
location: Location,
},
@@ -394,6 +475,7 @@ pub enum Error {
UpdateJemallocMetrics {
#[snafu(source)]
error: tikv_jemalloc_ctl::Error,
#[snafu(implicit)]
location: Location,
},
@@ -401,18 +483,21 @@ pub enum Error {
DataFrame {
#[snafu(source)]
error: datafusion::error::DataFusionError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to replace params with values in prepared statement"))]
ReplacePreparedStmtParams {
source: query::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert scalar value"))]
ConvertScalarValue {
source: datatypes::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -420,6 +505,7 @@ pub enum Error {
PreparedStmtTypeMismatch {
expected: ConcreteDataType,
actual: opensrv_mysql::ColumnType,
#[snafu(implicit)]
location: Location,
},
@@ -435,6 +521,7 @@ pub enum Error {
datatype: String,
expected: i32,
actual: i32,
#[snafu(implicit)]
location: Location,
},
@@ -442,6 +529,7 @@ pub enum Error {
ToJson {
#[snafu(source)]
error: serde_json::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -449,19 +537,30 @@ pub enum Error {
UrlDecode {
#[snafu(source)]
error: FromUtf8Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert Mysql value, error: {}", err_msg))]
MysqlValueConversion { err_msg: String, location: Location },
MysqlValueConversion {
err_msg: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing query context"))]
MissingQueryContext { location: Location },
MissingQueryContext {
#[snafu(implicit)]
location: Location,
},
#[snafu(display(
"Invalid parameter, physical_table is not expected when metric engine is disabled"
))]
UnexpectedPhysicalTable { location: Location },
UnexpectedPhysicalTable {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to initialize a watcher for file {}", path))]
FileWatch {
@@ -471,7 +570,11 @@ pub enum Error {
},
#[snafu(display("Timestamp overflow: {}", error))]
TimestampOverflow { error: String, location: Location },
TimestampOverflow {
error: String,
#[snafu(implicit)]
location: Location,
},
}
pub type Result<T> = std::result::Result<T, Error>;

View File

@@ -28,6 +28,7 @@ pub enum Error {
CreateGuard {
#[snafu(source)]
error: pprof::Error,
#[snafu(implicit)]
location: Location,
},
@@ -35,6 +36,7 @@ pub enum Error {
CreateReport {
#[snafu(source)]
error: pprof::Error,
#[snafu(implicit)]
location: Location,
},
@@ -42,6 +44,7 @@ pub enum Error {
CreateFlamegraph {
#[snafu(source)]
error: pprof::Error,
#[snafu(implicit)]
location: Location,
},
@@ -49,6 +52,7 @@ pub enum Error {
ReportPprof {
#[snafu(source)]
error: pprof::Error,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -27,6 +27,7 @@ pub enum Error {
name: String,
value: String,
hint: String,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -65,6 +65,7 @@ pub enum Error {
Syntax {
#[snafu(source)]
error: ParserError,
#[snafu(implicit)]
location: Location,
},
@@ -73,6 +74,7 @@ pub enum Error {
TQLSyntax {
#[snafu(source)]
error: TQLError,
#[snafu(implicit)]
location: Location,
},
@@ -127,6 +129,7 @@ pub enum Error {
#[snafu(display("Invalid default constraint, column: {}", column))]
InvalidDefault {
column: String,
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
@@ -135,28 +138,36 @@ pub enum Error {
InvalidCast {
sql_value: sqlparser::ast::Value,
datatype: ConcreteDataType,
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
#[snafu(display("Unrecognized table option key: {}", key))]
InvalidTableOption { key: String, location: Location },
InvalidTableOption {
key: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unrecognized table option key: {}, value: {}", key, value))]
InvalidTableOptionValue {
key: Ident,
value: Expr,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to serialize column default constraint"))]
SerializeColumnDefaultConstraint {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
#[snafu(display("Failed to convert data type to gRPC data type defined in proto"))]
ConvertToGrpcDataType {
#[snafu(implicit)]
location: Location,
source: api::error::Error,
},
@@ -177,6 +188,7 @@ pub enum Error {
#[snafu(display("Unable to convert statement {} to DataFusion statement", statement))]
ConvertToDfStatement {
statement: String,
#[snafu(implicit)]
location: Location,
},
@@ -184,11 +196,16 @@ pub enum Error {
ConvertSqlValue {
value: SqlValue,
datatype: ConcreteDataType,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Unable to convert value {} to sql value", value))]
ConvertValue { value: Value, location: Location },
ConvertValue {
value: Value,
#[snafu(implicit)]
location: Location,
},
}
impl ErrorExt for Error {

View File

@@ -26,6 +26,7 @@ pub enum TQLError {
Parser {
#[snafu(source)]
error: ParserError,
#[snafu(implicit)]
location: Location,
},
@@ -33,6 +34,7 @@ pub enum TQLError {
ConvertToLogicalExpression {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
@@ -40,6 +42,7 @@ pub enum TQLError {
Simplification {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},

View File

@@ -694,14 +694,20 @@ pub enum MetadataError {
#[snafu(display("Invalid schema"))]
InvalidSchema {
source: datatypes::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid metadata, {}", reason))]
InvalidMeta { reason: String, location: Location },
InvalidMeta {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to ser/de json object"))]
SerdeJson {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: serde_json::Error,
@@ -709,17 +715,23 @@ pub enum MetadataError {
#[snafu(display("Failed to convert struct from datatypes"))]
ConvertDatatypes {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
},
#[snafu(display("Invalid raw region request, err: {}", err))]
InvalidRawRegionRequest { err: String, location: Location },
InvalidRawRegionRequest {
err: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid region request, region_id: {}, err: {}", region_id, err))]
InvalidRegionRequest {
region_id: RegionId,
err: String,
#[snafu(implicit)]
location: Location,
},
@@ -727,17 +739,22 @@ pub enum MetadataError {
SchemaProject {
origin_schema: SchemaRef,
projection: Vec<ColumnId>,
#[snafu(implicit)]
location: Location,
source: datatypes::Error,
},
#[snafu(display("Time index column not found"))]
TimeIndexNotFound { location: Location },
TimeIndexNotFound {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Change column {} not exists in region: {}", column_name, region_id))]
ChangeColumnNotFound {
column_name: String,
region_id: RegionId,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -34,12 +34,14 @@ pub enum Error {
Datafusion {
#[snafu(source)]
error: DataFusionError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to convert Arrow schema"))]
SchemaConversion {
source: datatypes::error::Error,
#[snafu(implicit)]
location: Location,
},
@@ -47,11 +49,13 @@ pub enum Error {
TableProjection {
#[snafu(source)]
error: ArrowError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to create record batch for Tables"))]
TablesRecordBatch {
#[snafu(implicit)]
location: Location,
source: BoxedError,
},
@@ -60,11 +64,13 @@ pub enum Error {
ColumnExists {
column_name: String,
table_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to build schema, msg: {}", msg))]
SchemaBuild {
#[snafu(implicit)]
location: Location,
source: datatypes::error::Error,
msg: String,
@@ -74,11 +80,16 @@ pub enum Error {
ColumnNotExists {
column_name: String,
table_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Duplicated call to plan execute method. table: {}", table))]
DuplicatedExecuteCall { location: Location, table: String },
DuplicatedExecuteCall {
#[snafu(implicit)]
location: Location,
table: String,
},
#[snafu(display(
"Not allowed to remove index column {} from table {}",
@@ -88,6 +99,7 @@ pub enum Error {
RemoveColumnInIndex {
column_name: String,
table_name: String,
#[snafu(implicit)]
location: Location,
},
@@ -101,11 +113,16 @@ pub enum Error {
error: store_api::storage::ColumnDescriptorBuilderError,
table_name: String,
column_name: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Regions schemas mismatch in table: {}", table))]
RegionSchemaMismatch { table: String, location: Location },
RegionSchemaMismatch {
table: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to operate table"))]
TableOperation { source: BoxedError },
@@ -117,12 +134,14 @@ pub enum Error {
ParseTableOption {
key: String,
value: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Invalid alter table({}) request: {}", table, err))]
InvalidAlterRequest {
table: String,
#[snafu(implicit)]
location: Location,
err: String,
},
@@ -130,12 +149,14 @@ pub enum Error {
#[snafu(display("Invalid table state: {}", table_id))]
InvalidTable {
table_id: TableId,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Missing time index column in table: {}", table_name))]
MissingTimeIndexColumn {
table_name: String,
#[snafu(implicit)]
location: Location,
},
}

View File

@@ -28,6 +28,7 @@ pub enum Error {
#[snafu(display("Failed to create a file: {}", path))]
CreateFile {
path: String,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: std::io::Error,
@@ -36,6 +37,7 @@ pub enum Error {
#[snafu(display("Failed to write a file: {}", path))]
WriteFile {
path: String,
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: std::io::Error,
@@ -44,6 +46,7 @@ pub enum Error {
#[snafu(display("Unexpected, violated: {violated}"))]
Unexpected {
violated: String,
#[snafu(implicit)]
location: Location,
},
@@ -51,6 +54,7 @@ pub enum Error {
BuildCreateTableExpr {
#[snafu(source)]
error: CreateTableExprBuilderError,
#[snafu(implicit)]
location: Location,
},
@@ -58,28 +62,41 @@ pub enum Error {
BuildCreateDatabaseExpr {
#[snafu(source)]
error: CreateDatabaseExprBuilderError,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("No droppable columns"))]
DroppableColumns { location: Location },
DroppableColumns {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to execute query: {}", sql))]
ExecuteQuery {
sql: String,
#[snafu(source)]
error: sqlx::error::Error,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to assert: {}", reason))]
Assert { reason: String, location: Location },
Assert {
reason: String,
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Child process exited unexpected"))]
UnexpectedExited { location: Location },
UnexpectedExited {
#[snafu(implicit)]
location: Location,
},
#[snafu(display("Failed to spawn a child process"))]
SpawnChild {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: std::io::Error,
@@ -88,6 +105,7 @@ pub enum Error {
#[cfg(feature = "unstable")]
#[snafu(display("Failed to kill a process, pid: {}", pid))]
KillProcess {
#[snafu(implicit)]
location: Location,
#[snafu(source)]
error: nix::Error,