func handleDataTable()

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
}