@@ -872,6 +872,47 @@ async def test_6351(self):
872872 await self .cursor .execute ("select * from TestJsonCols order by IntCol" )
873873 self .assertEqual (await self .cursor .fetchall (), expected_data )
874874
875+ async def test_6352 (self ):
876+ "6352 - test fetching nested cursors repeatedly"
877+ sql = """
878+ select
879+ s.Description,
880+ cursor(select 'Nested String for ' || s.Description from dual)
881+ from
882+ (
883+ select 'Top Level String 1' as Description
884+ from dual
885+ union all
886+ select 'Top Level String 2'
887+ from dual
888+ union all
889+ select 'Top Level String 3'
890+ from dual
891+ union all
892+ select 'Top Level String 4'
893+ from dual
894+ union all
895+ select 'Top Level String 5'
896+ from dual
897+ ) s"""
898+
899+ for i in range (3 ):
900+ with self .conn .cursor () as cursor :
901+ cursor .arraysize = 10
902+ await cursor .execute (sql )
903+ desc , nested1 = await cursor .fetchone ()
904+ self .assertEqual (desc , "Top Level String 1" )
905+ nested_rows = await nested1 .fetchall ()
906+ self .assertEqual (
907+ nested_rows , [("Nested String for Top Level String 1" ,)]
908+ )
909+ desc , nested2 = await cursor .fetchone ()
910+ self .assertEqual (desc , "Top Level String 2" )
911+ nested_rows = await nested2 .fetchall ()
912+ self .assertEqual (
913+ nested_rows , [("Nested String for Top Level String 2" ,)]
914+ )
915+
875916
876917if __name__ == "__main__" :
877918 test_env .run_test_cases ()
0 commit comments