本文整理汇总了Golang中github.com/pingcap/tidb/field.RFQNames函数的典型用法代码示例。如果您正苦于以下问题:Golang RFQNames函数的具体用法?Golang RFQNames怎么用?Golang RFQNames使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了RFQNames函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Explain
// Explain implements the plan.Plan Explain interface.
func (r *TableDefaultPlan) Explain(w format.Formatter) {
fmtStr := "┌Iterate all rows of table %q\n└Output field names %v\n"
if r.rangeScan {
fmtStr = "┌Range scan rows of table %q\n└Output field names %v\n"
}
w.Format(fmtStr, r.T.TableName(), field.RFQNames(r.Fields))
}
示例2: Explain
// Explain implements the plan.Plan Explain interface.
func (r *SelectFinalPlan) Explain(w format.Formatter) {
r.Src.Explain(w)
if r.HiddenFieldOffset == len(r.Src.GetFields()) {
// we have no hidden fields, can return.
return
}
w.Format("┌Evaluate\n└Output field names %v\n", field.RFQNames(r.ResultFields[0:r.HiddenFieldOffset]))
}
示例3: Explain
// Explain implements the plan.Plan Explain interface.
func (r *SelectFieldsDefaultPlan) Explain(w format.Formatter) {
// TODO: check for non existing fields
r.Src.Explain(w)
w.Format("┌Evaluate")
for _, v := range r.Fields {
w.Format(" %s,", v)
}
w.Format("\n└Output field names %v\n", field.RFQNames(r.ResultFields))
}
示例4: explainNode
func (r *JoinPlan) explainNode(w format.Formatter, node plan.Plan) {
sel := !isTableOrIndex(node)
if sel {
w.Format("┌Iterate all rows of virtual table\n")
}
node.Explain(w)
if sel {
w.Format("└Output field names %v\n", field.RFQNames(node.GetFields()))
}
}
示例5: Explain
// Explain implements plan.Plan Explain interface.
func (r *JoinPlan) Explain(w format.Formatter) {
// TODO: show more useful join plan
if r.Right == nil {
// if right is nil, we don't do a join, just simple select table
r.Left.Explain(w)
return
}
w.Format("┌Compute %s Cartesian product of\n", r.Type)
r.explainNode(w, r.Left)
r.explainNode(w, r.Right)
w.Format("└Output field names %v\n", field.RFQNames(r.Fields))
}
示例6: Explain
// Explain implements plan.Plan Explain interface.
func (r *indexPlan) Explain(w format.Formatter) {
w.Format("┌Iterate rows of table %q using index %q where %s in ", r.src.TableName(), r.idxName, r.col.Name.L)
for _, span := range r.spans {
open := "["
close := "]"
if span.lowExclude {
open = "("
}
if span.highExclude {
close = ")"
}
w.Format("%s%v,%v%s ", open, span.lowVal, span.highVal, close)
}
w.Format("\n└Output field names %v\n", field.RFQNames(r.GetFields()))
}
示例7: Explain
// Explain implements plan.Plan Explain interface.
func (r *OrderByDefaultPlan) Explain(w format.Formatter) {
r.Src.Explain(w)
w.Format("┌Order by")
items := make([]string, len(r.By))
for i, v := range r.By {
order := "ASC"
if !r.Ascs[i] {
order = "DESC"
}
items[i] = fmt.Sprintf(" %s %s", v, order)
}
w.Format("%s", strings.Join(items, ","))
w.Format("\n└Output field names %v\n", field.RFQNames(r.ResultFields))
}
示例8: Explain
// Explain implements plan.Plan Explain interface.
func (r *GroupByDefaultPlan) Explain(w format.Formatter) {
r.Src.Explain(w)
w.Format("┌Evaluate")
for _, v := range r.Fields {
w.Format(" %s as %s,", v.Expr, fmt.Sprintf("%q", v.Name))
}
switch {
case len(r.By) == 0: //TODO this case should not exist for this plan.Plan, should become TableDefaultPlan
w.Format("\n│Group by distinct rows")
default:
w.Format("\n│Group by")
for _, v := range r.By {
w.Format(" %s,", v)
}
}
w.Format("\n└Output field names %v\n", field.RFQNames(r.ResultFields))
}
示例9: Explain
// Explain implements plan.Plan Explain interface.
func (r *NullPlan) Explain(w format.Formatter) {
w.Format("┌Iterate no rows\n└Output field names %v\n", field.RFQNames(r.Fields))
}
示例10: Explain
// Explain implements plan.Plan Explain interface.
func (r *OffsetDefaultPlan) Explain(w format.Formatter) {
r.Src.Explain(w)
w.Format("┌Skip first %d records\n└Output field names %v\n", r.Count, field.RFQNames(r.Fields))
}
示例11: Explain
// Explain implements the plan.Plan interface.
func (r *TableNilPlan) Explain(w format.Formatter) {
w.Format("┌Iterate all rows of table %q\n└Output field names %v\n", r.T.TableName(), field.RFQNames(r.GetFields()))
}
示例12: TestMain
func (*testResultFieldSuite) TestMain(c *C) {
col := column.Col{
ColumnInfo: model.ColumnInfo{
FieldType: *types.NewFieldType(mysql.TypeLong),
Name: model.NewCIStr("c1"),
},
}
col.Flag |= mysql.UnsignedFlag
r := &field.ResultField{
Col: col,
Name: "c1",
OrgTableName: "t1",
}
c.Assert(r.String(), Equals, "c1")
r.TableName = "a"
c.Assert(r.String(), Equals, "a.c1")
r.DBName = "test"
c.Assert(r.String(), Equals, "test.a.c1")
cr := r.Clone()
c.Assert(r.String(), Equals, cr.String())
col1 := column.Col{
ColumnInfo: model.ColumnInfo{
FieldType: *types.NewFieldType(mysql.TypeLong),
Name: model.NewCIStr("c2"),
},
}
col1.Flag |= mysql.UnsignedFlag
r1 := &field.ResultField{
Col: col1,
Name: "c2",
TableName: "a",
OrgTableName: "t1",
DBName: "test",
}
rs := []*field.ResultField{r, r1}
ns := field.RFQNames(rs)
c.Assert(ns, HasLen, 2)
c.Assert(ns[0], Equals, "\"c1\"")
c.Assert(ns[1], Equals, "\"c2\"")
col2 := column.Col{
ColumnInfo: model.ColumnInfo{
FieldType: *types.NewFieldType(mysql.TypeVarchar),
Name: model.NewCIStr("c3"),
},
}
col2.Flag |= mysql.UnsignedFlag
col3 := column.Col{
ColumnInfo: model.ColumnInfo{
FieldType: *types.NewFieldType(mysql.TypeBlob),
Name: model.NewCIStr("c4"),
},
}
col3.Flag |= mysql.UnsignedFlag
cols := []*column.Col{&col, &col1, &col2, &col3}
rs = field.ColsToResultFields(cols, "t")
c.Assert(rs, HasLen, 4)
c.Assert(rs[2].Tp, Equals, mysql.TypeVarString)
c.Assert(rs[3].Tp, Equals, mysql.TypeBlob)
// For CheckAmbiguousField
err := field.CheckAmbiguousField("c1", rs, field.OrgFieldNameFlag)
c.Assert(err, IsNil)
col4 := column.Col{
ColumnInfo: model.ColumnInfo{
FieldType: *types.NewFieldType(mysql.TypeVarchar),
Name: model.NewCIStr("c2"),
},
}
r2 := &field.ResultField{
Col: col4,
Name: "c22",
TableName: "b",
OrgTableName: "t2",
DBName: "test",
}
rs = []*field.ResultField{r, r1, r2}
// r1 and r2 are ambiguous: same column name but different table names
err = field.CheckAmbiguousField("c2", rs, field.OrgFieldNameFlag)
c.Assert(err, NotNil)
// r1 and r2 with different alias name
err = field.CheckAmbiguousField("c2", rs, field.FieldNameFlag)
c.Assert(err, IsNil)
// For CloneFieldByName
_, err = field.CloneFieldByName("cx", rs, field.OrgFieldNameFlag)
c.Assert(err, NotNil)
_, err = field.CloneFieldByName("c2", rs, field.OrgFieldNameFlag)
c.Assert(err, IsNil)
// For check all fields name
names := []string{"cx"}
//.........这里部分代码省略.........
示例13: Explain
// Explain implements plan.Plan Explain interface.
func (r *FilterDefaultPlan) Explain(w format.Formatter) {
r.Plan.Explain(w)
w.Format("┌FilterDefaultPlan Filter on %v\n", r.Expr)
w.Format("└Output field names %v\n", field.RFQNames(r.GetFields()))
}
示例14: TestMain
func (*testResultFieldSuite) TestMain(c *C) {
col := column.Col{
ColumnInfo: model.ColumnInfo{
FieldType: *types.NewFieldType(mysql.TypeLong),
Name: model.NewCIStr("c1"),
},
}
col.Flag |= mysql.UnsignedFlag
r := &field.ResultField{
Col: col,
Name: "c1",
OrgTableName: "t1",
}
c.Assert(r.String(), Equals, "c1")
r.TableName = "a"
c.Assert(r.String(), Equals, "a.c1")
r.DBName = "test"
c.Assert(r.String(), Equals, "test.a.c1")
cr := r.Clone()
c.Assert(r.String(), Equals, cr.String())
col1 := column.Col{
ColumnInfo: model.ColumnInfo{
FieldType: *types.NewFieldType(mysql.TypeLong),
Name: model.NewCIStr("c2"),
},
}
col1.Flag |= mysql.UnsignedFlag
r1 := &field.ResultField{
Col: col1,
Name: "c2",
TableName: "a",
OrgTableName: "t1",
DBName: "test",
}
rs := []*field.ResultField{r, r1}
ns := field.RFQNames(rs)
c.Assert(ns, HasLen, 2)
c.Assert(ns[0], Equals, "\"c1\"")
c.Assert(ns[1], Equals, "\"c2\"")
col2 := column.Col{
ColumnInfo: model.ColumnInfo{
FieldType: *types.NewFieldType(mysql.TypeVarchar),
Name: model.NewCIStr("c3"),
},
}
col2.Flag |= mysql.UnsignedFlag
col3 := column.Col{
ColumnInfo: model.ColumnInfo{
FieldType: *types.NewFieldType(mysql.TypeBlob),
Name: model.NewCIStr("c4"),
},
}
col3.Flag |= mysql.UnsignedFlag
cols := []*column.Col{&col, &col1, &col2, &col3}
rs = field.ColsToResultFields(cols, "t")
c.Assert(rs, HasLen, 4)
c.Assert(rs[2].Tp, Equals, mysql.TypeVarString)
c.Assert(rs[3].Tp, Equals, mysql.TypeBlob)
col4 := column.Col{
ColumnInfo: model.ColumnInfo{
FieldType: *types.NewFieldType(mysql.TypeVarchar),
Name: model.NewCIStr("c2"),
},
}
r2 := &field.ResultField{
Col: col4,
Name: "c22",
TableName: "b",
OrgTableName: "t2",
DBName: "test",
}
rs = []*field.ResultField{r, r1, r2}
// For CloneFieldByName
_, err := field.CloneFieldByName("cx", rs)
c.Assert(err, NotNil)
_, err = field.CloneFieldByName("c2", rs)
c.Assert(err, IsNil)
// For ContainAllFieldNames
names := []string{"cx", "c2"}
b := field.ContainAllFieldNames(names, rs)
c.Assert(b, IsFalse)
names = []string{"c2", "c1"}
b = field.ContainAllFieldNames(names, rs)
c.Assert(b, IsTrue)
}