@@ -245,6 +245,42 @@ public void BulkLoadLocalCsvFileInTransactionWithCommit()
245245 }
246246 }
247247
248+ [ Fact ]
249+ public void BulkLoadLocalCsvFileBeforeTransactionWithCommit ( )
250+ {
251+ try
252+ {
253+ m_database . Connection . Open ( ) ;
254+ var bulkLoader = new MySqlBulkLoader ( m_database . Connection )
255+ {
256+ FileName = AppConfig . MySqlBulkLoaderLocalCsvFile ,
257+ TableName = m_testTable ,
258+ CharacterSet = "UTF8" ,
259+ NumberOfLinesToSkip = 1 ,
260+ FieldTerminator = "," ,
261+ FieldQuotationCharacter = '"' ,
262+ FieldQuotationOptional = true ,
263+ Local = true ,
264+ } ;
265+ bulkLoader . Expressions . Add ( "five = UNHEX(five)" ) ;
266+ bulkLoader . Columns . AddRange ( new [ ] { "one" , "two" , "three" , "four" , "five" } ) ;
267+
268+ using ( var transaction = m_database . Connection . BeginTransaction ( ) )
269+ {
270+ var rowCount = bulkLoader . Load ( ) ;
271+ Assert . Equal ( 20 , rowCount ) ;
272+
273+ transaction . Commit ( ) ;
274+ }
275+
276+ Assert . Equal ( 20 , m_database . Connection . ExecuteScalar < int > ( $@ "select count(*) from { m_testTable } ;") ) ;
277+ }
278+ finally
279+ {
280+ m_database . Connection . Close ( ) ;
281+ }
282+ }
283+
248284 [ Fact ]
249285 public void BulkLoadLocalCsvFileInTransactionWithRollback ( )
250286 {
@@ -281,6 +317,42 @@ public void BulkLoadLocalCsvFileInTransactionWithRollback()
281317 }
282318 }
283319
320+ [ Fact ]
321+ public void BulkLoadLocalCsvFileBeforeTransactionWithRollback ( )
322+ {
323+ try
324+ {
325+ m_database . Connection . Open ( ) ;
326+ var bulkLoader = new MySqlBulkLoader ( m_database . Connection )
327+ {
328+ FileName = AppConfig . MySqlBulkLoaderLocalCsvFile ,
329+ TableName = m_testTable ,
330+ CharacterSet = "UTF8" ,
331+ NumberOfLinesToSkip = 1 ,
332+ FieldTerminator = "," ,
333+ FieldQuotationCharacter = '"' ,
334+ FieldQuotationOptional = true ,
335+ Local = true ,
336+ } ;
337+ bulkLoader . Expressions . Add ( "five = UNHEX(five)" ) ;
338+ bulkLoader . Columns . AddRange ( new [ ] { "one" , "two" , "three" , "four" , "five" } ) ;
339+
340+ using ( var transaction = m_database . Connection . BeginTransaction ( ) )
341+ {
342+ var rowCount = bulkLoader . Load ( ) ;
343+ Assert . Equal ( 20 , rowCount ) ;
344+
345+ transaction . Rollback ( ) ;
346+ }
347+
348+ Assert . Equal ( 0 , m_database . Connection . ExecuteScalar < int > ( $@ "select count(*) from { m_testTable } ;") ) ;
349+ }
350+ finally
351+ {
352+ m_database . Connection . Close ( ) ;
353+ }
354+ }
355+
284356 [ Fact ]
285357 public void BulkLoadMissingFileName ( )
286358 {
0 commit comments