Documentation ¶
Index ¶
- func GetInt64Value(ctx *sql.Context, expr sql.Expression) (int64, error)
- func NewDistinctIter(ctx *sql.Context, child sql.RowIter) *distinctIter
- func NewOrderedDistinctIter(child sql.RowIter, schema sql.Schema) *orderedDistinctIter
- func NewSortIter(s sql.SortFields, child sql.RowIter) *sortIter
- func NewTopRowsIter(s sql.SortFields, limit int64, calcFoundRows bool, child sql.RowIter, ...) *topRowsIter
- type ExceptIter
- type IntersectIter
- type JsonTableCol
- type JsonTableColOpts
- type JsonTableRowIter
- type LimitIter
- type RecursiveTableIter
- type UnionIter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetInt64Value ¶
GetInt64Value returns the int64 literal value in the expression given, or an error with the errStr given if it cannot.
func NewOrderedDistinctIter ¶
func NewSortIter ¶
func NewSortIter(s sql.SortFields, child sql.RowIter) *sortIter
func NewTopRowsIter ¶
Types ¶
type ExceptIter ¶
type IntersectIter ¶
type JsonTableCol ¶
type JsonTableCol struct { Path string // if there are nested columns, this is a schema Path, otherwise it is a col Path Opts *JsonTableColOpts Cols []*JsonTableCol // nested columns // contains filtered or unexported fields }
JsonTableCol represents a column in a json table.
func (*JsonTableCol) IsSibling ¶
func (c *JsonTableCol) IsSibling() bool
IsSibling returns if the jsonTableCol contains multiple columns
func (*JsonTableCol) LoadData ¶
func (c *JsonTableCol) LoadData(obj interface{})
LoadData loads the data for this column from the given object and c.path LoadData will always wrap the data in a slice to ensure it is iterable Additionally, this function will set the c.currSib to the first sibling
func (*JsonTableCol) NextSibling ¶
func (c *JsonTableCol) NextSibling() bool
NextSibling starts at the current sibling and moves to the next unfinished sibling if there are no more unfinished siblings, it sets c.currSib to the first sibling and returns true if the c.currSib is unfinished, nothing changes
func (*JsonTableCol) Reset ¶
func (c *JsonTableCol) Reset()
Reset clears the column's data and error, and recursively resets all nested columns
type JsonTableColOpts ¶
type JsonTableRowIter ¶
type JsonTableRowIter struct { Data []interface{} Cols []*JsonTableCol // contains filtered or unexported fields }
func (*JsonTableRowIter) NextSibling ¶
func (j *JsonTableRowIter) NextSibling() bool
NextSibling starts at the current sibling and moves to the next unfinished sibling if there are no more unfinished siblings, it resets to the first sibling
func (*JsonTableRowIter) ResetAll ¶
func (j *JsonTableRowIter) ResetAll()
type LimitIter ¶
type RecursiveTableIter ¶
TODO a queue is probably more optimal