Literal and cast clean up.
This commit is contained in:
parent
9a34dc9fd7
commit
614c7e9754
22 changed files with 438 additions and 177 deletions
|
|
@ -1,6 +1,7 @@
|
|||
package mysql
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/go-jet/jet/internal/testutils"
|
||||
"github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/model"
|
||||
. "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/table"
|
||||
|
|
@ -494,8 +495,8 @@ func TestTimeExpressions(t *testing.T) {
|
|||
|
||||
AllTypes.Time.EQ(AllTypes.Time),
|
||||
AllTypes.Time.EQ(Time(23, 6, 6)),
|
||||
AllTypes.Time.EQ(Time(22, 6, 6, 11)),
|
||||
AllTypes.Time.EQ(Time(21, 6, 6, 11111)),
|
||||
AllTypes.Time.EQ(Time(22, 6, 6, 11*time.Millisecond)),
|
||||
AllTypes.Time.EQ(Time(21, 6, 6, 11111*time.Microsecond)),
|
||||
|
||||
AllTypes.TimePtr.NOT_EQ(AllTypes.Time),
|
||||
AllTypes.TimePtr.NOT_EQ(Time(20, 16, 6)),
|
||||
|
|
@ -547,7 +548,7 @@ SELECT CAST(? AS TIME),
|
|||
CURRENT_TIME,
|
||||
CURRENT_TIME(3)
|
||||
FROM test_sample.all_types;
|
||||
`, "20:34:58", "23:06:06", "22:06:06.011", "21:06:06.11111", "20:16:06",
|
||||
`, "20:34:58", "23:06:06", "22:06:06.011", "21:06:06.011111", "20:16:06",
|
||||
"19:26:06", "18:36:06", "17:46:06", "16:56:56", "15:16:46", "14:26:36")
|
||||
|
||||
err := query.Query(db, &struct{}{})
|
||||
|
|
@ -624,7 +625,7 @@ func TestDateTimeExpressions(t *testing.T) {
|
|||
AllTypes.DateTime.EQ(dateTime),
|
||||
|
||||
AllTypes.DateTimePtr.NOT_EQ(AllTypes.DateTime),
|
||||
AllTypes.DateTimePtr.NOT_EQ(DateTime(2019, 6, 6, 10, 2, 46, 1000)),
|
||||
AllTypes.DateTimePtr.NOT_EQ(DateTime(2019, 6, 6, 10, 2, 46, 100*time.Millisecond)),
|
||||
|
||||
AllTypes.DateTime.IS_DISTINCT_FROM(AllTypes.DateTime),
|
||||
AllTypes.DateTime.IS_DISTINCT_FROM(dateTime),
|
||||
|
|
@ -654,7 +655,7 @@ func TestDateTimeExpressions(t *testing.T) {
|
|||
SELECT all_types.date_time = all_types.date_time,
|
||||
all_types.date_time = CAST('2019-06-06 10:02:46' AS DATETIME),
|
||||
all_types.date_time_ptr != all_types.date_time,
|
||||
all_types.date_time_ptr != CAST('2019-06-06 10:02:46.1000' AS DATETIME),
|
||||
all_types.date_time_ptr != CAST('2019-06-06 10:02:46.100' AS DATETIME),
|
||||
NOT(all_types.date_time <=> all_types.date_time),
|
||||
NOT(all_types.date_time <=> CAST('2019-06-06 10:02:46' AS DATETIME)),
|
||||
all_types.date_time <=> all_types.date_time,
|
||||
|
|
@ -686,7 +687,7 @@ func TestTimestampExpressions(t *testing.T) {
|
|||
AllTypes.Timestamp.EQ(timestamp),
|
||||
|
||||
AllTypes.TimestampPtr.NOT_EQ(AllTypes.Timestamp),
|
||||
AllTypes.TimestampPtr.NOT_EQ(Timestamp(2019, 6, 6, 10, 2, 46, 1000)),
|
||||
AllTypes.TimestampPtr.NOT_EQ(Timestamp(2019, 6, 6, 10, 2, 46, 100*time.Millisecond)),
|
||||
|
||||
AllTypes.Timestamp.IS_DISTINCT_FROM(AllTypes.Timestamp),
|
||||
AllTypes.Timestamp.IS_DISTINCT_FROM(timestamp),
|
||||
|
|
@ -716,7 +717,7 @@ func TestTimestampExpressions(t *testing.T) {
|
|||
SELECT all_types.timestamp = all_types.timestamp,
|
||||
all_types.timestamp = TIMESTAMP('2019-06-06 10:02:46'),
|
||||
all_types.timestamp_ptr != all_types.timestamp,
|
||||
all_types.timestamp_ptr != TIMESTAMP('2019-06-06 10:02:46.1000'),
|
||||
all_types.timestamp_ptr != TIMESTAMP('2019-06-06 10:02:46.100'),
|
||||
NOT(all_types.timestamp <=> all_types.timestamp),
|
||||
NOT(all_types.timestamp <=> TIMESTAMP('2019-06-06 10:02:46')),
|
||||
all_types.timestamp <=> all_types.timestamp,
|
||||
|
|
@ -751,11 +752,11 @@ func TestTimeLiterals(t *testing.T) {
|
|||
Time(timeT.Clock()).AS("time"),
|
||||
TimeT(timeT).AS("timeT"),
|
||||
DateTimeT(timeT).AS("datetime"),
|
||||
Timestamp(2019, 8, 6, 10, 10, 30, 123456).AS("timestamp"),
|
||||
Timestamp(2019, 8, 6, 10, 10, 30, 123456*time.Millisecond).AS("timestamp"),
|
||||
TimestampT(timeT).AS("timestampT"),
|
||||
).FROM(AllTypes).LIMIT(1)
|
||||
|
||||
//fmt.Println(query.Sql())
|
||||
fmt.Println(query.DebugSql())
|
||||
|
||||
testutils.AssertStatementSql(t, query, `
|
||||
SELECT CAST(? AS DATE) AS "date",
|
||||
|
|
|
|||
|
|
@ -384,7 +384,7 @@ SELECT (all_types.numeric = all_types.numeric) AS "eq1",
|
|||
TRUNC(ABS(all_types.decimal), $29) AS "abs",
|
||||
TRUNC(POWER(all_types.decimal, $30), $31) AS "power",
|
||||
TRUNC(SQRT(all_types.decimal), $32) AS "sqrt",
|
||||
TRUNC(CBRT(all_types.decimal)::DECIMAL, $33) AS "cbrt",
|
||||
TRUNC(CBRT(all_types.decimal)::decimal, $33) AS "cbrt",
|
||||
CEIL(all_types.real) AS "ceil",
|
||||
FLOOR(all_types.real) AS "floor",
|
||||
ROUND(all_types.decimal) AS "round1",
|
||||
|
|
@ -552,22 +552,22 @@ func TestTimeExpression(t *testing.T) {
|
|||
AllTypes.Time.EQ(AllTypes.Time),
|
||||
AllTypes.Time.EQ(Time(23, 6, 6, 1)),
|
||||
AllTypes.Timez.EQ(AllTypes.TimezPtr),
|
||||
AllTypes.Timez.EQ(Timez(23, 6, 6, 222, +200)),
|
||||
AllTypes.Timez.EQ(Timez(23, 6, 6, 222, "+200")),
|
||||
AllTypes.Timestamp.EQ(AllTypes.TimestampPtr),
|
||||
AllTypes.Timestamp.EQ(Timestamp(2010, 10, 21, 15, 30, 12, 333)),
|
||||
AllTypes.Timestampz.EQ(AllTypes.TimestampzPtr),
|
||||
AllTypes.Timestampz.EQ(Timestampz(2010, 10, 21, 15, 30, 12, 444, 0)),
|
||||
AllTypes.Timestampz.EQ(Timestampz(2010, 10, 21, 15, 30, 12, 444, "PST")),
|
||||
AllTypes.Date.EQ(AllTypes.DatePtr),
|
||||
AllTypes.Date.EQ(Date(2010, 12, 3)),
|
||||
|
||||
AllTypes.Time.NOT_EQ(AllTypes.Time),
|
||||
AllTypes.Time.NOT_EQ(Time(23, 6, 6, 10)),
|
||||
AllTypes.Timez.NOT_EQ(AllTypes.TimezPtr),
|
||||
AllTypes.Timez.NOT_EQ(Timez(23, 6, 6, 555, +200)),
|
||||
AllTypes.Timez.NOT_EQ(Timez(23, 6, 6, 555, "+4:00")),
|
||||
AllTypes.Timestamp.NOT_EQ(AllTypes.TimestampPtr),
|
||||
AllTypes.Timestamp.NOT_EQ(Timestamp(2010, 10, 21, 15, 30, 12, 666)),
|
||||
AllTypes.Timestampz.NOT_EQ(AllTypes.TimestampzPtr),
|
||||
AllTypes.Timestampz.NOT_EQ(Timestampz(2010, 10, 21, 15, 30, 12, 777, 0)),
|
||||
AllTypes.Timestampz.NOT_EQ(Timestampz(2010, 10, 21, 15, 30, 12, 777, "UTC")),
|
||||
AllTypes.Date.NOT_EQ(AllTypes.DatePtr),
|
||||
AllTypes.Date.NOT_EQ(Date(2010, 12, 3)),
|
||||
|
||||
|
|
@ -803,7 +803,7 @@ func TestTimeLiterals(t *testing.T) {
|
|||
//fmt.Println(query.Sql())
|
||||
|
||||
testutils.AssertStatementSql(t, query, `
|
||||
SELECT $1::DATE AS "date",
|
||||
SELECT $1::date AS "date",
|
||||
$2::time without time zone AS "time",
|
||||
$3::time with time zone AS "timez",
|
||||
$4::timestamp without time zone AS "timestamp",
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import (
|
|||
. "github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/table"
|
||||
"gotest.tools/assert"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestSelect_ScanToStruct(t *testing.T) {
|
||||
|
|
@ -1185,15 +1186,15 @@ SELECT payment.payment_id AS "payment.payment_id",
|
|||
payment.amount AS "payment.amount",
|
||||
payment.payment_date AS "payment.payment_date"
|
||||
FROM dvds.payment
|
||||
WHERE payment.payment_date < '2007-02-14 22:16:01.000'::timestamp without time zone
|
||||
WHERE payment.payment_date < '2007-02-14 22:16:01'::timestamp without time zone
|
||||
ORDER BY payment.payment_date ASC;
|
||||
`
|
||||
|
||||
query := Payment.SELECT(Payment.AllColumns).
|
||||
WHERE(Payment.PaymentDate.LT(Timestamp(2007, 02, 14, 22, 16, 01, 0))).
|
||||
WHERE(Payment.PaymentDate.LT(Timestamp(2007, time.February, 14, 22, 16, 01, 0))).
|
||||
ORDER_BY(Payment.PaymentDate.ASC())
|
||||
|
||||
testutils.AssertDebugStatementSql(t, query, expectedSQL, "2007-02-14 22:16:01.000")
|
||||
testutils.AssertDebugStatementSql(t, query, expectedSQL, "2007-02-14 22:16:01")
|
||||
|
||||
payments := []model.Payment{}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue