Add WEEK ref to base QL handlers
Also, added to PSQL, and SQLite ref handler
This commit is contained in:
@@ -66,6 +66,14 @@ var (
|
||||
)
|
||||
},
|
||||
},
|
||||
"week": {
|
||||
Handler: func(args ...exp.Expression) exp.Expression {
|
||||
return exp.NewSQLFunctionExpression("TO_CHAR",
|
||||
exp.NewLiteralExpression("?::TIMESTAMPTZ", args[0]),
|
||||
exp.NewLiteralExpression("?", "IW"),
|
||||
)
|
||||
},
|
||||
},
|
||||
"time": {
|
||||
Handler: func(args ...exp.Expression) exp.Expression {
|
||||
return exp.NewLiteralExpression("DATE_TRUNC('second', ?::TIME)::TIME", args[0])
|
||||
@@ -117,11 +125,11 @@ var (
|
||||
},
|
||||
|
||||
// functions currently unsupported in PostgreSQL store backend
|
||||
//"STD": {
|
||||
// "STD": {
|
||||
// Handler: func(args ...exp.Expression) exp.Expression {
|
||||
// return exp.NewLiteralExpression("")
|
||||
// },
|
||||
//},
|
||||
// },
|
||||
}.ExprHandlers()
|
||||
)
|
||||
|
||||
|
||||
@@ -45,6 +45,11 @@ func TestConverter(t *testing.T) {
|
||||
sql: `$1::DATE`,
|
||||
args: []any{"2022-07-21"},
|
||||
},
|
||||
{
|
||||
qry: `week('2022-07-21')`,
|
||||
sql: `TO_CHAR($1::TIMESTAMPTZ, $2)`,
|
||||
args: []any{"2022-07-21", "IW"},
|
||||
},
|
||||
{
|
||||
qry: `time('2022-07-21 12:41')`,
|
||||
sql: `DATE_TRUNC('second', $1::TIME)::TIME`,
|
||||
|
||||
@@ -56,6 +56,14 @@ var (
|
||||
)
|
||||
},
|
||||
},
|
||||
"week": {
|
||||
Handler: func(args ...exp.Expression) exp.Expression {
|
||||
return exp.NewSQLFunctionExpression("STRFTIME",
|
||||
exp.NewLiteralExpression("'%W'"),
|
||||
args[0],
|
||||
)
|
||||
},
|
||||
},
|
||||
"datetime": {
|
||||
Handler: func(args ...exp.Expression) exp.Expression {
|
||||
return exp.NewSQLFunctionExpression("DATETIME", args[0])
|
||||
@@ -81,21 +89,21 @@ var (
|
||||
},
|
||||
|
||||
// functions currently unsupported in SQLite store backend
|
||||
//"DATE_ADD": {
|
||||
// "DATE_ADD": {
|
||||
// Handler: func(args ...exp.Expression) exp.Expression {
|
||||
// return exp.NewLiteralExpression("")
|
||||
// },
|
||||
//},
|
||||
//"DATE_SUB": {
|
||||
// },
|
||||
// "DATE_SUB": {
|
||||
// Handler: func(args ...exp.Expression) exp.Expression {
|
||||
// return exp.NewLiteralExpression("")
|
||||
// },
|
||||
//},
|
||||
//"STD": {
|
||||
// },
|
||||
// "STD": {
|
||||
// Handler: func(args ...exp.Expression) exp.Expression {
|
||||
// return exp.NewLiteralExpression("")
|
||||
// },
|
||||
//},
|
||||
// },
|
||||
}.ExprHandlers()
|
||||
|
||||
supportedSubstitutions = map[string]bool{
|
||||
|
||||
@@ -45,6 +45,11 @@ func TestConverter(t *testing.T) {
|
||||
sql: `STRFTIME('%Y-%m-%dT00:00:00Z', ?)`,
|
||||
args: []any{"2022-07-21"},
|
||||
},
|
||||
{
|
||||
qry: `week('2022-07-21')`,
|
||||
sql: `STRFTIME('%W', ?)`,
|
||||
args: []any{"2022-07-21"},
|
||||
},
|
||||
{
|
||||
qry: `datetime('2022-07-21')`,
|
||||
sql: `DATETIME(?)`,
|
||||
|
||||
@@ -227,6 +227,11 @@ var (
|
||||
return exp.NewSQLFunctionExpression("DAY", args[0])
|
||||
},
|
||||
},
|
||||
"week": {
|
||||
Handler: func(args ...exp.Expression) exp.Expression {
|
||||
return exp.NewSQLFunctionExpression("WEEK", args[0])
|
||||
},
|
||||
},
|
||||
"date": {
|
||||
Handler: func(args ...exp.Expression) exp.Expression {
|
||||
return exp.NewSQLFunctionExpression("DATE", args[0])
|
||||
|
||||
Reference in New Issue
Block a user