func NewShiftRight(left, right sql.Expression) *Arithmetic {
	return NewArithmetic(left, right, sqlparser.ShiftRightStr)
}
NewShiftRight creates a new Arithmetic >> sql.Expression.
package expression
import (
	"fmt"
	"reflect"
	"time"
	errors "gopkg.in/src-d/go-errors.v1"
	"vitess.io/vitess/go/vt/sqlparser"
	"github.com/src-d/go-mysql-server/sql"
)
var (
	errUnableToCast = errors.NewKind("Unable to cast between types: %T, %T")
	errUnableToEval = errors.NewKind("Unable to evaluate an expression: %v %s %v")
)
type Arithmetic struct {
	BinaryExpression
	Op string
}
func NewArithmetic(left, right sql.Expression, op string) *Arithmetic {
	return &Arithmetic{BinaryExpression{Left: left, Right: right}, op}
}
func NewPlus(left, right sql.Expression) *Arithmetic {
	return NewArithmetic(left, right, sqlparser.PlusStr)
}
func NewMinus(left, right sql.Expression) *Arithmetic {
	return NewArithmetic(left, right, sqlparser.MinusStr)
}
func NewMult(left, right sql.Expression) *Arithmetic {
	return NewArithmetic(left, right, sqlparser.MultStr)
}
func NewDiv(left, right sql.Expression) *Arithmetic {
	return NewArithmetic(left, right, sqlparser.DivStr)
}
func NewShiftLeft(left, right sql.Expression) *Arithmetic {
	return NewArithmetic(left, right, sqlparser.ShiftLeftStr)
}