@@ -479,6 +479,24 @@ def _transaction_test(self):
479479 res2 = self .pandasSQL .read_query ('SELECT * FROM test_trans' )
480480 assert len (res2 ) == 1
481481
482+ def _test_insert_multivalues (self ):
483+ db = sql .SQLDatabase (self .conn )
484+ df = DataFrame ({'A' : [1 , 0 , 0 ], 'B' : [1.1 , 0.2 , 4.3 ]})
485+ table = sql .SQLTable ("test_table" , db , frame = df )
486+ data = [
487+ {'A' : 1 , 'B' : 0.46 },
488+ {'A' : 0 , 'B' : - 2.06 }
489+ ]
490+ statement = table .insert_statement (data , conn = self .conn )[0 ]
491+ dialect = getattr (self .conn , 'dialect' , None )
492+ if dialect and getattr (dialect , 'supports_multivalues_insert' , False ):
493+ assert statement .parameters == data , (
494+ 'insert statement should be multivalues'
495+ )
496+ else :
497+ assert statement .parameters is None , (
498+ 'insert statement should not be multivalues'
499+ )
482500
483501# -----------------------------------------------------------------------------
484502# -- Testing the public API
@@ -1665,6 +1683,9 @@ class Temporary(Base):
16651683
16661684 tm .assert_frame_equal (df , expected )
16671685
1686+ def test_insert_multivalues (self ):
1687+ self ._test_insert_multivalues ()
1688+
16681689
16691690class _TestSQLAlchemyConn (_EngineToConnMixin , _TestSQLAlchemy ):
16701691
0 commit comments