Skip to content

Commit ca69015

Browse files
authored
Merge pull request #1944 from dolthub/zachmu/timestamp
Changed datetime and timestamp types to honor precision and default to 0 digit precision
2 parents c11b504 + 66633a7 commit ca69015

35 files changed

+557
-247
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
test:
1010
strategy:
1111
matrix:
12-
go-version: [1.19.x]
12+
go-version: [1.20.x]
1313
platform: [ubuntu-latest, macos-latest, windows-latest]
1414
runs-on: ${{ matrix.platform }}
1515
steps:

engine.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,11 @@ func bindingsToExprs(bindings map[string]*query.BindVariable) (map[string]sql.Ex
351351
}
352352
res[k] = expression.NewLiteral(v, t)
353353
case v.Type() == sqltypes.Date || v.Type() == sqltypes.Datetime || v.Type() == sqltypes.Timestamp:
354-
t, err := types.CreateDatetimeType(v.Type())
354+
precision := 6
355+
if v.Type() == sqltypes.Date {
356+
precision = 0
357+
}
358+
t, err := types.CreateDatetimeType(v.Type(), precision)
355359
if err != nil {
356360
return nil, err
357361
}

engine_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,8 @@ func TestBindingsToExprs(t *testing.T) {
126126
"bit": expression.NewLiteral(uint64(0x0f), types.MustCreateBitType(types.BitTypeMaxBits)),
127127
"date": expression.NewLiteral(time.Date(2020, time.Month(10), 20, 0, 0, 0, 0, time.UTC), types.Date),
128128
"year": expression.NewLiteral(int16(2020), types.Year),
129-
"datetime": expression.NewLiteral(time.Date(2020, time.Month(10), 20, 12, 0, 0, 0, time.UTC), types.Datetime),
130-
"timestamp": expression.NewLiteral(time.Date(2020, time.Month(10), 20, 12, 0, 0, 0, time.UTC), types.Timestamp),
129+
"datetime": expression.NewLiteral(time.Date(2020, time.Month(10), 20, 12, 0, 0, 0, time.UTC), types.MustCreateDatetimeType(query.Type_DATETIME, 6)),
130+
"timestamp": expression.NewLiteral(time.Date(2020, time.Month(10), 20, 12, 0, 0, 0, time.UTC), types.MustCreateDatetimeType(query.Type_TIMESTAMP, 6)),
131131
},
132132
false,
133133
},

enginetest/enginetests.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2176,8 +2176,8 @@ func TestCreateTable(t *testing.T, harness Harness) {
21762176
{"val", "int", "YES", "", "NULL", ""}}, nil, nil)
21772177
})
21782178

2179-
t.Skip("primary key lengths are not stored properly")
21802179
for _, tt := range queries.BrokenCreateTableQueries {
2180+
t.Skip("primary key lengths are not stored properly")
21812181
RunWriteQueryTest(t, harness, tt)
21822182
}
21832183
}
@@ -5613,8 +5613,8 @@ func TestColumnDefaults(t *testing.T, harness Harness) {
56135613
e.Query(ctx, "set @@session.time_zone='SYSTEM';")
56145614
// TODO: NOW() and CURRENT_TIMESTAMP() are supposed to be the same function in MySQL, but we have two different
56155615
// implementations with slightly different behavior.
5616-
TestQueryWithContext(t, ctx, e, harness, "CREATE TABLE t10(pk BIGINT PRIMARY KEY, v1 DATETIME DEFAULT NOW(), v2 DATETIME DEFAULT CURRENT_TIMESTAMP(),"+
5617-
"v3 TIMESTAMP DEFAULT NOW(), v4 TIMESTAMP DEFAULT CURRENT_TIMESTAMP())", []sql.Row{{types.NewOkResult(0)}}, nil, nil)
5616+
TestQueryWithContext(t, ctx, e, harness, "CREATE TABLE t10(pk BIGINT PRIMARY KEY, v1 DATETIME(6) DEFAULT NOW(), v2 DATETIME(6) DEFAULT CURRENT_TIMESTAMP(),"+
5617+
"v3 TIMESTAMP(6) DEFAULT NOW(), v4 TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP())", []sql.Row{{types.NewOkResult(0)}}, nil, nil)
56185618

56195619
// truncating time to microseconds for compatibility with integrators who may store more precision (go gives nanos)
56205620
now := time.Now().Truncate(time.Microsecond).UTC()
@@ -5836,14 +5836,14 @@ func TestColumnDefaults(t *testing.T, harness Harness) {
58365836
})
58375837

58385838
t.Run("Column defaults with functions", func(t *testing.T) {
5839-
TestQueryWithContext(t, ctx, e, harness, "CREATE TABLE t33(pk varchar(100) DEFAULT (replace(UUID(), '-', '')), v1 timestamp DEFAULT now(), v2 varchar(100), primary key (pk))", []sql.Row{{types.NewOkResult(0)}}, nil, nil)
5839+
TestQueryWithContext(t, ctx, e, harness, "CREATE TABLE t33(pk varchar(100) DEFAULT (replace(UUID(), '-', '')), v1 timestamp(6) DEFAULT now(), v2 varchar(100), primary key (pk))", []sql.Row{{types.NewOkResult(0)}}, nil, nil)
58405840
TestQueryWithContext(t, ctx, e, harness, "insert into t33 (v2) values ('abc')", []sql.Row{{types.NewOkResult(1)}}, nil, nil)
58415841
TestQueryWithContext(t, ctx, e, harness, "select count(*) from t33", []sql.Row{{1}}, nil, nil)
58425842
RunQuery(t, e, harness, "alter table t33 add column name varchar(100)")
58435843
RunQuery(t, e, harness, "alter table t33 rename column v1 to v1_new")
58445844
RunQuery(t, e, harness, "alter table t33 rename column name to name2")
58455845
RunQuery(t, e, harness, "alter table t33 drop column name2")
5846-
RunQuery(t, e, harness, "alter table t33 add column v3 datetime default CURRENT_TIMESTAMP()")
5846+
RunQuery(t, e, harness, "alter table t33 add column v3 datetime(6) default CURRENT_TIMESTAMP()")
58475847

58485848
TestQueryWithContext(t, ctx, e, harness, "desc t33", []sql.Row{
58495849
{"pk", "varchar(100)", "NO", "PRI", "(replace(uuid(), '-', ''))", "DEFAULT_GENERATED"},

enginetest/memory_engine_test.go

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"fmt"
1919
"log"
2020
"testing"
21+
"time"
2122

2223
"github.com/dolthub/go-mysql-server/enginetest"
2324
"github.com/dolthub/go-mysql-server/enginetest/queries"
@@ -276,10 +277,80 @@ func TestSingleQueryPrepared(t *testing.T) {
276277
// Convenience test for debugging a single query. Unskip and set to the desired query.
277278
func TestSingleScript(t *testing.T) {
278279
t.Skip()
279-
var scripts = []queries.ScriptTest{}
280+
var scripts = []queries.ScriptTest{
281+
{
282+
Name: "datetime precision",
283+
SetUpScript: []string{
284+
"CREATE TABLE t1 (pk int primary key, d datetime)",
285+
"CREATE TABLE t2 (pk int primary key, d datetime(3))",
286+
"CREATE TABLE t3 (pk int primary key, d datetime(6))",
287+
},
288+
Assertions: []queries.ScriptTestAssertion{
289+
{
290+
Query: "show create table t1",
291+
Expected: []sql.Row{{"t1",
292+
"CREATE TABLE `t1` (\n" +
293+
" `pk` int NOT NULL,\n" +
294+
" `d` datetime(0),\n" +
295+
" PRIMARY KEY (`pk`)\n" +
296+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
297+
},
298+
{
299+
Query: "insert into t1 values (1, '2020-01-01 00:00:00.123456')",
300+
Expected: []sql.Row{{types.NewOkResult(1)}},
301+
},
302+
{
303+
Query: "select * from t1 order by pk",
304+
Expected: []sql.Row{{1, queries.MustParseTime(time.DateTime, "2020-01-01 00:00:00")}},
305+
},
306+
{
307+
Query: "show create table t2",
308+
Expected: []sql.Row{{"t2",
309+
"CREATE TABLE `t2` (\n" +
310+
" `pk` int NOT NULL,\n" +
311+
" `d` datetime(3),\n" +
312+
" PRIMARY KEY (`pk`)\n" +
313+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
314+
},
315+
{
316+
Query: "insert into t2 values (1, '2020-01-01 00:00:00.123456')",
317+
Expected: []sql.Row{{types.NewOkResult(1)}},
318+
},
319+
{
320+
Query: "select * from t2 order by pk",
321+
Expected: []sql.Row{{1, queries.MustParseTime(time.RFC3339Nano, "2020-01-01T00:00:00.123000000Z")}},
322+
},
323+
{
324+
Query: "show create table t3",
325+
Expected: []sql.Row{{"t3",
326+
"CREATE TABLE `t3` (\n" +
327+
" `pk` int NOT NULL,\n" +
328+
" `d` datetime(6),\n" +
329+
" PRIMARY KEY (`pk`)\n" +
330+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
331+
},
332+
{
333+
Query: "insert into t3 values (1, '2020-01-01 00:00:00.123456')",
334+
Expected: []sql.Row{{types.NewOkResult(1)}},
335+
},
336+
{
337+
Query: "select * from t3 order by pk",
338+
Expected: []sql.Row{{1, queries.MustParseTime(time.RFC3339Nano, "2020-01-01T00:00:00.123456000Z")}},
339+
},
340+
{
341+
Query: "create table t4 (pk int primary key, d datetime(-1))",
342+
ExpectedErr: sql.ErrSyntaxError,
343+
},
344+
{
345+
Query: "create table t4 (pk int primary key, d datetime(7))",
346+
ExpectedErrStr: "DATETIME supports precision from 0 to 6",
347+
},
348+
},
349+
},
350+
}
280351

281352
for _, test := range scripts {
282-
harness := enginetest.NewMemoryHarness("", 1, testNumPartitions, true, nil).WithVersion(sql.VersionExperimental)
353+
harness := enginetest.NewMemoryHarness("", 1, testNumPartitions, true, nil)
283354
engine, err := harness.NewEngine(t)
284355
if err != nil {
285356
panic(err)

enginetest/queries/alter_table_queries.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ var AlterTableScripts = []ScriptTest{
4848
// https://github.com/dolthub/dolt/issues/6206
4949
Name: "alter table containing column default value expressions",
5050
SetUpScript: []string{
51-
"create table t (pk int primary key, col1 timestamp default current_timestamp(), col2 varchar(1000), index idx1 (pk, col1));",
51+
"create table t (pk int primary key, col1 timestamp(6) default current_timestamp(), col2 varchar(1000), index idx1 (pk, col1));",
5252
},
5353
Assertions: []ScriptTestAssertion{
5454
{

enginetest/queries/create_table_queries.go

Lines changed: 142 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
package queries
1616

1717
import (
18+
"time"
19+
1820
"github.com/dolthub/go-mysql-server/sql"
1921
"github.com/dolthub/go-mysql-server/sql/types"
2022
)
@@ -30,7 +32,7 @@ var CreateTableQueries = []WriteQueryTest{
3032
WriteQuery: `CREATE TABLE t1 (a INTEGER, b TEXT, c DATE, d TIMESTAMP, e VARCHAR(20), f BLOB NOT NULL, b1 BOOL, b2 BOOLEAN NOT NULL, g DATETIME, h CHAR(40))`,
3133
ExpectedWriteResult: []sql.Row{{types.NewOkResult(0)}},
3234
SelectQuery: "SHOW CREATE TABLE t1",
33-
ExpectedSelect: []sql.Row{sql.Row{"t1", "CREATE TABLE `t1` (\n `a` int,\n `b` text,\n `c` date,\n `d` timestamp(6),\n `e` varchar(20),\n `f` blob NOT NULL,\n `b1` tinyint,\n `b2` tinyint NOT NULL,\n `g` datetime(6),\n `h` char(40)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
35+
ExpectedSelect: []sql.Row{sql.Row{"t1", "CREATE TABLE `t1` (\n `a` int,\n `b` text,\n `c` date,\n `d` timestamp,\n `e` varchar(20),\n `f` blob NOT NULL,\n `b1` tinyint,\n `b2` tinyint NOT NULL,\n `g` datetime,\n `h` char(40)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
3436
},
3537
{
3638
WriteQuery: `CREATE TABLE t1 (a INTEGER NOT NULL PRIMARY KEY, b VARCHAR(10) NOT NULL)`,
@@ -145,7 +147,7 @@ var CreateTableQueries = []WriteQueryTest{
145147
)`,
146148
ExpectedWriteResult: []sql.Row{{types.NewOkResult(0)}},
147149
SelectQuery: "SHOW CREATE TABLE td",
148-
ExpectedSelect: []sql.Row{sql.Row{"td", "CREATE TABLE `td` (\n `pk` int NOT NULL,\n `col2` int NOT NULL DEFAULT '2',\n `col3` double NOT NULL DEFAULT (round(-1.58,0)),\n `col4` varchar(10) DEFAULT 'new row',\n `col5` float DEFAULT '33.33',\n `col6` int DEFAULT NULL,\n `col7` timestamp(6) DEFAULT (NOW()),\n `col8` bigint DEFAULT (NOW()),\n PRIMARY KEY (`pk`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
150+
ExpectedSelect: []sql.Row{sql.Row{"td", "CREATE TABLE `td` (\n `pk` int NOT NULL,\n `col2` int NOT NULL DEFAULT '2',\n `col3` double NOT NULL DEFAULT (round(-1.58,0)),\n `col4` varchar(10) DEFAULT 'new row',\n `col5` float DEFAULT '33.33',\n `col6` int DEFAULT NULL,\n `col7` timestamp DEFAULT (NOW()),\n `col8` bigint DEFAULT (NOW()),\n PRIMARY KEY (`pk`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
149151
},
150152
{
151153
WriteQuery: `CREATE TABLE t1 (i int PRIMARY KEY, j varchar(MAX))`,
@@ -246,6 +248,144 @@ var CreateTableScriptTests = []ScriptTest{
246248
},
247249
},
248250
},
251+
{
252+
Name: "datetime precision",
253+
SetUpScript: []string{
254+
"CREATE TABLE t1 (pk int primary key, d datetime)",
255+
"CREATE TABLE t2 (pk int primary key, d datetime(3))",
256+
"CREATE TABLE t3 (pk int primary key, d datetime(6))",
257+
},
258+
Assertions: []ScriptTestAssertion{
259+
{
260+
Query: "show create table t1",
261+
Expected: []sql.Row{{"t1",
262+
"CREATE TABLE `t1` (\n" +
263+
" `pk` int NOT NULL,\n" +
264+
" `d` datetime,\n" +
265+
" PRIMARY KEY (`pk`)\n" +
266+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
267+
},
268+
{
269+
Query: "insert into t1 values (1, '2020-01-01 00:00:00.123456')",
270+
Expected: []sql.Row{{types.NewOkResult(1)}},
271+
},
272+
{
273+
Query: "select * from t1 order by pk",
274+
Expected: []sql.Row{{1, MustParseTime(time.DateTime, "2020-01-01 00:00:00")}},
275+
},
276+
{
277+
Query: "show create table t2",
278+
Expected: []sql.Row{{"t2",
279+
"CREATE TABLE `t2` (\n" +
280+
" `pk` int NOT NULL,\n" +
281+
" `d` datetime(3),\n" +
282+
" PRIMARY KEY (`pk`)\n" +
283+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
284+
},
285+
{
286+
Query: "insert into t2 values (1, '2020-01-01 00:00:00.123456')",
287+
Expected: []sql.Row{{types.NewOkResult(1)}},
288+
},
289+
{
290+
Query: "select * from t2 order by pk",
291+
Expected: []sql.Row{{1, MustParseTime(time.RFC3339Nano, "2020-01-01T00:00:00.123000000Z")}},
292+
},
293+
{
294+
Query: "show create table t3",
295+
Expected: []sql.Row{{"t3",
296+
"CREATE TABLE `t3` (\n" +
297+
" `pk` int NOT NULL,\n" +
298+
" `d` datetime(6),\n" +
299+
" PRIMARY KEY (`pk`)\n" +
300+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
301+
},
302+
{
303+
Query: "insert into t3 values (1, '2020-01-01 00:00:00.123456')",
304+
Expected: []sql.Row{{types.NewOkResult(1)}},
305+
},
306+
{
307+
Query: "select * from t3 order by pk",
308+
Expected: []sql.Row{{1, MustParseTime(time.RFC3339Nano, "2020-01-01T00:00:00.123456000Z")}},
309+
},
310+
{
311+
Query: "create table t4 (pk int primary key, d datetime(-1))",
312+
ExpectedErr: sql.ErrSyntaxError,
313+
},
314+
{
315+
Query: "create table t4 (pk int primary key, d datetime(7))",
316+
ExpectedErrStr: "DATETIME supports precision from 0 to 6",
317+
},
318+
},
319+
},
320+
{
321+
Name: "timestamp precision",
322+
SetUpScript: []string{
323+
"CREATE TABLE t1 (pk int primary key, d timestamp)",
324+
"CREATE TABLE t2 (pk int primary key, d timestamp(3))",
325+
"CREATE TABLE t3 (pk int primary key, d timestamp(6))",
326+
},
327+
Assertions: []ScriptTestAssertion{
328+
{
329+
Query: "show create table t1",
330+
Expected: []sql.Row{{"t1",
331+
"CREATE TABLE `t1` (\n" +
332+
" `pk` int NOT NULL,\n" +
333+
" `d` timestamp,\n" +
334+
" PRIMARY KEY (`pk`)\n" +
335+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
336+
},
337+
{
338+
Query: "insert into t1 values (1, '2020-01-01 00:00:00.123456')",
339+
Expected: []sql.Row{{types.NewOkResult(1)}},
340+
},
341+
{
342+
Query: "select * from t1 order by pk",
343+
Expected: []sql.Row{{1, MustParseTime(time.DateTime, "2020-01-01 00:00:00")}},
344+
},
345+
{
346+
Query: "show create table t2",
347+
Expected: []sql.Row{{"t2",
348+
"CREATE TABLE `t2` (\n" +
349+
" `pk` int NOT NULL,\n" +
350+
" `d` timestamp(3),\n" +
351+
" PRIMARY KEY (`pk`)\n" +
352+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
353+
},
354+
{
355+
Query: "insert into t2 values (1, '2020-01-01 00:00:00.123456')",
356+
Expected: []sql.Row{{types.NewOkResult(1)}},
357+
},
358+
{
359+
Query: "select * from t2 order by pk",
360+
Expected: []sql.Row{{1, MustParseTime(time.RFC3339Nano, "2020-01-01T00:00:00.123000000Z")}},
361+
},
362+
{
363+
Query: "show create table t3",
364+
Expected: []sql.Row{{"t3",
365+
"CREATE TABLE `t3` (\n" +
366+
" `pk` int NOT NULL,\n" +
367+
" `d` timestamp(6),\n" +
368+
" PRIMARY KEY (`pk`)\n" +
369+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin"}},
370+
},
371+
{
372+
Query: "insert into t3 values (1, '2020-01-01 00:00:00.123456')",
373+
Expected: []sql.Row{{types.NewOkResult(1)}},
374+
},
375+
{
376+
Query: "select * from t3 order by pk",
377+
Expected: []sql.Row{{1, MustParseTime(time.RFC3339Nano, "2020-01-01T00:00:00.123456000Z")}},
378+
},
379+
{
380+
Query: "create table t4 (pk int primary key, d TIMESTAMP(-1))",
381+
ExpectedErr: sql.ErrSyntaxError,
382+
},
383+
{
384+
Query: "create table t4 (pk int primary key, d TIMESTAMP(7))",
385+
ExpectedErrStr: "TIMESTAMP supports precision from 0 to 6",
386+
},
387+
},
388+
},
249389
}
250390

251391
var CreateTableAutoIncrementTests = []ScriptTest{

enginetest/queries/information_schema_queries.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -972,8 +972,8 @@ FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_schema = 'mydb'`,
972972
{"about", "id", nil, "NO", "int unsigned", "UNI", nil, "auto_increment"},
973973
{"about", "uuid", nil, "NO", "char(36)", "PRI", 36, ""},
974974
{"about", "status", "draft", "NO", "varchar(255)", "", 255, ""},
975-
{"about", "date_created", nil, "YES", "timestamp(6)", "", nil, ""},
976-
{"about", "date_updated", nil, "YES", "timestamp(6)", "", nil, ""},
975+
{"about", "date_created", nil, "YES", "timestamp", "", nil, ""},
976+
{"about", "date_updated", nil, "YES", "timestamp", "", nil, ""},
977977
{"about", "url_key", nil, "NO", "varchar(255)", "UNI", 255, ""},
978978
},
979979
},
@@ -1095,7 +1095,7 @@ bit_2 bit(2) DEFAULT 2,
10951095
some_blob blob DEFAULT ("abc"),
10961096
char_1 char(1) DEFAULT "A",
10971097
some_date date DEFAULT "2022-02-22",
1098-
date_time datetime DEFAULT "2022-02-22 22:22:21",
1098+
date_time datetime(6) DEFAULT "2022-02-22 22:22:21",
10991099
decimal_52 decimal(5,2) DEFAULT "994.45",
11001100
some_double double DEFAULT "1.1",
11011101
some_enum enum('s','m','l') DEFAULT "s",
@@ -1115,7 +1115,7 @@ some_set set('one','two') DEFAULT "one,two",
11151115
small_int smallint DEFAULT "5",
11161116
some_text text DEFAULT ("abc"),
11171117
time_6 time(6) DEFAULT "11:59:59.000010",
1118-
time_stamp timestamp DEFAULT (CURRENT_TIMESTAMP()),
1118+
time_stamp timestamp(6) DEFAULT (CURRENT_TIMESTAMP()),
11191119
tiny_blob tinyblob DEFAULT ("abc"),
11201120
tiny_int tinyint DEFAULT "4",
11211121
tiny_text tinytext DEFAULT ("abc"),

enginetest/queries/queries.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10376,3 +10376,11 @@ var IndexPrefixQueries = []ScriptTest{
1037610376
},
1037710377
},
1037810378
}
10379+
10380+
func MustParseTime(layout, value string) time.Time {
10381+
parsed, err := time.Parse(layout, value)
10382+
if err != nil {
10383+
panic(err)
10384+
}
10385+
return parsed
10386+
}

enginetest/queries/script_queries.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1859,7 +1859,7 @@ var ScriptTests = []ScriptTest{
18591859
"create table t2(c int primary key, d varchar(10))",
18601860
"alter table t2 add constraint t2du unique (d)",
18611861
"alter table t2 add constraint fk1 foreign key (d) references t1 (b)",
1862-
"create table t3 (a int, b varchar(100), c datetime, primary key (b,a))",
1862+
"create table t3 (a int, b varchar(100), c datetime(6), primary key (b,a))",
18631863
"create table t4 (a int default (floor(1)), b int default (coalesce(a, 10)))",
18641864
},
18651865
Assertions: []ScriptTestAssertion{

0 commit comments

Comments
 (0)