#[derive(Debug, thiserror::Error)]
pub enum DbError {
#[error("database error: {0}")]
Sqlx(#[from] sqlx::Error),
#[error("unknown table: {0}")]
UnknownTable(String),
#[error("unknown column: {0}")]
UnknownColumn(String),
#[error("table has no usable rowid: {0}")]
NoRowId(String),
#[error("exactly one SQL statement is allowed")]
MultipleStatements,
#[error("DynamoDB error: {0}")]
Dynamo(String),
#[error("operation requires write access")]
ReadOnly,
#[error("invalid DynamoDB JSON: {0}")]
InvalidDynamoJson(String),
#[error("unsupported operation: {0}")]
Unsupported(String),
#[error("io error: {0}")]
Io(#[from] std::io::Error),
}