func (p *testShowSuit) TestShowCollation(c *C) { pln := &plans.ShowPlan{} pln.Target = stmt.ShowCollation fls := pln.GetFields() c.Assert(fls, HasLen, 6) c.Assert(fls[2].Col.Tp, Equals, mysql.TypeLonglong) pln.Pattern = &expression.PatternLike{ Pattern: &expression.Value{ Val: "utf8%", }, } rset := rsets.Recordset{ Ctx: p.ctx, Plan: pln, } rows, err := rset.Rows(-1, 0) c.Assert(err, IsNil) c.Assert(len(rows), Greater, 0) pln.Close() pln.Pattern = nil tblWhere := []struct { Key string Value interface{} }{ {"Collation", "utf8_bin"}, {"Charset", "utf8"}, {"Id", 83}, {"Default", "Yes"}, {"Compiled", "Yes"}, {"Sortlen", 1}, } for _, w := range tblWhere { pln.Where = &expression.BinaryOperation{ L: &expression.Ident{CIStr: model.NewCIStr(w.Key)}, R: expression.Value{Val: w.Value}, Op: opcode.EQ, } row, err := rset.FirstRow() c.Assert(err, IsNil) c.Assert(row, HasLen, 6) pln.Close() } }
func (s *testOuterQuerySuite) TestRowStackFromPlan(c *C) { var data = []*testRowData{ {1, []interface{}{10, "hello"}}, } pln := &testTablePlan{data, []string{"id", "name"}, 0} p := &plans.RowStackFromPlan{ Src: pln, } fields := p.GetFields() c.Assert(fields, HasLen, 2) rset := rsets.Recordset{ Plan: p, Ctx: mock.NewContext()} _, err := rset.Rows(-1, 0) c.Assert(err, IsNil) }