1package exp 2 3type ( 4 sqlFunctionExpression struct { 5 name string 6 args []interface{} 7 } 8) 9 10// Creates a new SQLFunctionExpression with the given name and arguments 11func NewSQLFunctionExpression(name string, args ...interface{}) SQLFunctionExpression { 12 return sqlFunctionExpression{name: name, args: args} 13} 14 15func (sfe sqlFunctionExpression) Clone() Expression { 16 return sqlFunctionExpression{name: sfe.name, args: sfe.args} 17} 18 19func (sfe sqlFunctionExpression) Expression() Expression { return sfe } 20 21func (sfe sqlFunctionExpression) Args() []interface{} { return sfe.args } 22 23func (sfe sqlFunctionExpression) Name() string { return sfe.name } 24 25func (sfe sqlFunctionExpression) As(val interface{}) AliasedExpression { 26 return NewAliasExpression(sfe, val) 27} 28 29func (sfe sqlFunctionExpression) Eq(val interface{}) BooleanExpression { return eq(sfe, val) } 30func (sfe sqlFunctionExpression) Neq(val interface{}) BooleanExpression { return neq(sfe, val) } 31 32func (sfe sqlFunctionExpression) Gt(val interface{}) BooleanExpression { return gt(sfe, val) } 33func (sfe sqlFunctionExpression) Gte(val interface{}) BooleanExpression { return gte(sfe, val) } 34func (sfe sqlFunctionExpression) Lt(val interface{}) BooleanExpression { return lt(sfe, val) } 35func (sfe sqlFunctionExpression) Lte(val interface{}) BooleanExpression { return lte(sfe, val) } 36 37func (sfe sqlFunctionExpression) Between(val RangeVal) RangeExpression { return between(sfe, val) } 38 39func (sfe sqlFunctionExpression) NotBetween(val RangeVal) RangeExpression { 40 return notBetween(sfe, val) 41} 42 43func (sfe sqlFunctionExpression) Like(val interface{}) BooleanExpression { return like(sfe, val) } 44func (sfe sqlFunctionExpression) NotLike(val interface{}) BooleanExpression { return notLike(sfe, val) } 45func (sfe sqlFunctionExpression) ILike(val interface{}) BooleanExpression { return iLike(sfe, val) } 46 47func (sfe sqlFunctionExpression) NotILike(val interface{}) BooleanExpression { 48 return notILike(sfe, val) 49} 50 51func (sfe sqlFunctionExpression) RegexpLike(val interface{}) BooleanExpression { 52 return regexpLike(sfe, val) 53} 54 55func (sfe sqlFunctionExpression) RegexpNotLike(val interface{}) BooleanExpression { 56 return regexpNotLike(sfe, val) 57} 58 59func (sfe sqlFunctionExpression) RegexpILike(val interface{}) BooleanExpression { 60 return regexpILike(sfe, val) 61} 62 63func (sfe sqlFunctionExpression) RegexpNotILike(val interface{}) BooleanExpression { 64 return regexpNotILike(sfe, val) 65} 66 67func (sfe sqlFunctionExpression) In(vals ...interface{}) BooleanExpression { return in(sfe, vals...) } 68func (sfe sqlFunctionExpression) NotIn(vals ...interface{}) BooleanExpression { 69 return notIn(sfe, vals...) 70} 71func (sfe sqlFunctionExpression) Is(val interface{}) BooleanExpression { return is(sfe, val) } 72func (sfe sqlFunctionExpression) IsNot(val interface{}) BooleanExpression { return isNot(sfe, val) } 73func (sfe sqlFunctionExpression) IsNull() BooleanExpression { return is(sfe, nil) } 74func (sfe sqlFunctionExpression) IsNotNull() BooleanExpression { return isNot(sfe, nil) } 75func (sfe sqlFunctionExpression) IsTrue() BooleanExpression { return is(sfe, true) } 76func (sfe sqlFunctionExpression) IsNotTrue() BooleanExpression { return isNot(sfe, true) } 77func (sfe sqlFunctionExpression) IsFalse() BooleanExpression { return is(sfe, false) } 78func (sfe sqlFunctionExpression) IsNotFalse() BooleanExpression { return isNot(sfe, false) } 79 80func (sfe sqlFunctionExpression) Over(we WindowExpression) SQLWindowFunctionExpression { 81 return NewSQLWindowFunctionExpression(sfe, nil, we) 82} 83 84func (sfe sqlFunctionExpression) OverName(windowName IdentifierExpression) SQLWindowFunctionExpression { 85 return NewSQLWindowFunctionExpression(sfe, windowName, nil) 86} 87 88func (sfe sqlFunctionExpression) Asc() OrderedExpression { return asc(sfe) } 89func (sfe sqlFunctionExpression) Desc() OrderedExpression { return desc(sfe) } 90