@@ -295,7 +295,8 @@ create or replace package body ut_suite_manager is
295295 end loop;
296296 close a_suite_data_cursor;
297297 end reconstruct_from_cache;
298-
298+
299+ --TODO: daj do public ut_suite_cache_rows i zmienic na SQL
299300 function get_filtered_cursor(
300301 a_unfiltered_rows in ut_suite_cache_rows,
301302 a_skip_all_objects boolean := false
@@ -306,26 +307,21 @@ create or replace package body ut_suite_manager is
306307 if ut_metadata.user_has_execute_any_proc() or a_skip_all_objects then
307308 l_result := a_unfiltered_rows;
308309 else
309- for i in (
310- select /*+ no_parallel */ c.* from table(a_unfiltered_rows) c
311- where sys_context( 'userenv', 'current_user' ) = upper(c.object_owner)
312- union all
313- select /*+ no_parallel */ c.* from table(a_unfiltered_rows) c
314- where sys_context( 'userenv', 'current_user' ) != upper(c.object_owner)
315- and ( exists
316- ( select 1
317- from all_objects a
318- where a.object_name = c.object_name
319- and a.owner = c.object_owner
320- and a.object_type = 'PACKAGE'
321- )
322- or c.self_type = 'UT_LOGICAL_SUITE'))
323- loop
324- l_result.extend;
325- l_result(l_result.last) := ut_suite_cache_row(i.id,i.self_type,i.path,i.object_owner,i.object_name,i.name,i.line_no,i.parse_time,
326- i.description,i.rollback_type,i.disabled_flag,i.disabled_reason,i.warnings,i.before_all_list,i.after_all_list,i.before_each_list,
327- i.before_test_list,i.after_each_list,i.after_test_list,i.expected_error_codes,i.tags,i.item);
328- end loop;
310+ select obj bulk collect into l_result
311+ from (
312+ select /*+ no_parallel */ value(c) as obj from table(a_unfiltered_rows) c
313+ where sys_context( 'userenv', 'current_user' ) = upper(c.object_owner)
314+ union all
315+ select /*+ no_parallel */ value(c) as obj from table(a_unfiltered_rows) c
316+ where sys_context( 'userenv', 'current_user' ) != upper(c.object_owner)
317+ and ( exists
318+ ( select 1
319+ from all_objects a
320+ where a.object_name = c.object_name
321+ and a.owner = c.object_owner
322+ and a.object_type = 'PACKAGE'
323+ )
324+ or c.self_type = 'UT_LOGICAL_SUITE'));
329325 end if;
330326 return l_result;
331327 end;
@@ -373,6 +369,8 @@ create or replace package body ut_suite_manager is
373369 l_filtered_rows := get_filtered_cursor(l_unfiltered_rows,a_skip_all_objects);
374370 reconcile_paths_and_suites(a_schema_paths,l_filtered_rows);
375371
372+ ut_suite_cache_manager.sort_and_randomize_tests(l_filtered_rows,a_random_seed);
373+
376374 open l_result for
377375 select * from table(l_filtered_rows);
378376 return l_result;
0 commit comments