![image](https://private-user-images.githubusercontent.com/6108819/330215588-78f3fe95-227a-4b7f-99d5-81d979e5fc2e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNDM1NzcsIm5iZiI6MTczOTE0MzI3NywicGF0aCI6Ii82MTA4ODE5LzMzMDIxNTU4OC03OGYzZmU5NS0yMjdhLTRiN2YtOTlkNS04MWQ5NzllNWZjMmUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMDlUMjMyMTE3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTJhNGZiYTZjMjMzM2YwMWI5NDU5MTYzMjc2ZTUxZmE0YzQwNjMwNDg0YmQ0NDJmNGI2MDA5MjljM2Y0YzYyMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.i02mkcfaszcCgEbiCVZp-GIisntRnxa4RpvPI8Qh55k)
- Doesn't require CGO.
- Requires duckdb cli to be in the path.
db := NewInMemoryDB()
commands := []string{
"CREATE TABLE t1 (i INTEGER, j INTEGER);",
"INSERT INTO t1 VALUES (1, 5);",
"SELECT * from t1;",
}
res, err := db.RunCommands(commands)
db := NewDuckDB("foo")
commands := []string{
"CREATE TABLE t1 (i INTEGER, j INTEGER);",
"INSERT INTO t1 VALUES (1, 5);",
}
_, err := db.RunCommands(commands)
res, err := db.Query("SELECT * from t1;")
- Allows querying dataframes using SQL, with all the aggregate/window/analytics functions from DuckDB.
db := NewInMemoryDB()
var values = []string{"test"}
frame := data.NewFrame("foo", data.NewField("value", nil, values))
frame.RefID = "foo"
frames := []*data.Frame{frame}
res, err := db.QueryFrames("foo", "select * from foo", frames)