@@ -913,5 +913,37 @@ def test_4369_bind_order_for_plsql(self):
913913 fetched_rows = self .cursor .fetchall ()
914914 self .assertEqual (fetched_rows , rows )
915915
916+ def test_4370_rebuild_table_with_lob_in_cached_query (self ):
917+ "4370 - test rebuild of table with LOB in cached query"
918+ table_name = "test_4370"
919+ drop_sql = f"drop table { table_name } purge"
920+ create_sql = f"""
921+ create table { table_name } (
922+ Col1 number(9) not null,
923+ Col2 clob not null
924+ )"""
925+ insert_sql = f"insert into { table_name } values (:1, :2)"
926+ query_sql = f"select * from { table_name } order by Col1"
927+ data = [
928+ (1 , "CLOB value 1" ),
929+ (2 , "CLOB value 2" )
930+ ]
931+ try :
932+ self .cursor .execute (drop_sql )
933+ except :
934+ pass
935+ with test_env .FetchLobsContextManager (False ):
936+ self .cursor .execute (create_sql )
937+ self .cursor .executemany (insert_sql , data )
938+ self .cursor .execute (query_sql )
939+ self .assertEqual (self .cursor .fetchall (), data )
940+ self .cursor .execute (query_sql )
941+ self .assertEqual (self .cursor .fetchall (), data )
942+ self .cursor .execute (drop_sql )
943+ self .cursor .execute (create_sql )
944+ self .cursor .executemany (insert_sql , data )
945+ self .cursor .execute (query_sql )
946+ self .assertEqual (self .cursor .fetchall (), data )
947+
916948if __name__ == "__main__" :
917949 test_env .run_test_cases ()
0 commit comments