t8y2/dbx · error
invalid TDengine database name: {value}
Error message
invalid TDengine database name: {value} What it means
Thrown by validate_database_name in the TDengine driver when a database name fails its identifier rules: it must start with '_' or an ASCII letter and contain only allowed identifier characters. Firing during use_database/effective_database, it rejects malformed database names before any SQL is composed, preventing injection through the db name.
Source
Thrown at agents/drivers/tdengine/src/driver.rs:833
fn effective_database<'a>(requested: &'a str, current: &'a str) -> Result<&'a str> {
let requested = requested.trim();
if !requested.is_empty() {
return validate_database_name(requested);
}
let current = current.trim();
if current.is_empty() {
bail!("TDengine database is required");
}
validate_database_name(current)
}
fn validate_database_name(value: &str) -> Result<&str> {
let value = value.trim();
let mut chars = value.chars();
let valid_start = chars.next().is_some_and(|char| char == '_' || char.is_ascii_alphabetic());
if !valid_start || !chars.all(|char| char == '_' || char.is_ascii_alphanumeric()) {
bail!("invalid TDengine database name: {value}");
}
Ok(value)
}
fn table_from_show_row(row: Vec<Value>, table_type: &str, includes_stable_name: bool) -> Option<TableInfo> {
let name = row.first().and_then(json_text)?.to_string();
let parent_name = includes_stable_name
.then(|| row.get(3).and_then(json_text).map(str::trim).filter(|value| !value.is_empty()).map(str::to_string))
.flatten();
Some(TableInfo { name, table_type: table_type.to_string(), comment: None, parent_schema: None, parent_name })
}
fn parse_describe_columns(rows: Vec<Vec<Value>>) -> Vec<ColumnInfo> {
rows.into_iter()
.enumerate()
.filter_map(|(index, row)| {
let name = row.first().and_then(json_text)?.to_string();
let data_type = row.get(1).and_then(json_text).unwrap_or_default().to_string();View on GitHub (pinned to c0390bff16)
Solutions
- Use a database name starting with a letter or underscore, containing only letters, digits, and underscores
- Remove quotes, spaces, dashes, or special characters from the database parameter
- Create the database with a compliant name if the current one is invalid
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at agents/drivers/tdengine/src/driver.rs:833 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05).
Data as JSON: /api/errors/8c5dca809bee7fe5.
Report an issue: GitHub.