Пример #1
0
func (e *Evaluator) isTruth(v *ast.IsTruthExpr) bool {
	var boolVal bool
	datum := v.Expr.GetDatum()
	if !datum.IsNull() {
		ival, err := datum.ToBool()
		if err != nil {
			e.err = errors.Trace(err)
			return false
		}
		if ival == v.True {
			boolVal = true
		}
	}
	if v.Not {
		boolVal = !boolVal
	}
	v.GetDatum().SetInt64(boolToInt64(boolVal))
	return true
}
Пример #2
0
func (e *Evaluator) isTruth(v *ast.IsTruthExpr) bool {
	var boolVal bool
	val := v.Expr.GetValue()
	if !types.IsNil(val) {
		ival, err := types.ToBool(val)
		if err != nil {
			e.err = errors.Trace(err)
			return false
		}
		if ival == v.True {
			boolVal = true
		}
	}
	if v.Not {
		boolVal = !boolVal
	}
	v.SetValue(boolToInt64(boolVal))
	return true
}