@@ -1145,6 +1145,67 @@ public void BulkCopyColumnMappingsInvalidDestinationColumn()
11451145 Assert . Throws < InvalidOperationException > ( ( ) => bulkCopy . WriteToServer ( dataTable ) ) ;
11461146 }
11471147
1148+ [ Fact ]
1149+ public void BulkCopyToTableWithYear ( )
1150+ {
1151+ using var connection = new MySqlConnection ( GetLocalConnectionString ( ) ) ;
1152+ connection . Open ( ) ;
1153+
1154+ using var cmd = connection . CreateCommand ( ) ;
1155+ cmd . CommandText = """
1156+ DROP TABLE IF EXISTS bulk_copy_year;
1157+ CREATE TABLE bulk_copy_year(int_value int NULL, year_value year NULL)
1158+ """ ;
1159+ cmd . ExecuteNonQuery ( ) ;
1160+
1161+ var bulkCopy = new MySqlBulkCopy ( connection )
1162+ {
1163+ DestinationTableName = "bulk_copy_year" ,
1164+ ColumnMappings =
1165+ {
1166+ new MySqlBulkCopyColumnMapping ( 0 , "int_value" , null ) ,
1167+ } ,
1168+ } ;
1169+
1170+ var dt = new DataTable ( ) ;
1171+ dt . Columns . Add ( "numbers" ) ;
1172+ dt . Rows . Add ( 1 ) ;
1173+ dt . Rows . Add ( 2 ) ;
1174+
1175+ bulkCopy . WriteToServer ( dt ) ;
1176+
1177+ cmd . CommandText = "SELECT COUNT(*) FROM bulk_copy_year WHERE int_value IN (1, 2) AND year_value IS NULL" ;
1178+ Assert . Equal ( 2 , Convert . ToInt32 ( cmd . ExecuteScalar ( ) ) ) ;
1179+ }
1180+
1181+ [ Fact ]
1182+ public void BulkCopyToTableWithYearNotSupported ( )
1183+ {
1184+ using var connection = new MySqlConnection ( GetLocalConnectionString ( ) ) ;
1185+ connection . Open ( ) ;
1186+
1187+ using var cmd = connection . CreateCommand ( ) ;
1188+ cmd . CommandText = """
1189+ DROP TABLE IF EXISTS bulk_copy_year;
1190+ CREATE TABLE bulk_copy_year(int_value int NULL, year_value year NULL)
1191+ """ ;
1192+ cmd . ExecuteNonQuery ( ) ;
1193+
1194+ var bulkCopy = new MySqlBulkCopy ( connection )
1195+ {
1196+ DestinationTableName = "bulk_copy_year" ,
1197+ } ;
1198+
1199+ var dt = new DataTable ( ) ;
1200+ dt . Columns . Add ( "numbers" ) ;
1201+ dt . Columns . Add ( "year" ) ;
1202+ dt . Rows . Add ( 1 , 2000 ) ;
1203+ dt . Rows . Add ( 2 , 2001 ) ;
1204+
1205+ var exception = Assert . Throws < NotSupportedException > ( ( ) => bulkCopy . WriteToServer ( dt ) ) ;
1206+ Assert . Equal ( "'YEAR' columns are not supported by MySqlBulkCopy." , exception . Message ) ;
1207+ }
1208+
11481209 [ Fact ]
11491210 public void BulkCopyDoesNotInsertAllRows ( )
11501211 {
0 commit comments