memsql

package module
v0.0.0-...-c9c7940 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 20, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

README

Documentation

Index

Constants

View Source
const (
	ReadSkip  = 0
	ReadOk    = 1
	ReadError = 2
)

Variables

This section is empty.

Functions

func ExecuteGroupBy

func ExecuteGroupBy(ec *SessionContext, query memcore.Query, groupBy sqlparser.GroupBy) (memcore.Query, error)

func ExecuteHaving

func ExecuteHaving(ec *SessionContext, query memcore.Query, having *sqlparser.Where) (memcore.Query, error)

func ExecuteLimit

func ExecuteLimit(ec *SessionContext, query memcore.Query, limit *sqlparser.Limit) (memcore.Query, error)

func ExecuteOrderBy

func ExecuteOrderBy(ec *SessionContext, query memcore.Query, orderBy sqlparser.OrderBy) (memcore.Query, error)

func ExecuteSelect

func ExecuteSelect(ec *SessionContext, stmt *sqlparser.Select, hasJoin bool) (memcore.Query, error)

func ExecuteSelectExprs

func ExecuteSelectExprs(ec *SessionContext, query memcore.Query, selectExprs sqlparser.SelectExprs) (memcore.Query, error)

func ExecuteSelectStatement

func ExecuteSelectStatement(ec *SessionContext, stmt sqlparser.SelectStatement, hasJoin bool) (memcore.Query, error)

func ExecuteTable

func ExecuteTable(ec *SessionContext, ds Datasource, where *sqlparser.Where, hasJoin bool) (memcore.Query, error)

func ExecuteUnion

func ExecuteUnion(ec *SessionContext, stmt *sqlparser.Union, hasJoin bool) (memcore.Query, error)

func ExecuteWhere

func ExecuteWhere(ec *SessionContext, query memcore.Query, expr sqlparser.Expr) (memcore.Query, error)

func ParseJoinOn

func ParseJoinOn(ctx *SessionContext, on sqlparser.Expr) (
	leftAs string, left func(memcore.Record) (memcore.Value, error),
	rightAs string, right func(memcore.Record) (memcore.Value, error), err error)

func ParseParenTableExpression

func ParseParenTableExpression(ec *SessionContext, expr *sqlparser.ParenTableExpr, where *sqlparser.Where) (memcore.Query, error)

func RenameTableToAlias

func RenameTableToAlias(alias string) func(memcore.Context, memcore.Record) (memcore.Record, error)

func ToRecordValuer

func ToRecordValuer(r *memcore.Record, withQualifier bool) vm.GetValuer

Types

type Column

type Column = memcore.Column

type Context

type Context struct {
	Ctx     context.Context
	Debuger ExecuteTracer
	Storage Storage
	Foreign Foreign
}

type Datasource

type Datasource struct {
	Qualifier string
	Table     string
	As        string
}

func ExecuteAliasedTableExpression

func ExecuteAliasedTableExpression(ec *SessionContext, expr *sqlparser.AliasedTableExpr, where *sqlparser.Where, hasJoin bool) (Datasource, memcore.Query, error)

func ExecuteJoinTableExpression

func ExecuteJoinTableExpression(ec *SessionContext, expr *sqlparser.JoinTableExpr, where *sqlparser.Where) (Datasource, memcore.Query, error)

func ExecuteTableExpression

func ExecuteTableExpression(ec *SessionContext, expr sqlparser.TableExpr, where *sqlparser.Where, hasJoin bool) (Datasource, memcore.Query, error)

type ExecuteTracer

type ExecuteTracer struct {
	Results []string

	Reads map[string][]ReadInfo
	// contains filtered or unexported fields
}

func (*ExecuteTracer) Format

func (d *ExecuteTracer) Format(formater Formater)

func (*ExecuteTracer) NewTable

func (d *ExecuteTracer) NewTable(table, as string, expr sqlparser.Expr) *TableTracer

func (*ExecuteTracer) ReadError

func (d *ExecuteTracer) ReadError(tableName string, tags []memcore.KeyValue, err error)

func (*ExecuteTracer) ReadOk

func (d *ExecuteTracer) ReadOk(tableName string, tags []memcore.KeyValue, value interface{})

func (*ExecuteTracer) ReadSkip

func (d *ExecuteTracer) ReadSkip(tableName string, tags []memcore.KeyValue)

func (*ExecuteTracer) String

func (d *ExecuteTracer) String() string

func (*ExecuteTracer) Track

func (d *ExecuteTracer) Track(query memcore.Query) memcore.Query

type Foreign

type Foreign interface {
	From(ctx *SessionContext, tableAs TableAlias, where *sqlparser.Where) (memcore.Query, error)
}

func NewDbForeign

func NewDbForeign(drv string, conn *sql.DB) Foreign

type ForeignQuery

type ForeignQuery struct {
	memcore.Query
	// contains filtered or unexported fields
}

func WrapForeign

func WrapForeign(q memcore.Query) ForeignQuery

func (*ForeignQuery) ReadAll

func (query *ForeignQuery) ReadAll(ctx memcore.Context) ([]memcore.Record, error)

type Formater

type Formater interface {
	Println(...interface{})
}

type HookStorage

type HookStorage struct {
	Storage memcore.Storage

	Read ReadFunc
}

func NewHookStorage

func NewHookStorage(storage memcore.Storage, read ReadFunc) *HookStorage

func (*HookStorage) EnsureTables

func (hs *HookStorage) EnsureTables(ctx *SessionContext, tableName TableAlias, iterator parser.KeyValueIterator) error

func (*HookStorage) From

func (hs *HookStorage) From(ctx *SessionContext, tableName TableAlias, tableExpr sqlparser.Expr, trace func(TableName)) (memcore.Query, error)

func (*HookStorage) GetPredateLimit

func (hs *HookStorage) GetPredateLimit(ctx *SessionContext) time.Time

type KeyValue

type KeyValue = memcore.KeyValue

type ReadFunc

type ReadFunc func(ctx *SessionContext, tableName string, tags []memcore.KeyValue) (time.Time, interface{}, error)

func ReadValues

func ReadValues(values map[string][]map[string]interface{}) ReadFunc

type ReadInfo

type ReadInfo struct {
	Tags   []memcore.KeyValue
	Method int
	Result interface{}
	Error  error
}

type Record

type Record = memcore.Record

type RecordSet

type RecordSet = memcore.RecordSet

func Execute

func Execute(ctx *Context, sqlstmt string) (rset RecordSet, err error)

type SessionContext

type SessionContext struct {
	*Context
	// contains filtered or unexported fields
}

func (*SessionContext) Close

func (session *SessionContext) Close() error

func (*SessionContext) ExecuteSelect

func (sc *SessionContext) ExecuteSelect(stmt sqlparser.SelectStatement) (memcore.Query, error)

func (*SessionContext) GetQuery

func (sc *SessionContext) GetQuery(name string) (*memcore.ReferenceQuery, bool)

func (*SessionContext) GetResultSet

func (sc *SessionContext) GetResultSet(stmt string) ([]memcore.Record, bool)

func (*SessionContext) Init

func (session *SessionContext) Init() error

func (*SessionContext) OnClosing

func (sc *SessionContext) OnClosing(closers ...io.Closer)

func (*SessionContext) OnIniting

func (sc *SessionContext) OnIniting(cb func() error)

func (*SessionContext) SetResultSet

func (sc *SessionContext) SetResultSet(stmt string, records []memcore.Record)

type Storage

type Storage interface {
	From(ctx *SessionContext, tableName TableAlias, tableExpr sqlparser.Expr, trace func(TableName)) (memcore.Query, error)
}

func WrapStorage

func WrapStorage(storage memcore.Storage) Storage

type StrFormater

type StrFormater struct {
	// contains filtered or unexported fields
}

func (*StrFormater) Println

func (f *StrFormater) Println(args ...interface{})

func (*StrFormater) String

func (f *StrFormater) String() string

type Table

type Table = memcore.Table

type TableAlias

type TableAlias = memcore.TableAlias

type TableContext

type TableContext struct {
	*SessionContext
	// contains filtered or unexported fields
}

type TableName

type TableName = memcore.TableName

type TableQuery

type TableQuery struct {
	Name  string
	Alias string
	Query *memcore.ReferenceQuery
}

type TableTracer

type TableTracer struct {
	Table       string
	As          string
	TableFilter string
	TableNames  []memcore.TableName
	Where       string

	Results []string
}

func (*TableTracer) Format

func (d *TableTracer) Format(formater Formater)

func (*TableTracer) SetTableNames

func (d *TableTracer) SetTableNames(tableNames []memcore.TableName)

func (*TableTracer) SetWhere

func (d *TableTracer) SetWhere(expr sqlparser.Expr)

func (*TableTracer) Track

func (d *TableTracer) Track(query memcore.Query) memcore.Query

type Value

type Value = memcore.Value

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL