Documentation ¶
Overview ¶
QLBridge is a SQL Relational algebra and expression package for embedding sql like functionality into your app. Includes Lexer, Parsers, different SQL Dialects, as well as planners and executors.
Directories ¶
Path | Synopsis |
---|---|
membtree
Membtree implements a Datasource in-memory implemenation using the google btree.
|
Membtree implements a Datasource in-memory implemenation using the google btree. |
memdb
Memdb package implements a Datasource in-memory implemenation using the hashicorp go-memdb (immuteable radix tree's).
|
Memdb package implements a Datasource in-memory implemenation using the hashicorp go-memdb (immuteable radix tree's). |
mockcsv
Mockcsv implements an in-memory csv data source for testing usage implemented by wrapping the mem-b-tree.
|
Mockcsv implements an in-memory csv data source for testing usage implemented by wrapping the mem-b-tree. |
mockcsvtestdata
Mockscsvtestdata is csv test data only used for tests.
|
Mockscsvtestdata is csv test data only used for tests. |
dialects
|
|
examples
|
|
Exec contains execution tasks to run each of the separate tasks (Source, Project, Where, Having, etc) of a SQL data of tasks.
|
Exec contains execution tasks to run each of the separate tasks (Source, Project, Where, Having, etc) of a SQL data of tasks. |
Expression structures, ie the `a = b` type expression syntax including parser, node types, boolean logic check, functions.
|
Expression structures, ie the `a = b` type expression syntax including parser, node types, boolean logic check, functions. |
builtins
Builtin functions are a library of functions natively available in qlbridge expression evaluation although adding your own is easy.
|
Builtin functions are a library of functions natively available in qlbridge expression evaluation although adding your own is easy. |
Lexing for QLBridge implements 4 Dialects - SQL - FilterQL a Where filtering language - Json - Expression - simple native logical/functional expression evaluator
|
Lexing for QLBridge implements 4 Dialects - SQL - FilterQL a Where filtering language - Json - Expression - simple native logical/functional expression evaluator |
Plan structures, converts AST into a plan, with a DAG of tasks that comprise that plan, the planner is pluggable.
|
Plan structures, converts AST into a plan, with a DAG of tasks that comprise that plan, the planner is pluggable. |
Package driver registers a QL Bridge sql/driver named "qlbridge" Usage package main import ( "database/sql" _ "github.com/araddon/qlbridge/qlbdriver" ) func main() { db, err := sql.Open("qlbridge", "csv:///dev/stdin") if err != nil { log.Fatal(err) } // Use db here }
|
Package driver registers a QL Bridge sql/driver named "qlbridge" Usage package main import ( "database/sql" _ "github.com/araddon/qlbridge/qlbdriver" ) func main() { db, err := sql.Open("qlbridge", "csv:///dev/stdin") if err != nil { log.Fatal(err) } // Use db here } |
Package rel are the AST Structures and Parsers for the SQL, FilterQL, and Expression dialects.
|
Package rel are the AST Structures and Parsers for the SQL, FilterQL, and Expression dialects. |
The core Relational Algrebra schema objects such as Table, Schema, DataSource, Fields, Headers, Index.
|
The core Relational Algrebra schema objects such as Table, Schema, DataSource, Fields, Headers, Index. |
Test only package for harness to load, implement SQL tests
|
Test only package for harness to load, implement SQL tests |
The core value types (string, int, etc) for the virtual machine, parsing etc.
|
The core value types (string, int, etc) for the virtual machine, parsing etc. |
VM implements the virtual machine runtime/evaluator for the SQL, FilterQL, and Expression evalutors.
|
VM implements the virtual machine runtime/evaluator for the SQL, FilterQL, and Expression evalutors. |
Click to show internal directories.
Click to hide internal directories.