2019-04-29 14:39:48 +02:00
|
|
|
package sqlbuilder
|
|
|
|
|
|
|
|
|
|
// Representation of an escaped literal
|
|
|
|
|
type literalExpression struct {
|
|
|
|
|
expressionInterfaceImpl
|
|
|
|
|
value interface{}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Literal(value interface{}) *literalExpression {
|
|
|
|
|
exp := literalExpression{value: value}
|
|
|
|
|
exp.expressionInterfaceImpl.parent = &exp
|
|
|
|
|
|
|
|
|
|
return &exp
|
|
|
|
|
}
|
|
|
|
|
|
2019-05-08 13:47:01 +02:00
|
|
|
func (l literalExpression) serialize(statement statementType, out *queryData) error {
|
|
|
|
|
out.insertArgument(l.value)
|
2019-04-29 14:39:48 +02:00
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
}
|
2019-05-06 12:42:15 +02:00
|
|
|
|
|
|
|
|
type numLiteralExpression struct {
|
|
|
|
|
literalExpression
|
|
|
|
|
numericInterfaceImpl
|
|
|
|
|
}
|
|
|
|
|
|
2019-05-07 19:06:21 +02:00
|
|
|
func IntLiteral(value int) numericExpression {
|
2019-05-06 12:42:15 +02:00
|
|
|
numLiteral := &numLiteralExpression{}
|
|
|
|
|
|
|
|
|
|
numLiteral.literalExpression = *Literal(value)
|
|
|
|
|
numLiteral.literalExpression.parent = numLiteral
|
|
|
|
|
|
|
|
|
|
numLiteral.numericInterfaceImpl.parent = numLiteral
|
|
|
|
|
|
|
|
|
|
return numLiteral
|
|
|
|
|
}
|