A DataSource implementation that wraps a data frame using DuckDB or SQLite for SQL query execution.
Details
This class creates an in-memory database connection and registers the provided data frame as a table. All SQL queries are executed against this database table. See DBISource for the full description of available methods.
By default, DataFrameSource uses the first available engine from duckdb
(checked first) or RSQLite. You can explicitly set the engine parameter to
choose between "duckdb" or "sqlite", or set the global option
querychat.DataFrameSource.engine to choose the default engine for all
DataFrameSource instances. At least one of these packages must be installed.
Super classes
querychat::DataSource -> querychat::DBISource -> DataFrameSource
Methods
Method new()
Create a new DataFrameSource
Usage
DataFrameSource$new(
df,
table_name,
engine = getOption("querychat.DataFrameSource.engine", NULL)
)Arguments
dfA data frame.
table_nameName to use for the table in SQL queries. Must be a valid table name (start with letter, contain only letters, numbers, and underscores)
engineDatabase engine to use: "duckdb" or "sqlite". Set the global option
querychat.DataFrameSource.engineto specify the default engine for all instances. If NULL (default), uses the first available engine from duckdb or RSQLite (in that order).
Examples
if (FALSE) { # \dontrun{
# Create a data frame source (uses first available: duckdb or sqlite)
df_source <- DataFrameSource$new(mtcars, "mtcars")
# Get database type
df_source$get_db_type() # Returns "DuckDB" or "SQLite"
# Execute a query
result <- df_source$execute_query("SELECT * FROM mtcars WHERE mpg > 25")
# Explicitly choose an engine
df_sqlite <- DataFrameSource$new(mtcars, "mtcars", engine = "sqlite")
# Clean up when done
df_source$cleanup()
df_sqlite$cleanup()
} # }
## ------------------------------------------------
## Method `DataFrameSource$new`
## ------------------------------------------------
if (FALSE) { # \dontrun{
source <- DataFrameSource$new(iris, "iris")
} # }
