func (r *reader) SuperGet(key []byte) (*SuperRow, error) { if r.cf == "" { return nil, errors.New("No column family specified") } cp := r.buildColumnParent() sp := r.buildPredicate() var ret thrift.TMap var keys thrift.TList = thrift.NewTList(thrift.BINARY, 0) // size appears to be ignored in the thrift lib keys.Push(key) err := r.pool.run(func(c *connection) (*cassandra.InvalidRequestException, *cassandra.UnavailableException, *cassandra.TimedOutException, error) { var ire *cassandra.InvalidRequestException var ue *cassandra.UnavailableException var te *cassandra.TimedOutException var err error ret, ire, ue, te, err = c.client.MultigetSlice(keys, cp, sp, cassandra.ConsistencyLevel(r.consistencyLevel)) return ire, ue, te, err }) if err != nil { return nil, err } return rowFromTMapColumns(key, ret), nil }
func (w *writer) addWriter(cf string, key []byte) *cassandra.Mutation { tm := cassandra.NewMutation() var cfMuts thrift.TMap im, exists := w.writers.Get(key) if !exists { cfMuts = thrift.NewTMap(thrift.STRING, thrift.LIST, 1) w.writers.Set(key, cfMuts) } else { cfMuts = im.(thrift.TMap) } var mutList thrift.TList im, exists = cfMuts.Get(cf) if !exists { mutList = thrift.NewTList(thrift.STRUCT, 1) cfMuts.Set(cf, mutList) } else { mutList = im.(thrift.TList) } mutList.Push(tm) return tm }