Skip to content

Commit e0d6768

Browse files
committed
Fixed issue with parsing by trigger when source contains leading comments.
1 parent c6c3af5 commit e0d6768

2 files changed

Lines changed: 14 additions & 4 deletions

File tree

source/core/annotations/ut_annotation_manager.pkb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,10 +267,11 @@ create or replace package body ut_annotation_manager as
267267
l_sql_text ora_name_list_t := a_sql_text;
268268
begin
269269
if a_parts > 0 then
270-
l_sql_text(1) := regexp_replace(l_sql_text(1),'^\s*create(\s+or\s+replace){0,1}(\s+(editionable|noneditionable)){0,1}\s+{0,1}', modifier => 'i');
271270
for i in 1..a_parts loop
272271
ut_utils.append_to_clob(l_sql_clob, l_sql_text(i));
273272
end loop;
273+
l_sql_clob := ut3.ut_utils.replace_multiline_comments(l_sql_clob);
274+
l_sql_clob := regexp_replace(l_sql_clob, '^(.*?[^-]{2,}\s*create(\s+or\s+replace){0,1}(\s+(editionable|noneditionable))?\s+?)((package|type).*)', '\5', 1, 1, 'ni');
274275
l_sql_lines := ut_utils.convert_collection( ut_utils.clob_to_table(l_sql_clob) );
275276
end if;
276277
open l_result for

test/ut3_tester/core/annotations/test_annotation_manager.pkb

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,19 @@ create or replace package body test_annotation_manager is
3939
procedure create_dummy_test_package is
4040
pragma autonomous_transaction;
4141
begin
42-
execute immediate q'[create or replace package dummy_test_package as
42+
execute immediate q'[
43+
/*
44+
* Some multiline comments before package spec
45+
create or replace package dummy_test_package dummy comment to prove that we pick the right piece of code
46+
*/
47+
-- create or replace package dummy_test_package dummy comment to prove that we pick the right piece of code
48+
--Some single-line comment before package spec
49+
create or replace package dummy_test_package as
4350
--%suite(dummy_test_suite)
4451
--%rollback(manual)
4552

53+
--create or replace package dummy_test_package dummy comment to prove that we pick the right piece of code
54+
4655
--%test(dummy_test)
4756
--%beforetest(some_procedure)
4857
procedure some_dummy_test_procedure;
@@ -142,9 +151,9 @@ create or replace package body test_annotation_manager is
142151
from dual union all
143152
select 3, 'rollback' , 'manual', '' as subobject_name
144153
from dual union all
145-
select 5, 'test' , 'dummy_test', 'some_dummy_test_procedure' as subobject_name
154+
select 7, 'test' , 'dummy_test', 'some_dummy_test_procedure' as subobject_name
146155
from dual union all
147-
select 6, 'beforetest' , 'some_procedure', 'some_dummy_test_procedure' as subobject_name
156+
select 8, 'beforetest' , 'some_procedure', 'some_dummy_test_procedure' as subobject_name
148157
from dual;
149158

150159
ut.expect(l_actual).to_equal(l_expected);

0 commit comments

Comments
 (0)