qlbridge: github.com/araddon/qlbridge Index | Files | Directories

package qlbridge

import "github.com/araddon/qlbridge"

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.


Package Files



datasource/filesPackage files is a cloud (gcs, s3) and local file datasource that translates json, csv, files into appropriate interface for qlbridge DataSource so we can run queries.
datasource/membtreeMembtree implements a Datasource in-memory implemenation using the google btree.
datasource/memdbMemdb package implements a Qlbridge Datasource in-memory implemenation using the hashicorp go-memdb (immuteable radix tree's).
datasource/mockcsvPackage mockcsv implements an in-memory csv data source for testing usage implemented by wrapping the mem-b-tree, loading csv data into it.
datasource/mockcsvtestdataPackage mockcsvtestdata is csv test data only used for tests.
datasource/sqlitePackage sqlite implements a Qlbridge Datasource interface around sqlite that translates mysql syntax to sqlite.
execPackage exec contains execution tasks to run each of the separate tasks (Source, Project, Where, Having, etc) of a SQL data of tasks.
exprExpression structures, ie the `a = b` type expression syntax including parser, node types, boolean logic check, functions.
expr/builtinsBuiltin functions are a library of functions natively available in qlbridge expression evaluation although adding your own is easy.
lexPackage Lex is a Lexer for QLBridge which is more of a lex-toolkit and implements 4 Dialects {SQL, FilterQL, Json, Expressions}.
planPlan package converts the AST (expr package) into a plan, which is a DAG of tasks that comprise that plan, the planner is pluggable.
qlbdriverPackage driver registers a QL Bridge sql/driver named "qlbridge"
relPackage rel are the AST Structures and Parsers for the SQL, FilterQL, and Expression dialects.
schemaPackage schema implements core Relational Algrebra schema objects such as Table, Schema, DataSource, Fields, Headers, Index.
testutilPackage testutil a Test only package for harness to load, implement SQL tests.
valueValue package defines the core value types (string, int, etc) for the qlbridge package, mostly used to provide common interfaces instead of reflection for virtual machine.
vmVM implements the virtual machine runtime evaluator for the SQL, FilterQL, and Expression evalutors.

Package qlbridge imports 1 packages (graph). Updated 2020-03-20. Refresh now. Tools for package owners.