in azkustodata/query/v2/iterative_dataset.go [296:330]
func handleDataTable(d *iterativeDataset, dec *json.Decoder) error {
var dt DataTable
if err := dec.Decode(&dt); err != nil {
return err
}
if dt.Header.TableKind == PrimaryResultTableKind {
return errors.ES(d.Op(), errors.KInternal, "received a DataTable frame for a primary result table")
}
switch dt.Header.TableKind {
case QueryPropertiesKind:
// When we get this, we want to store it and not send it to the user immediately.
// We will wait until after the primary results (when we get the QueryCompletionInformation table) and then send it.
res, err := newTable(d, dt)
if err != nil {
return err
}
d.queryProperties = iterativeWrapper{res}
case QueryCompletionInformationKind:
if d.queryProperties != nil {
d.sendTable(d.queryProperties)
}
res, err := newTable(d, dt)
if err != nil {
return err
}
d.sendTable(iterativeWrapper{res})
default:
return errors.ES(d.Op(), errors.KInternal, "unknown secondary table - %s %s", dt.Header.TableName, dt.Header.TableKind)
}
return nil
}