Skip to content

Commit 7e893ef

Browse files
committed
skip offending test on misbehaving servers
1 parent e941c93 commit 7e893ef

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
## HEAD
2+
3+
Changes:
4+
5+
- Use decimals field from MySQL to format time types
6+
7+
Bugfixes:
8+
9+
- Enable microsecond resolution on TIME, DATETIME and TIMESTAMP
10+
11+
112
## Version 1.2 (2014-06-03)
213

314
Changes:

driver_test.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -374,9 +374,9 @@ func (t timeTest) genQuery(dbtype string, mode timeMode) string {
374374
inner = `"%s"`
375375
}
376376
if len(dbtype) >= 9 && dbtype[:9] == "TIMESTAMP" {
377-
return `SELECT TIMESTAMPADD(SECOND,0,CAST(` + inner + ` AS DATETIME` + dbtype[9:] + `))`
377+
return `SELECT timestampadd(second,0,cast(` + inner + ` as DATETIME` + dbtype[9:] + `))`
378378
}
379-
return `SELECT CAST(` + inner + ` AS ` + dbtype + `)`
379+
return `SELECT cast(` + inner + ` as ` + dbtype + `)`
380380
}
381381

382382
func (t timeTest) run(dbt *DBTest, dbtype, tlayout string, mode timeMode) {
@@ -524,16 +524,23 @@ func TestDateTime(t *testing.T) {
524524
var withFrac, allowsZero bool
525525
var rows *sql.Rows
526526
var err error
527-
rows, err = dbt.db.Query(`SELECT CAST("00:00:00.1" AS TIME(1)) = "00:00:00.1"`)
527+
rows, err = dbt.db.Query(`SELECT cast("00:00:00.1" as TIME(1)) = "00:00:00.1"`)
528528
if err == nil {
529529
rows.Scan(&withFrac)
530530
rows.Close()
531531
}
532-
rows, err = dbt.db.Query(`SELECT CAST("0000-00-00" AS DATE) = "0000-00-00"`)
532+
rows, err = dbt.db.Query(`SELECT cast("0000-00-00" as DATE) = "0000-00-00"`)
533533
if err == nil {
534534
rows.Scan(&allowsZero)
535535
rows.Close()
536536
}
537+
// Fix for TravisCI with its "special" MySQL version
538+
var datetimeAutofracs bool
539+
rows, err = dbt.db.Query(`SELECT length(concat('',cast(? as DATETIME))) != 19`, "2011-11-20 21:27:37")
540+
if err == nil {
541+
rows.Scan(&datetimeAutofracs)
542+
rows.Close()
543+
}
537544
for _, setups := range testcases {
538545
if t := setups.dbtype; !withFrac && t[len(t)-1:] == ")" {
539546
// skip fractional second tests if unsupported by server
@@ -554,6 +561,9 @@ func TestDateTime(t *testing.T) {
554561
// skip disallowed 0000-00-00 date
555562
continue
556563
}
564+
if datetimeAutofracs && setups.dbtype == "DATETIME" && setup.t != t0 {
565+
continue
566+
}
557567
setup.run(dbt, setups.dbtype, setups.tlayout, textString)
558568
setup.run(dbt, setups.dbtype, setups.tlayout, binaryString)
559569
if allowBinTime {

0 commit comments

Comments
 (0)