azkustodata/query/v2/table.go (43 lines of code) (raw):

package v2 import ( "github.com/Azure/azure-kusto-go/azkustodata/errors" "github.com/Azure/azure-kusto-go/azkustodata/query" "strconv" ) func newBaseTable(dataset query.BaseDataset, id int, name string, kind string, columns []query.Column) (query.BaseTable, error) { return query.NewBaseTable(dataset, int64(id), strconv.Itoa(id), name, kind, columns), nil } func newBaseTableFromHeader(dataset query.BaseDataset, th TableHeader) (query.BaseTable, error) { return newBaseTable(dataset, th.TableId, th.TableName, th.TableKind, th.Columns) } func newTable(dataset query.BaseDataset, dt DataTable) (query.Table, error) { base, err := newBaseTable(dataset, dt.Header.TableId, dt.Header.TableName, dt.Header.TableKind, dt.Header.Columns) if err != nil { return nil, err } return query.NewTable(base, dt.Rows), nil } type iterativeWrapper struct { table query.Table } func (f iterativeWrapper) Id() string { return f.table.Id() } func (f iterativeWrapper) Index() int64 { return f.table.Index() } func (f iterativeWrapper) Name() string { return f.table.Name() } func (f iterativeWrapper) Columns() []query.Column { return f.table.Columns() } func (f iterativeWrapper) Kind() string { return f.table.Kind() } func (f iterativeWrapper) ColumnByName(name string) query.Column { return f.table.ColumnByName(name) } func (f iterativeWrapper) Op() errors.Op { return f.table.Op() } func (f iterativeWrapper) IsPrimaryResult() bool { return f.table.IsPrimaryResult() } func (f iterativeWrapper) ToTable() (query.Table, error) { return f.table, nil } func (f iterativeWrapper) Rows() <-chan query.RowResult { ch := make(chan query.RowResult, len(f.table.Rows())) go func() { defer close(ch) for _, row := range f.table.Rows() { ch <- query.RowResultSuccess(row) } }() return ch }