@@ -10843,6 +10843,99 @@ where
1084310843 },
1084410844 },
1084510845 },
10846+ {
10847+ // https://github.com/dolthub/dolt/issues/9544
10848+ Name : "datetime with foreign keys" ,
10849+ Dialect : "mysql" ,
10850+ SetUpScript : []string {
10851+ "create table parent_datetime0 (dt datetime primary key);" ,
10852+ "insert into parent_datetime0 values ('2001-02-03 12:34:56');" ,
10853+ "create table parent_datetime6 (dt datetime(6) primary key);" ,
10854+ "insert into parent_datetime6 values ('2001-02-03 12:34:56');" ,
10855+ "insert into parent_datetime6 values ('2001-02-03 12:34:56.123456');" ,
10856+ },
10857+ Assertions : []ScriptTestAssertion {
10858+ {
10859+ Skip : true ,
10860+ Query : "create table child_datetime0 (dt datetime, foreign key (dt) references parent_datetime6(dt));" ,
10861+ Expected : []sql.Row {
10862+ {types .NewOkResult (0 )},
10863+ },
10864+ },
10865+ {
10866+ Skip : true ,
10867+ Query : "insert into child_datetime0 values ('2001-02-03 12:34:56');" ,
10868+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
10869+ },
10870+ {
10871+ Skip : true ,
10872+ Query : "create table child_datetime6 (dt datetime(6), foreign key (dt) references parent_datetime0(dt));" ,
10873+ Expected : []sql.Row {
10874+ {types .NewOkResult (0 )},
10875+ },
10876+ },
10877+ {
10878+ Skip : true ,
10879+ Query : "insert into child_datetime6 values ('2001-02-03 12:34:56');" ,
10880+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
10881+ },
10882+
10883+ {
10884+ Skip : true ,
10885+ Query : "create table child1_timestamp0 (ts timestamp, foreign key (ts) references parent_datetime0(dt));" ,
10886+ Expected : []sql.Row {
10887+ {types .NewOkResult (0 )},
10888+ },
10889+ },
10890+ {
10891+ Skip : true ,
10892+ Query : "insert into child1_timestamp0 values ('2001-02-03 12:34:56');" ,
10893+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
10894+ },
10895+ {
10896+ Skip : true ,
10897+ Query : "create table child2_timestamp0 (ts timestamp, foreign key (ts) references parent_datetime6(dt));" ,
10898+ Expected : []sql.Row {
10899+ {types .NewOkResult (0 )},
10900+ },
10901+ },
10902+ {
10903+ Skip : true ,
10904+ Query : "insert into child2_timestamp0 values ('2001-02-03 12:34:56');" ,
10905+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
10906+ },
10907+
10908+ {
10909+ Skip : true ,
10910+ Query : "create table child1_timestamp6 (ts timestamp(6), foreign key (ts) references parent_datetime0(dt));" ,
10911+ Expected : []sql.Row {
10912+ {types .NewOkResult (0 )},
10913+ },
10914+ },
10915+ {
10916+ Skip : true ,
10917+ Query : "insert into child1_timestamp6 values ('2001-02-03 12:34:56');" ,
10918+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
10919+ },
10920+ {
10921+ Skip : true ,
10922+ Query : "create table child2_timestamp6 (ts timestamp(6), foreign key (ts) references parent_datetime6(dt));" ,
10923+ Expected : []sql.Row {
10924+ {types .NewOkResult (0 )},
10925+ },
10926+ },
10927+ {
10928+ Skip : true ,
10929+ Query : "insert into child2_timestamp6 values ('2001-02-03 12:34:56');" ,
10930+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
10931+ },
10932+ {
10933+ Skip : true ,
10934+ Query : "insert into child2_timestamp6 values ('2001-02-03 12:34:56.123456');" ,
10935+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
10936+ },
10937+ },
10938+ },
1084610939
1084710940 // Timestamp Tests
1084810941 {
@@ -10860,6 +10953,99 @@ where
1086010953 },
1086110954 },
1086210955 },
10956+ {
10957+ // https://github.com/dolthub/dolt/issues/9544
10958+ Name : "timestamps with foreign keys" ,
10959+ Dialect : "mysql" ,
10960+ SetUpScript : []string {
10961+ "create table parent_timestamp0 (ts timestamp primary key);" ,
10962+ "insert into parent_timestamp0 values ('2001-02-03 12:34:56');" ,
10963+ "create table parent_timestamp6 (ts timestamp(6) primary key);" ,
10964+ "insert into parent_timestamp6 values ('2001-02-03 12:34:56');" ,
10965+ "insert into parent_timestamp6 values ('2001-02-03 12:34:56.123456');" ,
10966+ },
10967+ Assertions : []ScriptTestAssertion {
10968+ {
10969+ Skip : true ,
10970+ Query : "create table child_timestamp0 (ts timestamp, foreign key (ts) references parent_timestamp6(ts));" ,
10971+ Expected : []sql.Row {
10972+ {types .NewOkResult (0 )},
10973+ },
10974+ },
10975+ {
10976+ Skip : true ,
10977+ Query : "insert into child_timestamp0 values ('2001-02-03 12:34:56');" ,
10978+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
10979+ },
10980+ {
10981+ Skip : true ,
10982+ Query : "create table child_timestamp6 (ts timestamp(6), foreign key (ts) references parent_timestamp0(ts));" ,
10983+ Expected : []sql.Row {
10984+ {types .NewOkResult (0 )},
10985+ },
10986+ },
10987+ {
10988+ Skip : true ,
10989+ Query : "insert into child_timestamp6 values ('2001-02-03 12:34:56');" ,
10990+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
10991+ },
10992+
10993+ {
10994+ Skip : true ,
10995+ Query : "create table child1_datetime0 (dt datetime, foreign key (dt) references parent_timestamp0(ts));" ,
10996+ Expected : []sql.Row {
10997+ {types .NewOkResult (0 )},
10998+ },
10999+ },
11000+ {
11001+ Skip : true ,
11002+ Query : "insert into child1_datetime0 values ('2001-02-03 12:34:56');" ,
11003+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
11004+ },
11005+ {
11006+ Skip : true ,
11007+ Query : "create table child2_datetime0 (dt datetime, foreign key (dt) references parent_timestamp6(ts));" ,
11008+ Expected : []sql.Row {
11009+ {types .NewOkResult (0 )},
11010+ },
11011+ },
11012+ {
11013+ Skip : true ,
11014+ Query : "insert into child2_datetime0 values ('2001-02-03 12:34:56');" ,
11015+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
11016+ },
11017+
11018+ {
11019+ Skip : true ,
11020+ Query : "create table child1_datetime6 (dt datetime(6), foreign key (dt) references parent_timestamp0(ts));" ,
11021+ Expected : []sql.Row {
11022+ {types .NewOkResult (0 )},
11023+ },
11024+ },
11025+ {
11026+ Skip : true ,
11027+ Query : "insert into child1_datetime6 values ('2001-02-03 12:34:56');" ,
11028+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
11029+ },
11030+ {
11031+ Skip : true ,
11032+ Query : "create table child2_datetime6 (dt datetime(6), foreign key (dt) references parent_timestamp6(ts));" ,
11033+ Expected : []sql.Row {
11034+ {types .NewOkResult (0 )},
11035+ },
11036+ },
11037+ {
11038+ Skip : true ,
11039+ Query : "insert into child2_datetime6 values ('2001-02-03 12:34:56');" ,
11040+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
11041+ },
11042+ {
11043+ Skip : true ,
11044+ Query : "insert into child2_datetime6 values ('2001-02-03 12:34:56.123456');" ,
11045+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
11046+ },
11047+ },
11048+ },
1086311049
1086411050 // Time Tests
1086511051 {
@@ -10877,6 +11063,42 @@ where
1087711063 },
1087811064 },
1087911065 },
11066+ {
11067+ // https://github.com/dolthub/dolt/issues/9544
11068+ Name : "time with foreign keys" ,
11069+ Dialect : "mysql" ,
11070+ SetUpScript : []string {
11071+ "create table parent_time0 (t time primary key);" ,
11072+ "insert into parent_time0 values ('12:34:56');" ,
11073+ "create table parent_time6 (t time(6) primary key);" ,
11074+ "insert into parent_time6 values ('12:34:56');" ,
11075+ "insert into parent_time6 values ('12:34:56.123456');" ,
11076+ },
11077+ Assertions : []ScriptTestAssertion {
11078+ {
11079+ Query : "create table child_time0 (t time, foreign key (t) references parent_time6(t));" ,
11080+ Expected : []sql.Row {
11081+ {types .NewOkResult (0 )},
11082+ },
11083+ },
11084+ {
11085+ Skip : true ,
11086+ Query : "insert into child_time0 values ('12:34:56');" ,
11087+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
11088+ },
11089+ {
11090+ Query : "create table child_time6 (t time(6), foreign key (t) references parent_time0(t));" ,
11091+ Expected : []sql.Row {
11092+ {types .NewOkResult (0 )},
11093+ },
11094+ },
11095+ {
11096+ Skip : true ,
11097+ Query : "insert into child_time6 values ('12:34:56');" ,
11098+ ExpectedErr : sql .ErrForeignKeyChildViolation ,
11099+ },
11100+ },
11101+ },
1088011102
1088111103 // Year Tests
1088211104 {
0 commit comments