pub fn validate_function_name(name: &str) -> Result<(), ExtensionError>Expand description
Validates a DuckDB function name.
§Rules
- Must not be empty
- Must not exceed 256 characters
- Must start with a lowercase ASCII letter or underscore
- Must contain only lowercase ASCII letters, digits, or underscores
- Must not contain interior null bytes
These rules are intentionally conservative. DuckDB may accept a wider range
of names, but restricting to this set avoids catalog issues and makes function
names unambiguous in SQL queries.
§Errors
Returns ExtensionError describing the first rule violation found.
§Example
use quack_rs::validate::validate_function_name;
assert!(validate_function_name("word_count").is_ok());
assert!(validate_function_name("my_func_v2").is_ok());
assert!(validate_function_name("_internal").is_ok());
assert!(validate_function_name("").is_err()); // empty
assert!(validate_function_name("MyFunc").is_err()); // uppercase
assert!(validate_function_name("my-func").is_err()); // hyphen
assert!(validate_function_name("1func").is_err()); // starts with digit