From 3437b689e2097b1bdae4b0daf22b09549e5eabee Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Fri, 15 Apr 2022 23:25:52 +0300 Subject: [PATCH] Fixed issue where schema last parse time was wrongly populated --- source/core/annotations/ut_annotation_manager.pkb | 8 +++----- source/core/ut_suite_cache_manager.pkb | 2 +- source/core/ut_suite_manager.pkb | 4 ++-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/source/core/annotations/ut_annotation_manager.pkb b/source/core/annotations/ut_annotation_manager.pkb index 95d944843..16923bc23 100644 --- a/source/core/annotations/ut_annotation_manager.pkb +++ b/source/core/annotations/ut_annotation_manager.pkb @@ -61,15 +61,15 @@ create or replace package body ut_annotation_manager as l_refresh_needed boolean; l_objects_view varchar2(200) := ut_metadata.get_objects_view_name(); l_cached_objects ut_annotation_objs_cache_info; - l_result ut_annotation_objs_cache_info; + l_result ut_annotation_objs_cache_info := ut_annotation_objs_cache_info(); begin - ut_event_manager.trigger_event( 'get_objects_to_refresh - start' ); + ut_event_manager.trigger_event( 'get_objects_to_refresh - start', ut_key_anyvalues().put('ut_trigger_check.is_alive()',ut_trigger_check.is_alive()) ); l_refresh_needed := ( ut_trigger_check.is_alive() = false ) or a_modified_after is null; - l_cached_objects := ut_annotation_cache_manager.get_cached_objects_list( a_object_owner, a_object_type, a_modified_after ); if l_refresh_needed then --limit the list to objects that exist and are visible to the invoking user --enrich the list by info about cache validity + l_cached_objects := ut_annotation_cache_manager.get_cached_objects_list( a_object_owner, a_object_type, a_modified_after ); execute immediate 'select /*+ no_parallel cardinality(i '||ut_utils.scale_cardinality(cardinality(l_cached_objects))||') */ '||l_ut_owner||q'[.ut_annotation_obj_cache_info( @@ -94,8 +94,6 @@ create or replace package body ut_annotation_manager as else 'o.last_ddl_time >= cast(:a_modified_after as date)' end bulk collect into l_result using l_cached_objects, a_modified_after; - else - l_result := l_cached_objects; end if; ut_event_manager.trigger_event('get_objects_to_refresh - end (count='||l_result.count||')'); return l_result; diff --git a/source/core/ut_suite_cache_manager.pkb b/source/core/ut_suite_cache_manager.pkb index ad1634c10..1023a515b 100644 --- a/source/core/ut_suite_cache_manager.pkb +++ b/source/core/ut_suite_cache_manager.pkb @@ -297,7 +297,7 @@ create or replace package body ut_suite_cache_manager is if a_parse_time > l_cached_parse_time or l_cached_parse_time is null then update /*+ no_parallel */ ut_suite_cache_schema t - set t.parse_time = a_parse_time + set t.parse_time = greatest(t.parse_time,a_parse_time) where object_owner = l_object_owner; if sql%rowcount = 0 then diff --git a/source/core/ut_suite_manager.pkb b/source/core/ut_suite_manager.pkb index 4bcb83afa..a11b0249c 100644 --- a/source/core/ut_suite_manager.pkb +++ b/source/core/ut_suite_manager.pkb @@ -366,7 +366,7 @@ create or replace package body ut_suite_manager is ) or c.self_type = 'UT_LOGICAL_SUITE'; end if; - + return l_result; end; @@ -578,7 +578,7 @@ create or replace package body ut_suite_manager is a_suites(i).set_rollback_type( a_suites(i).get_rollback_type() ); end loop; - ut_event_manager.trigger_event('configure_execution_by_path - start'); + ut_event_manager.trigger_event('configure_execution_by_path - end'); end configure_execution_by_path; function get_suites_info(