Tweaks to expr handlers
This commit is contained in:
@@ -176,6 +176,11 @@ var (
|
||||
Result: wrapRes("Number"),
|
||||
Handler: makeGenericFilterFncHandler("YEAR"),
|
||||
},
|
||||
"month": {
|
||||
Args: collectParams(true, "DateTime"),
|
||||
Result: wrapRes("Number"),
|
||||
Handler: makeGenericFilterFncHandler("MONTH"),
|
||||
},
|
||||
"date": {
|
||||
Args: collectParams(true, "DateTime"),
|
||||
Result: wrapRes("Number"),
|
||||
@@ -194,12 +199,12 @@ var (
|
||||
"float": {
|
||||
Args: collectParams(true, "Any"),
|
||||
Result: wrapRes("Float"),
|
||||
Handler: makeGenericTypecastHandler("FLOAT"),
|
||||
Handler: makeGenericTypecastHandler("DECIMAL"),
|
||||
},
|
||||
"int": {
|
||||
Args: collectParams(true, "Any"),
|
||||
Result: wrapRes("Float"),
|
||||
Handler: makeGenericTypecastHandler("INT"),
|
||||
Handler: makeGenericTypecastHandler("SIGNED"),
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -42,6 +42,16 @@ var (
|
||||
args = aa[0].Args
|
||||
return
|
||||
},
|
||||
"month": func(aa ...rdbms.FormattedASTArgs) (out string, args []interface{}, selfEnclosed bool, err error) {
|
||||
if len(aa) != 1 {
|
||||
err = fmt.Errorf("expecting 1 arguments, got %d", len(aa))
|
||||
return
|
||||
}
|
||||
|
||||
out = fmt.Sprintf("STRFTIME('%%m', %s)", aa[0].S)
|
||||
args = aa[0].Args
|
||||
return
|
||||
},
|
||||
"date": func(aa ...rdbms.FormattedASTArgs) (out string, args []interface{}, selfEnclosed bool, err error) {
|
||||
if len(aa) != 1 {
|
||||
err = fmt.Errorf("expecting 1 arguments, got %d", len(aa))
|
||||
@@ -52,6 +62,20 @@ var (
|
||||
args = aa[0].Args
|
||||
return
|
||||
},
|
||||
|
||||
// - typecast
|
||||
"float": func(aa ...rdbms.FormattedASTArgs) (out string, args []interface{}, selfEnclosed bool, err error) {
|
||||
selfEnclosed = true
|
||||
|
||||
if len(aa) != 1 {
|
||||
err = fmt.Errorf("expecting 1 argument, got %d", len(aa))
|
||||
return
|
||||
}
|
||||
|
||||
out = fmt.Sprintf("CAST(%s AS FLOAT)", aa[0].S)
|
||||
args = aa[0].Args
|
||||
return
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user