@@ -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