nat.plugins.vanna.db_utils#
Attributes#
Classes#
Supported database types for Vanna text-to-SQL. |
|
Result from executing a database query. |
Functions#
|
Serialize SecretStr to plain string for required secret fields. |
|
Extract clean SQL query from various input formats. |
|
Connect to Databricks SQL Warehouse. |
|
Connect to a database based on type. |
|
Execute a query and return results. |
|
Execute query asynchronously and return QueryResult. |
|
Set up database connection for Vanna instance. |
Module Contents#
- logger#
- _serialize_secret(v: pydantic.SecretStr) str#
Serialize SecretStr to plain string for required secret fields.
- RequiredSecretStr#
- class SupportedDatabase#
-
Supported database types for Vanna text-to-SQL.
Initialize self. See help(type(self)) for accurate signature.
- DATABRICKS = 'databricks'#
- class QueryResult(/, **data: Any)#
Bases:
pydantic.BaseModelResult from executing a database query.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.selfis explicitly positional-only to allowselfas a field name.- to_dataframe() Any#
Convert query results to a pandas DataFrame.
- extract_sql_from_message(sql_query: str | Any) str#
Extract clean SQL query from various input formats.
Handles: 1. Direct SQL strings (passes through) 2. BaseModel objects with ‘sql’ field (Text2SQLOutput) 3. Dictionaries with ‘sql’ key 4. Tool message format with content attribute 5. String representations of tool messages
- Args:
sql_query: SQL query in various formats
- Returns:
Clean SQL query string
- connect_to_databricks(connection_url: str) Any#
Connect to Databricks SQL Warehouse.
- Args:
connection_url: Database connection string
- Returns:
Databricks connection object
- connect_to_database(
- database_type: str | SupportedDatabase,
- connection_url: str,
- \*\*kwargs,
Connect to a database based on type.
Currently only Databricks is supported.
- Args:
database_type: Type of database (currently only ‘databricks’ is supported) connection_url: Database connection string kwargs: Additional database-specific parameters
- Returns:
Database connection object
- Raises:
ValueError: If database_type is not supported
- execute_query(connection: Any, query: str) QueryResult#
Execute a query and return results.
- Args:
connection: Database connection object query: SQL query to execute
- Returns:
QueryResult object containing results and column names
- async async_execute_query(connection: Any, query: str) QueryResult#
Execute query asynchronously and return QueryResult.
- Args:
connection: Database connection object query: SQL query to execute
- Returns:
QueryResult object containing results and column names
- setup_vanna_db_connection(
- vn: Any,
- database_type: str | SupportedDatabase,
- connection_url: str,
- \*\*kwargs,
Set up database connection for Vanna instance.
Currently only Databricks is supported.
The database Engine is stored in the Vanna instance (vn.db_engine) and will persist for the lifetime of the Vanna singleton. The Engine will be disposed when the Vanna singleton is reset.
- Args:
vn: Vanna instance database_type: Type of database (currently only ‘databricks’ is supported) connection_url: Database connection string kwargs: Additional connection parameters
- Raises:
ValueError: If database_type is not supported