Documentation
¶
Overview ¶
Package xk6_duckdb provides comprehensive DuckDB database functionality for k6 tests This extension covers the full go-duckdb API including Connector, Appender, Arrow, and Profiling
Index ¶
- type DuckDB
- type DuckDBAppender
- type DuckDBConnection
- func (conn *DuckDBConnection) BeginTransaction() (*DuckDBTransaction, error)
- func (conn *DuckDBConnection) Close() error
- func (conn *DuckDBConnection) CreateAppender(schema, table string) (*DuckDBAppender, error)
- func (conn *DuckDBConnection) CreateTable(tableName string, columns map[string]string) error
- func (conn *DuckDBConnection) DisableProfiling() error
- func (conn *DuckDBConnection) EnableProfiling(mode, output string) error
- func (conn *DuckDBConnection) Execute(query string, args ...interface{}) error
- func (conn *DuckDBConnection) GetConfig(option string) (string, error)
- func (conn *DuckDBConnection) GetConnection() error
- func (conn *DuckDBConnection) GetProfilingInfo() (*duckdb.ProfilingInfo, error)
- func (conn *DuckDBConnection) InsertData(tableName string, data []map[string]interface{}) error
- func (conn *DuckDBConnection) InstallExtension(extension string) error
- func (conn *DuckDBConnection) LoadCSV(tableName, filePath string, options map[string]interface{}) error
- func (conn *DuckDBConnection) LoadExtension(extension string) error
- func (conn *DuckDBConnection) LoadJSON(tableName, filePath string, options map[string]interface{}) error
- func (conn *DuckDBConnection) LoadParquet(tableName, filePath string) error
- func (conn *DuckDBConnection) Open(dsn string, config ...map[string]interface{}) error
- func (conn *DuckDBConnection) Prepare(query string) (*DuckDBStatement, error)
- func (conn *DuckDBConnection) Query(query string, args ...interface{}) (*QueryResult, error)
- func (conn *DuckDBConnection) QueryScalar(query string, args ...interface{}) (interface{}, error)
- func (conn *DuckDBConnection) QuerySingle(query string, args ...interface{}) (map[string]interface{}, error)
- func (conn *DuckDBConnection) SetConfig(option, value string) error
- func (conn *DuckDBConnection) SetPragma(pragma, value string) error
- type DuckDBConnector
- type DuckDBStatement
- type DuckDBTransaction
- type ProfilingInfo
- type QueryResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DuckDB ¶
type DuckDB struct{}
DuckDB represents the main module struct
func (*DuckDB) XConnector ¶
XConnector creates a JavaScript constructor for DuckDB connectors
type DuckDBAppender ¶
type DuckDBAppender struct {
// contains filtered or unexported fields
}
DuckDBAppender wraps the DuckDB appender for high-performance bulk loading
func (*DuckDBAppender) AppendRow ¶
func (a *DuckDBAppender) AppendRow(values []driver.Value) error
AppendRow appends a single row to the appender Usage: appender.appendRow([1, "John", "john@example.com"])
func (*DuckDBAppender) AppendRows ¶
func (a *DuckDBAppender) AppendRows(rows [][]driver.Value) error
AppendRows appends multiple rows efficiently Usage: appender.appendRows([[1, "John"], [2, "Jane"], [3, "Bob"]])
func (*DuckDBAppender) Flush ¶
func (a *DuckDBAppender) Flush() error
Flush flushes the appender buffer
type DuckDBConnection ¶
type DuckDBConnection struct {
// contains filtered or unexported fields
}
DuckDBConnection wraps a DuckDB database connection
func (*DuckDBConnection) BeginTransaction ¶
func (conn *DuckDBConnection) BeginTransaction() (*DuckDBTransaction, error)
BeginTransaction starts a new transaction
func (*DuckDBConnection) Close ¶
func (conn *DuckDBConnection) Close() error
Close closes the database connection
func (*DuckDBConnection) CreateAppender ¶
func (conn *DuckDBConnection) CreateAppender(schema, table string) (*DuckDBAppender, error)
CreateAppender creates a new DuckDB appender for bulk data loading Usage: const appender = db.createAppender("", "table_name")
func (*DuckDBConnection) CreateTable ¶
func (conn *DuckDBConnection) CreateTable(tableName string, columns map[string]string) error
CreateTable creates a table with the specified structure
func (*DuckDBConnection) DisableProfiling ¶
func (conn *DuckDBConnection) DisableProfiling() error
DisableProfiling disables query profiling
func (*DuckDBConnection) EnableProfiling ¶
func (conn *DuckDBConnection) EnableProfiling(mode, output string) error
EnableProfiling enables query profiling on the connection Usage: db.enableProfiling("detailed", "no_output")
func (*DuckDBConnection) Execute ¶
func (conn *DuckDBConnection) Execute(query string, args ...interface{}) error
Execute runs a SQL statement without returning results
func (*DuckDBConnection) GetConfig ¶
func (conn *DuckDBConnection) GetConfig(option string) (string, error)
GetConfig gets a DuckDB configuration option
func (*DuckDBConnection) GetConnection ¶
func (conn *DuckDBConnection) GetConnection() error
GetConnection returns a dedicated connection from the pool
func (*DuckDBConnection) GetProfilingInfo ¶
func (conn *DuckDBConnection) GetProfilingInfo() (*duckdb.ProfilingInfo, error)
GetProfilingInfo retrieves profiling information for the last query
func (*DuckDBConnection) InsertData ¶
func (conn *DuckDBConnection) InsertData(tableName string, data []map[string]interface{}) error
InsertData inserts data into a table (uses transactions for better performance)
func (*DuckDBConnection) InstallExtension ¶
func (conn *DuckDBConnection) InstallExtension(extension string) error
InstallExtension installs a DuckDB extension
func (*DuckDBConnection) LoadCSV ¶
func (conn *DuckDBConnection) LoadCSV(tableName, filePath string, options map[string]interface{}) error
LoadCSV loads data from a CSV file using DuckDB's native CSV loader
func (*DuckDBConnection) LoadExtension ¶
func (conn *DuckDBConnection) LoadExtension(extension string) error
LoadExtension loads a DuckDB extension Usage: db.loadExtension("json") or db.loadExtension("/path/to/extension.duckdb_extension")
func (*DuckDBConnection) LoadJSON ¶
func (conn *DuckDBConnection) LoadJSON(tableName, filePath string, options map[string]interface{}) error
LoadJSON loads data from a JSON file
func (*DuckDBConnection) LoadParquet ¶
func (conn *DuckDBConnection) LoadParquet(tableName, filePath string) error
LoadParquet loads data from a Parquet file
func (*DuckDBConnection) Open ¶
func (conn *DuckDBConnection) Open(dsn string, config ...map[string]interface{}) error
Open opens a DuckDB database connection with optional configuration Usage: db.open("/path/to/database.db", {threads: 4, memory_limit: "2GB"})
func (*DuckDBConnection) Prepare ¶
func (conn *DuckDBConnection) Prepare(query string) (*DuckDBStatement, error)
Prepare creates a prepared statement
func (*DuckDBConnection) Query ¶
func (conn *DuckDBConnection) Query(query string, args ...interface{}) (*QueryResult, error)
Query executes a SQL query and returns all results
func (*DuckDBConnection) QueryScalar ¶
func (conn *DuckDBConnection) QueryScalar(query string, args ...interface{}) (interface{}, error)
QueryScalar executes a query and returns a single scalar value
func (*DuckDBConnection) QuerySingle ¶
func (conn *DuckDBConnection) QuerySingle(query string, args ...interface{}) (map[string]interface{}, error)
QuerySingle executes a query and returns only the first row
func (*DuckDBConnection) SetConfig ¶
func (conn *DuckDBConnection) SetConfig(option, value string) error
SetConfig sets a DuckDB configuration option Usage: db.setConfig("memory_limit", "4GB")
func (*DuckDBConnection) SetPragma ¶
func (conn *DuckDBConnection) SetPragma(pragma, value string) error
SetPragma sets a DuckDB pragma Usage: db.setPragma("threads", "8")
type DuckDBConnector ¶
type DuckDBConnector struct {
// contains filtered or unexported fields
}
DuckDBConnector wraps a DuckDB connector for advanced connection management
func (*DuckDBConnector) Connect ¶
func (c *DuckDBConnector) Connect() (*DuckDBConnection, error)
Connect creates a new connection from the connector
func (*DuckDBConnector) Create ¶
func (c *DuckDBConnector) Create(dsn string, initQueries []string) error
NewConnector creates a new DuckDB connector with initialization callback Usage: const connector = new duckdb.Connector();
connector.create("test.db", ["SET memory_limit='2GB'", "SET threads=4"])
type DuckDBStatement ¶
type DuckDBStatement struct {
// contains filtered or unexported fields
}
DuckDBStatement wraps a prepared statement
func (*DuckDBStatement) Close ¶
func (stmt *DuckDBStatement) Close() error
Close closes the prepared statement
func (*DuckDBStatement) Execute ¶
func (stmt *DuckDBStatement) Execute(args ...interface{}) error
Execute executes the prepared statement
func (*DuckDBStatement) Query ¶
func (stmt *DuckDBStatement) Query(args ...interface{}) (*QueryResult, error)
Query executes the prepared statement and returns results
type DuckDBTransaction ¶
type DuckDBTransaction struct {
// contains filtered or unexported fields
}
DuckDBTransaction wraps a SQL transaction
func (*DuckDBTransaction) Commit ¶
func (tx *DuckDBTransaction) Commit() error
Commit commits the transaction
func (*DuckDBTransaction) Execute ¶
func (tx *DuckDBTransaction) Execute(query string, args ...interface{}) error
Execute runs a statement within the transaction
func (*DuckDBTransaction) Query ¶
func (tx *DuckDBTransaction) Query(query string, args ...interface{}) (*QueryResult, error)
Query runs a query within the transaction
func (*DuckDBTransaction) Rollback ¶
func (tx *DuckDBTransaction) Rollback() error
Rollback rolls back the transaction
type ProfilingInfo ¶
type ProfilingInfo struct { Query string `js:"query"` ExecutionTime string `js:"execution_time"` PlanningTime string `js:"planning_time"` OptimizationTime string `js:"optimization_time"` Metrics map[string]interface{} `js:"metrics"` }
ProfilingInfo contains query profiling information
type QueryResult ¶
type QueryResult struct { Rows []map[string]interface{} `js:"rows"` Columns []string `js:"columns"` Count int `js:"count"` }
QueryResult represents the result of a database query