// Proto3ToFields converts a proto3 []Fields to an internal data structure. func Proto3ToFields(f []*pbq.Field) []Field { if len(f) == 0 { return nil } result := make([]Field, len(f)) for i, f := range f { result[i].Name = f.Name result[i].Type, result[i].Flags = sqltypes.TypeToMySQL(f.Type) } return result }
// MarshalBson bson-encodes QueryResult. func (queryResult *QueryResult) MarshalBson(buf *bytes2.ChunkedWriter, key string) { bson.EncodeOptionalPrefix(buf, bson.Object, key) lenWriter := bson.NewLenWriter(buf) // []*query.Field { bson.EncodePrefix(buf, bson.Array, "Fields") lenWriter := bson.NewLenWriter(buf) var f BSONField for _i, _v1 := range queryResult.Fields { // *query.Field // This part was manually changed. f.Name = _v1.Name f.Type, f.Flags = sqltypes.TypeToMySQL(_v1.Type) bson.EncodeOptionalPrefix(buf, bson.Object, bson.Itoa(_i)) bson.MarshalToBuffer(buf, &f) } lenWriter.Close() } bson.EncodeUint64(buf, "RowsAffected", queryResult.RowsAffected) bson.EncodeUint64(buf, "InsertId", queryResult.InsertId) // [][]sqltypes.Value { bson.EncodePrefix(buf, bson.Array, "Rows") lenWriter := bson.NewLenWriter(buf) for _i, _v2 := range queryResult.Rows { // []sqltypes.Value { bson.EncodePrefix(buf, bson.Array, bson.Itoa(_i)) lenWriter := bson.NewLenWriter(buf) for _i, _v3 := range _v2 { _v3.MarshalBson(buf, bson.Itoa(_i)) } lenWriter.Close() } } lenWriter.Close() } // *RPCError if queryResult.Err == nil { bson.EncodePrefix(buf, bson.Null, "Err") } else { (*queryResult.Err).MarshalBson(buf, "Err") } lenWriter.Close() }