func unmarshalValue(col structured.ColumnDescriptor, kv client.KeyValue) sqlwire.Datum { var d sqlwire.Datum if !kv.Exists() { return d } switch col.Type.Kind { case structured.ColumnType_BIT, structured.ColumnType_INT: tmp := kv.ValueInt() d.IntVal = &tmp case structured.ColumnType_FLOAT: tmp := math.Float64frombits(uint64(kv.ValueInt())) d.FloatVal = &tmp case structured.ColumnType_CHAR, structured.ColumnType_TEXT, structured.ColumnType_BLOB: // TODO(pmattis): The conversion to string isn't strictly necessary, but // makes log messages more readable right now. tmp := string(kv.ValueBytes()) d.StringVal = &tmp } return d }