// AllRangeDescriptors fetches all meta2 RangeDescriptor using the given txn. func AllRangeDescriptors(txn *client.Txn) ([]roachpb.RangeDescriptor, error) { // TODO(dan): Iterate with some batch size. rows, err := txn.Scan(keys.Meta2Prefix, keys.MetaMax, 0) if err != nil { return nil, errors.Wrap(err, "unable to scan range descriptors") } rangeDescs := make([]roachpb.RangeDescriptor, len(rows)) for i, row := range rows { if err := row.ValueProto(&rangeDescs[i]); err != nil { return nil, errors.Wrapf(err, "%s: unable to unmarshal range descriptor", row.Key) } } return rangeDescs, nil }
// scanCmd reads the values from the db from [key, endKey). func scanCmd(c *cmd, txn *client.Txn, t *testing.T) error { rows, err := txn.Scan(c.getKey(), c.getEndKey(), 0) if err != nil { return err } var vals []string keyPrefix := []byte(fmt.Sprintf("%d.", c.historyIdx)) for _, kv := range rows { key := bytes.TrimPrefix(kv.Key, keyPrefix) c.env[string(key)] = kv.ValueInt() vals = append(vals, fmt.Sprintf("%d", kv.ValueInt())) } c.debug = fmt.Sprintf("[%s]", strings.Join(vals, " ")) return nil }
func allSQLDescriptors(txn *client.Txn) ([]sqlbase.Descriptor, error) { startKey := roachpb.Key(keys.MakeTablePrefix(keys.DescriptorTableID)) endKey := startKey.PrefixEnd() // TODO(dan): Iterate with some batch size. rows, err := txn.Scan(startKey, endKey, 0) if err != nil { return nil, errors.Wrap(err, "unable to scan SQL descriptors") } sqlDescs := make([]sqlbase.Descriptor, len(rows)) for i, row := range rows { if err := row.ValueProto(&sqlDescs[i]); err != nil { return nil, errors.Wrapf(err, "%s: unable to unmarshal SQL descriptor", row.Key) } } return sqlDescs, nil }