@@ -529,8 +529,8 @@ public void BulkLoadDataReader()
529
529
}
530
530
531
531
#if ! NETCOREAPP1_1_2
532
- [ Fact ]
533
- public void BulkLoadDataTableWithLongData ( )
532
+ [ SkippableFact ( ServerFeatures . LargePackets ) ]
533
+ public void BulkLoadDataTableWithLongBlob ( )
534
534
{
535
535
var dataTable = new DataTable ( )
536
536
{
@@ -559,6 +559,48 @@ public void BulkLoadDataTableWithLongData()
559
559
DestinationTableName = "bulk_load_data_table" ,
560
560
} ;
561
561
bulkCopy . WriteToServer ( dataTable ) ;
562
+
563
+ using ( var cmd = new MySqlCommand ( @"select sum(length(b)) from bulk_load_data_table;" , connection ) )
564
+ {
565
+ Assert . Equal ( 16_777_000m , cmd . ExecuteScalar ( ) ) ;
566
+ }
567
+ }
568
+
569
+ [ SkippableFact ( ServerFeatures . LargePackets ) ]
570
+ public void BulkLoadDataTableWithLongString ( )
571
+ {
572
+ var dataTable = new DataTable ( )
573
+ {
574
+ Columns =
575
+ {
576
+ new DataColumn ( "id" , typeof ( int ) ) ,
577
+ new DataColumn ( "data" , typeof ( string ) ) ,
578
+ } ,
579
+ Rows =
580
+ {
581
+ new object [ ] { 1 , new string ( 'a' , 16_777_000 ) } ,
582
+ new object [ ] { 2 , new string ( 'b' , 16_777_000 ) } ,
583
+ } ,
584
+ } ;
585
+
586
+ using var connection = new MySqlConnection ( GetLocalConnectionString ( ) ) ;
587
+ connection . Open ( ) ;
588
+ using ( var cmd = new MySqlCommand ( @"drop table if exists bulk_load_data_table;
589
+ create table bulk_load_data_table(a int, b longtext);" , connection ) )
590
+ {
591
+ cmd . ExecuteNonQuery ( ) ;
592
+ }
593
+
594
+ var bulkCopy = new MySqlBulkCopy ( connection )
595
+ {
596
+ DestinationTableName = "bulk_load_data_table" ,
597
+ } ;
598
+ bulkCopy . WriteToServer ( dataTable ) ;
599
+
600
+ using ( var cmd = new MySqlCommand ( @"select sum(length(b)) from bulk_load_data_table;" , connection ) )
601
+ {
602
+ Assert . Equal ( 33_554_000m , cmd . ExecuteScalar ( ) ) ;
603
+ }
562
604
}
563
605
564
606
[ Fact ]
@@ -605,7 +647,7 @@ public void BulkLoadDataTableWithSpecialCharacters()
605
647
}
606
648
607
649
[ Fact ]
608
- public void BulkLoadDataTableWithTooLongData ( )
650
+ public void BulkLoadDataTableWithTooLongBlob ( )
609
651
{
610
652
var dataTable = new DataTable ( )
611
653
{
@@ -633,6 +675,36 @@ public void BulkLoadDataTableWithTooLongData()
633
675
} ;
634
676
Assert . Throws < MySqlException > ( ( ) => bulkCopy . WriteToServer ( dataTable ) ) ;
635
677
}
678
+
679
+ [ Fact ]
680
+ public void BulkLoadDataTableWithTooLongString ( )
681
+ {
682
+ var dataTable = new DataTable ( )
683
+ {
684
+ Columns =
685
+ {
686
+ new DataColumn ( "data" , typeof ( string ) ) ,
687
+ } ,
688
+ Rows =
689
+ {
690
+ new object [ ] { new string ( 'a' , 16_777_400 ) } ,
691
+ }
692
+ } ;
693
+
694
+ using var connection = new MySqlConnection ( GetLocalConnectionString ( ) ) ;
695
+ connection . Open ( ) ;
696
+ using ( var cmd = new MySqlCommand ( @"drop table if exists bulk_load_data_table;
697
+ create table bulk_load_data_table(a int, b longblob);" , connection ) )
698
+ {
699
+ cmd . ExecuteNonQuery ( ) ;
700
+ }
701
+
702
+ var bulkCopy = new MySqlBulkCopy ( connection )
703
+ {
704
+ DestinationTableName = "bulk_load_data_table" ,
705
+ } ;
706
+ Assert . Throws < MySqlException > ( ( ) => bulkCopy . WriteToServer ( dataTable ) ) ;
707
+ }
636
708
#endif
637
709
#endif
638
710
0 commit comments