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 ¶ added in v1.1.3
XConnector creates a JavaScript constructor for DuckDB connectors
type DuckDBAppender ¶ added in v1.1.3
type DuckDBAppender struct {
// contains filtered or unexported fields
}
DuckDBAppender wraps the DuckDB appender for high-performance bulk loading
func (*DuckDBAppender) AppendRow ¶ added in v1.1.3
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 ¶ added in v1.1.3
func (a *DuckDBAppender) AppendRows(rows [][]driver.Value) error
AppendRows appends multiple rows efficiently Usage: appender.appendRows([[1, "John"], [2, "Jane"], [3, "Bob"]])
func (*DuckDBAppender) Close ¶ added in v1.1.3
func (a *DuckDBAppender) Close() error
Close closes the appender
func (*DuckDBAppender) Flush ¶ added in v1.1.3
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 ¶ added in v1.1.3
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 ¶ added in v1.1.3
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 ¶ added in v1.1.3
func (conn *DuckDBConnection) DisableProfiling() error
DisableProfiling disables query profiling
func (*DuckDBConnection) EnableProfiling ¶ added in v1.1.3
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 ¶ added in v1.1.3
func (conn *DuckDBConnection) GetConfig(option string) (string, error)
GetConfig gets a DuckDB configuration option
func (*DuckDBConnection) GetConnection ¶ added in v1.1.3
func (conn *DuckDBConnection) GetConnection() error
GetConnection returns a dedicated connection from the pool
func (*DuckDBConnection) GetProfilingInfo ¶ added in v1.1.3
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 ¶ added in v1.1.3
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 ¶ added in v1.1.3
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 ¶ added in v1.1.3
func (conn *DuckDBConnection) LoadJSON(tableName, filePath string, options map[string]interface{}) error
LoadJSON loads data from a JSON file
func (*DuckDBConnection) LoadParquet ¶ added in v1.1.3
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 ¶ added in v1.1.3
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 ¶ added in v1.1.3
func (conn *DuckDBConnection) SetConfig(option, value string) error
SetConfig sets a DuckDB configuration option Usage: db.setConfig("memory_limit", "4GB")
func (*DuckDBConnection) SetPragma ¶ added in v1.1.3
func (conn *DuckDBConnection) SetPragma(pragma, value string) error
SetPragma sets a DuckDB pragma Usage: db.setPragma("threads", "8")
type DuckDBConnector ¶ added in v1.1.3
type DuckDBConnector struct {
// contains filtered or unexported fields
}
DuckDBConnector wraps a DuckDB connector for advanced connection management
func (*DuckDBConnector) Close ¶ added in v1.1.3
func (c *DuckDBConnector) Close() error
Close closes the connector
func (*DuckDBConnector) Connect ¶ added in v1.1.3
func (c *DuckDBConnector) Connect() (*DuckDBConnection, error)
Connect creates a new connection from the connector
func (*DuckDBConnector) Create ¶ added in v1.1.3
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 ¶ added in v1.1.3
type DuckDBStatement struct {
// contains filtered or unexported fields
}
DuckDBStatement wraps a prepared statement
func (*DuckDBStatement) Close ¶ added in v1.1.3
func (stmt *DuckDBStatement) Close() error
Close closes the prepared statement
func (*DuckDBStatement) Execute ¶ added in v1.1.3
func (stmt *DuckDBStatement) Execute(args ...interface{}) error
Execute executes the prepared statement
func (*DuckDBStatement) Query ¶ added in v1.1.3
func (stmt *DuckDBStatement) Query(args ...interface{}) (*QueryResult, error)
Query executes the prepared statement and returns results
type DuckDBTransaction ¶ added in v1.1.3
type DuckDBTransaction struct {
// contains filtered or unexported fields
}
DuckDBTransaction wraps a SQL transaction
func (*DuckDBTransaction) Commit ¶ added in v1.1.3
func (tx *DuckDBTransaction) Commit() error
Commit commits the transaction
func (*DuckDBTransaction) Execute ¶ added in v1.1.3
func (tx *DuckDBTransaction) Execute(query string, args ...interface{}) error
Execute runs a statement within the transaction
func (*DuckDBTransaction) Query ¶ added in v1.1.3
func (tx *DuckDBTransaction) Query(query string, args ...interface{}) (*QueryResult, error)
Query runs a query within the transaction
func (*DuckDBTransaction) Rollback ¶ added in v1.1.3
func (tx *DuckDBTransaction) Rollback() error
Rollback rolls back the transaction
type ProfilingInfo ¶ added in v1.1.3
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