azkustodata/query/table_impl.go (72 lines of code) (raw):

package query import ( "github.com/Azure/azure-kusto-go/azkustodata/errors" ) type baseTable struct { dataSet BaseDataset index int64 id string name string kind string columns []Column columnsByName map[string]Column } func NewBaseTable(ds BaseDataset, index int64, id string, name string, kind string, columns []Column) BaseTable { b := &baseTable{ dataSet: ds, index: index, id: id, name: name, kind: kind, columns: columns, } b.columnsByName = make(map[string]Column) for _, c := range columns { b.columnsByName[c.Name()] = c } return b } func (t *baseTable) Id() string { return t.id } func (t *baseTable) Index() int64 { return t.index } func (t *baseTable) Name() string { return t.name } func (t *baseTable) Columns() []Column { return t.columns } func (t *baseTable) Kind() string { return t.kind } func (t *baseTable) ColumnByName(name string) Column { if c, ok := t.columnsByName[name]; ok { return c } return nil } func (t *baseTable) IsPrimaryResult() bool { return t.Kind() == t.dataSet.PrimaryResultKind() } func (t *baseTable) Op() errors.Op { set := t.dataSet if set == nil { return errors.OpUnknown } return set.Op() } type table struct { BaseTable rows []Row } func NewTable(base BaseTable, rows []Row) Table { return &table{ BaseTable: base, rows: rows, } } func (t *table) Rows() []Row { return t.rows }