Add support for CASE operator.

This commit is contained in:
zer0sub 2019-05-06 12:42:15 +02:00
parent 3367df247c
commit 4f9323ddca
18 changed files with 243 additions and 272 deletions

View file

@ -4,9 +4,9 @@ type StringExpression interface {
Expression
Eq(expression StringExpression) BoolExpression
EqL(value string) BoolExpression
EqString(value string) BoolExpression
NotEq(expression StringExpression) BoolExpression
NotEqL(value string) BoolExpression
NotEqString(value string) BoolExpression
}
type stringInterfaceImpl struct {
@ -14,17 +14,17 @@ type stringInterfaceImpl struct {
}
func (b *stringInterfaceImpl) Eq(expression StringExpression) BoolExpression {
return newBinaryBoolExpression(b.parent, expression, " = ")
return Eq(b.parent, expression)
}
func (b *stringInterfaceImpl) EqL(value string) BoolExpression {
return newBinaryBoolExpression(b.parent, Literal(value), " = ")
func (b *stringInterfaceImpl) EqString(value string) BoolExpression {
return EqL(b.parent, value)
}
func (b *stringInterfaceImpl) NotEq(expression StringExpression) BoolExpression {
return newBinaryBoolExpression(b.parent, expression, " != ")
return NotEq(b.parent, expression)
}
func (b *stringInterfaceImpl) NotEqL(value string) BoolExpression {
return newBinaryBoolExpression(b.parent, Literal(value), " != ")
func (b *stringInterfaceImpl) NotEqString(value string) BoolExpression {
return NotEq(b.parent, Literal(value))
}