本文整理匯總了Golang中github.com/pingcap/tidb/expression.BinaryOperation.IsIdentRelOpVal方法的典型用法代碼示例。如果您正苦於以下問題:Golang BinaryOperation.IsIdentRelOpVal方法的具體用法?Golang BinaryOperation.IsIdentRelOpVal怎麽用?Golang BinaryOperation.IsIdentRelOpVal使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/pingcap/tidb/expression.BinaryOperation
的用法示例。
在下文中一共展示了BinaryOperation.IsIdentRelOpVal方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: filterBinOp
func (r *TableDefaultPlan) filterBinOp(ctx context.Context, x *expression.BinaryOperation) (plan.Plan, bool, error) {
ok, cn, rval, err := x.IsIdentRelOpVal()
if err != nil {
return r, false, err
}
if !ok {
return r, false, nil
}
t := r.T
c := column.FindCol(t.Cols(), cn)
if c == nil {
return nil, false, errors.Errorf("No such column: %s", cn)
}
ix := t.FindIndexByColName(cn)
if ix == nil { // Column cn has no index.
return r, false, nil
}
if rval, err = types.Convert(rval, &c.FieldType); err != nil {
return nil, false, err
}
if rval == nil {
// if nil, any <, <=, >, >=, =, != operator will do nothing
// any value compared null returns null
// TODO: if we support <=> later, we must handle null
return &NullPlan{r.GetFields()}, true, nil
}
return &indexPlan{
src: t,
colName: cn,
idxName: ix.Name.O,
idx: ix.X,
spans: toSpans(x.Op, rval),
}, true, nil
}