Data Type Formatting Functions.

This commit is contained in:
zer0sub 2019-06-02 16:22:22 +02:00
parent 938c01b9b2
commit fcd3596780
2 changed files with 68 additions and 13 deletions

View file

@ -86,6 +86,20 @@ func newStringFunc(name string, expressions ...expression) StringExpression {
return stringFunc
}
type dateFunc struct {
funcExpressionImpl
dateInterfaceImpl
}
func newDateFunc(name string, expressions ...expression) DateExpression {
dateFunc := &dateFunc{}
dateFunc.funcExpressionImpl = *newFunc(name, expressions, dateFunc)
dateFunc.dateInterfaceImpl.parent = dateFunc
return dateFunc
}
type boolFunc struct {
funcExpressionImpl
boolInterfaceImpl
@ -100,6 +114,20 @@ func newBoolFunc(name string, expressions ...expression) BoolExpression {
return boolFunc
}
type timestampzFunc struct {
funcExpressionImpl
timestampzInterfaceImpl
}
func newTimestampzFunc(name string, expressions ...expression) TimestampzExpression {
timestampzFunc := &timestampzFunc{}
timestampzFunc.funcExpressionImpl = *newFunc(name, expressions, timestampzFunc)
timestampzFunc.timestampzInterfaceImpl.parent = timestampzFunc
return timestampzFunc
}
// ------------------ Mathematical functions ---------------//
func ABSf(floatExpression FloatExpression) FloatExpression {
@ -336,3 +364,21 @@ func TO_ASCII(str StringExpression, encoding ...StringExpression) StringExpressi
func TO_HEX(number IntegerExpression) StringExpression {
return newStringFunc("TO_HEX", number)
}
//----------Data Type Formatting Functions ----------------------//
func TO_CHAR(expression expression, text StringExpression) StringExpression {
return newStringFunc("TO_CHAR", expression, text)
}
func TO_DATE(dateStr, format StringExpression) DateExpression {
return newDateFunc("TO_DATE", dateStr, format)
}
func TO_NUMBER(floatStr, format StringExpression) FloatExpression {
return newFloatFunc("TO_NUMBER", floatStr, format)
}
func TO_TIMESTAMP(timestampzStr, format StringExpression) TimestampzExpression {
return newTimestampzFunc("TO_TIMESTAMP", timestampzStr, format)
}