The query packages implement Vanadium's query capabilities.
The syncql package is used by clients of a Vanadium component that supports queries. It includes: ResultStream (which is the product of executing a query), the error messages that could be returned from performing a query, and a function to parse an error to get the offset into a query that caused the error. syncql does not include the Exec function as that must be provided by the component that supports queries.
The engine package implements the query engine. A component that supports queries calls the Exec function in this package.
The datasource package contains the interfaces that a Vanadium component must implement in order to use the query engine.
The internal package provides a reference implementation of the queries package. Its sole client is the engine package.
|engine||Package engine defines a Create function which returns an instance of datasource.QueryEngine|
|engine/datasource||Package datasource defines the interfaces a system must implement to support querying.|
|engine/internal||Package internal implements Exec, executing SQL-like queries on a given database.|
|engine/internal/querychecker||Package querychecker performs a semantic check on an AST produced by the queryparser package.|
|engine/internal/queryfunctions||Package queryfunctions describes SyncQL's built-in functions.|
|engine/internal/queryparser||Package queryparser is a parser to parse a simplified select statement (a la SQL) for the Vanadium key value store (a.k.a., syncbase).|
|engine/internal/test||Package query_test contains tests for the query package.|
|engine/public||Package public defines the QueryEngine interface which is returned from calling v.io/v23/query/engine.Create and PreparedStatement which is returned from the QueryEngine.PrepareStatement function.|
|pattern||Package pattern handles parsing and matching SQL LIKE-style glob patterns.|
|syncql||The ResultStream interface is used to iterate over query results.|