func rowFromTMapColumns(key []byte, tm thrift.TMap) *SuperRow { if tm == nil || tm.Len() <= 0 { return nil } r := &SuperRow{Key: key} for ele := range tm.Iter() { //fmt.Printf("K: %s V: %+v %T\n", ele.Key(), ele.Value(), ele.Value()) tl := ele.Value().(thrift.TList) for colI := range tl.Iter() { var col *cassandra.ColumnOrSuperColumn = colI.(*cassandra.ColumnOrSuperColumn) row := &Row{Key: col.SuperColumn.Name} r.Rows = append(r.Rows, row) //fmt.Printf("\tSCName: %s\n", col.SuperColumn.Name) //fmt.Printf("Columns: %+v %T\n", col.SuperColumn.Columns, col.SuperColumn.Columns) for colX := range col.SuperColumn.Columns.Iter() { theRealCol := colX.(*cassandra.Column) c := &Column{ Name: theRealCol.Name, Value: theRealCol.Value, Timestamp: theRealCol.Timestamp, Ttl: theRealCol.Ttl, } row.Columns = append(row.Columns, c) //fmt.Printf("\t\tcol: %s %s\n",theRealCol.Name, theRealCol.Value) } } } return r }
func rowsColumnCountFromTMap(tm thrift.TMap) []*RowColumnCount { if tm == nil || tm.Len() <= 0 { return make([]*RowColumnCount, 0) } r := make([]*RowColumnCount, 0) for rowI := range tm.Iter() { key := keyFromTMap(rowI) count := int((rowI.Value()).(int32)) if count > 0 { r = append(r, &RowColumnCount{Key: key, Count: count}) } } return r }
func rowsFromTMap(tm thrift.TMap) []*Row { if tm == nil || tm.Len() <= 0 { return make([]*Row, 0) } r := make([]*Row, 0) for rowI := range tm.Iter() { key := keyFromTMap(rowI) columns := (rowI.Value()).(thrift.TList) row := rowFromTListColumns(key, columns) if row != nil { r = append(r, row) } } return r }
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 }