@@ -899,6 +899,53 @@ async def test_9019(self):
899899                fetched_values  =  [int (s ) async  for  s , in  self .cursor ]
900900                self .assertEqual (fetched_values , values )
901901
902+     async  def  test_9020 (self ):
903+         "9020 - test ingestion with alternative date types" 
904+         scenarios  =  [
905+             (
906+                 [
907+                     datetime .datetime (1915 , 9 , 11 ),
908+                     None ,
909+                     datetime .datetime (2045 , 2 , 28 ),
910+                 ],
911+                 pyarrow .date32 (),
912+             ),
913+             (
914+                 [
915+                     datetime .datetime (1905 , 3 , 30 ),
916+                     None ,
917+                     datetime .datetime (2060 , 10 , 5 ),
918+                 ],
919+                 pyarrow .date64 (),
920+             ),
921+         ]
922+         names  =  ["Id" , "DateOfBirth" ]
923+         for  values , dtype  in  scenarios :
924+             with  self .subTest (dtype = str (dtype )):
925+                 arrays  =  [
926+                     pyarrow .array ([1 , 2 , 3 ], pyarrow .int8 ()),
927+                     pyarrow .array (values , dtype ),
928+                 ]
929+                 df  =  pyarrow .table (arrays , names )
930+                 await  self .cursor .execute ("delete from TestDataFrame" )
931+                 await  self .cursor .executemany (
932+                     """ 
933+                     insert into TestDataFrame (Id, DateOfBirth) 
934+                     values (:1, :2) 
935+                     """ ,
936+                     df ,
937+                 )
938+                 await  self .conn .commit ()
939+                 await  self .cursor .execute (
940+                     """ 
941+                     select DateOfBirth 
942+                     from TestDataFrame 
943+                     order by Id 
944+                     """ 
945+                 )
946+                 fetched_values  =  [d  async  for  d , in  self .cursor ]
947+                 self .assertEqual (fetched_values , values )
948+ 
902949
903950if  __name__  ==  "__main__" :
904951    test_env .run_test_cases ()
0 commit comments