func readPrimaryTable()

in azkustodata/query/v2/iterative_dataset.go [245:292]


func readPrimaryTable(d *iterativeDataset, dec *json.Decoder) error {
	header := TableHeader{}
	err := dec.Decode(&header)
	if err != nil {
		return err
	}

	if err := handleTableHeader(d, header); err != nil {
		return err
	}

	for i := 0; ; {
		dec, frameType, err := nextFrame(d)
		if err != nil {
			return err
		}
		if frameType == TableFragmentFrameType {
			fragment := TableFragment{Columns: header.Columns, PreviousIndex: i}
			err = dec.Decode(&fragment)
			if err != nil {
				return err
			}
			i += len(fragment.Rows)
			if err = handleTableFragment(d, fragment); err != nil {
				return err
			}
			continue
		}

		if frameType == TableCompletionFrameType {
			completion := TableCompletion{}
			err = dec.Decode(&completion)
			if err != nil {
				return err
			}

			if err = handleTableCompletion(d, completion); err != nil {
				return err
			}

			break
		}

		return errors.ES(errors.OpQuery, errors.KInternal, "unexpected frame type %s, expected TableFragment or TableCompletion", frameType)
	}

	return nil
}