8000 Merge pull request #875 from utPLSQL/release/v3.1.6 · utPLSQL/utPLSQL@e3f5f95 · GitHub
[go: up one dir, main page]

Skip to content

Commit e3f5f95

Browse files
authored
Merge pull request #875 from utPLSQL/release/v3.1.6
Release/v3.1.6
2 parents c92ed1b + f75d796 commit e3f5f95

35 files changed

+148
-41
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v3.1.5
1+
v3.1.6

development/releasing.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ To create a release:
1010
- merge the release branch to master and wait for master build to complete successfully
1111
- create a release from the master branch using [github releases page](https://github.com/utPLSQL/utPLSQL/releases) and populate release description using information found on the issues and pull requests since previous release.
1212
To find issues closed after certain date use [advanced filters](https://help.github.com/articles/searching-issues-and-pull-requests/#search-by-open-or-closed-state).
13-
Example: [`is:issue closed:>2018-07-22`](https://github.com/utPLSQL/utPLSQL/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%3E2018-07-22+)
13+
Example: [`is:issue closed:>2018-07-22`](https://github.com/utPLSQL/utPLSQL/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%3E2018-07-22+)
14+
- After release was successfully built, merge master branch back into develop branch
15+
- After develop branch was built, update version number in `VERSION` file to represent next planned release version.
16+
- Clone `utplsql.githug.io` project and add a new announcement about next version being released in `_posts`. Use previous announcements as a template. Make sure to set date, time and post title properly.
1417

1518
The following will happen:
1619
- build executed on branch `release/vX.Y.Z-[something]` updates files `sonar-project.properties`, `VERSION` with project version derived from the release branch name

docs/about/authors.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
### utPLSQL v3 Major Contributors
44

docs/about/license.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Version Information
44

docs/about/project-details.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# utPLSQL Project Details
44

docs/about/support.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# How to get support
44

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Introduction to utPLSQL
44

docs/userguide/advanced_data_comparison.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Advanced data comparison
44

docs/userguide/annotations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Annotations
44

docs/userguide/best-practices.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Best Practices
44

docs/userguide/coverage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Coverage
44
utPLSQL comes with a built-in coverage reporting engine. The code coverage reporting is based on the DBMS_PROFILER package provided with Oracle database.

docs/userguide/exception-reporting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Exception handling and reporting
44

docs/userguide/expectations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Expectation concepts
44
Validation of the code under test (the tested logic of procedure/function etc.) is performed by comparing the actual data against the expected data.

docs/userguide/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Getting started with TDD and utPLSQL
44

docs/userguide/install.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Downloading latest version of utPLSQL
44

docs/userguide/querying_suites.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Qyerying for test suites
44

docs/userguide/reporters.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
utPLSQL provides the following reporting formats.
44

docs/userguide/running-unit-tests.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Running tests
44

docs/userguide/upgrade.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![version](https://img.shields.io/badge/version-v3.1.5.2707-blue.svg)
1+
![version](https://img.shields.io/badge/version-v3.1.6.2729-blue.svg)
22

33
# Upgrading from version 2
44

sonar-project.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
sonar.projectKey=utPLSQL
33
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
44
sonar.projectName=utPLSQL
5-
sonar.projectVersion=v3.1.5
5+
sonar.projectVersion=v3.1.6
66

77
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
88
# Since SonarQube 4.2, this property is optional if sonar.modules is set.

source/core/ut_utils.pks

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ create or replace package ut_utils authid definer is
2121
*
2222
*/
2323

24-
gc_version constant varchar2(50) := 'v3.1.5.2707';
24+
gc_version constant varchar2(50) := 'v3.1.6.2729';
2525

2626
subtype t_executable_type is varchar2(30);
2727
gc_before_all constant t_executable_type := 'beforeall';

source/create_synonyms_and_grants_for_public.sql

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,6 @@ grant select, insert, delete, update on &&ut3_owner..dbmspcc_units to public;
107107
grant execute on &&ut3_owner..ut_matcher_options to public;
108108
grant execute on &&ut3_owner..ut_matcher_options_items to public;
109109
grant execute on &&ut3_owner..ut_run_info to public;
110-
grant execute on &&ut3_owner..ut_cursor_column_tab to public;
111-
grant execute on &&ut3_owner..ut_cursor_details to public;
112110

113111
prompt Creating synonyms for UTPLSQL objects in &&ut3_owner schema to PUBLIC
114112

@@ -169,5 +167,3 @@ create public synonym dbmspcc_blocks for &&ut3_owner..dbmspcc_blocks;
169167
create public synonym dbmspcc_runs for &&ut3_owner..dbmspcc_runs;
170168
create public synonym dbmspcc_units for &&ut3_owner..dbmspcc_units;
171169
create public synonym ut_run_info for &&ut3_owner..ut_run_info;
172-
create public synonym ut_cursor_column_tab for &&ut3_owner..ut_cursor_column_tab;
173-
create public synonym ut_cursor_details for &&ut3_owner..ut_cursor_details;

source/create_user_grants.sql

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,5 +126,3 @@ grant select, insert, delete, update on &&ut3_owner..dbmspcc_units to &ut3_user;
126126
grant execute on &&ut3_owner..ut_matcher_options to &ut3_user;
127127
grant execute on &&ut3_owner..ut_matcher_options_items to &ut3_user;
128128
grant execute on &&ut3_owner..ut_run_info to &ut3_user;
129-
grant execute on &&ut3_owner..ut_cursor_column_tab to &ut3_user;
130-
grant execute on &&ut3_owner..ut_cursor_details to &ut3_user;

source/create_user_synonyms.sql

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,5 +109,3 @@ create or replace synonym &ut3_user..dbmspcc_blocks for &&ut3_owner..dbmspcc_blo
109109
create or replace synonym &ut3_user..dbmspcc_runs for &&ut3_owner..dbmspcc_runs;
110110
create or replace synonym &ut3_user..dbmspcc_units for &&ut3_owner..dbmspcc_units;
111111
create or replace synonym &ut3_user..ut_run_info for &&ut3_owner..ut_run_info;
112-
create or replace synonym &ut3_user..ut_cursor_column_tab for &&ut3_owner..ut_cursor_column_tab;
113-
create or replace synonym &ut3_user..ut_cursor_details for &&ut3_owner..ut_cursor_details;

source/expectations/data_values/ut_compound_data_helper.pkb

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,16 @@ create or replace package body ut_compound_data_helper is
7979
execute immediate q'[with
8080
expected_cols as (
8181
select access_path exp_column_name,column_position exp_col_pos,
82-
replace(column_type,'VARCHAR2','CHAR') exp_col_type_compare, column_type exp_col_type
82+
replace(column_type_name,'VARCHAR2','CHAR') exp_col_type_compare, column_type_name exp_col_type
8383
from table(:a_expected)
84+
where parent_name is null and hierarchy_level = 1 and column_name is not null
8485
),
8586
actual_cols as (
8687
select access_path act_column_name,column_position act_col_pos,
87-
replace(column_type,'VARCHAR2','CHAR') act_col_type_compare, column_type act_col_type
88-
from table(:a_actual)),
88+
replace(column_type_name,'VARCHAR2','CHAR') act_col_type_compare, column_type_name act_col_type
89+
from table(:a_actual)
90+
where parent_name is null and hierarchy_level = 1 and column_name is not null
91+
),
8992
joined_cols as (
9093
select e.*,a.*]'
9194
|| case when a_order_enforced then ',
@@ -586,6 +589,13 @@ create or replace package body ut_compound_data_helper is
586589
end;
587590
end;
588591

592+
function get_compare_cursor(a_diff_cursor_text in clob,a_self_id raw, a_other_id raw) return sys_refcursor is
593+
l_diff_cursor sys_refcursor;
594+
begin
595+
open l_diff_cursor for a_diff_cursor_text using a_self_id, a_other_id;
596+
return l_diff_cursor;
597+
end;
598+
589599
begin
590600
g_anytype_name_map(dbms_types.typecode_date) := 'DATE';
591601
g_anytype_name_map(dbms_types.typecode_number) := 'NUMBER';

source/expectations/data_values/ut_compound_data_helper.pks

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ create or replace package ut_compound_data_helper authid definer is
8989
function is_sql_compare_allowed(a_type_name varchar2) return boolean;
9090

9191
function get_column_type_desc(a_type_code in integer, a_dbms_sql_desc in boolean) return varchar2;
92-
92+
93+
function get_compare_cursor(a_diff_cursor_text in clob,a_self_id raw, a_other_id raw) return sys_refcursor;
94+
9395
end;
9496
/

source/expectations/data_values/ut_cursor_column.tpb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ create or replace type body ut_cursor_column as
1212
self.column_position := a_col_position; --Position of the column in cursor/ type
1313
self.column_len := a_col_max_len; --length of column
1414
self.column_name := TRIM( BOTH '''' FROM a_col_name); --name of the column
15-
self.column_type_name := a_col_type_name; --type name e.g. test_dummy_object or varchar2
15+
self.column_type_name := coalesce(a_col_type_name,a_col_type); --type name e.g. test_dummy_object or varchar2
1616
self.access_path := case when a_access_path is null then
1717
self.column_name
1818
else

source/expectations/data_values/ut_cursor_details.tpb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,12 +195,10 @@ create or replace type body ut_cursor_details as
195195
member function get_xml_children(a_parent_name varchar2 := null) return xmltype is
196196
l_result xmltype;
197197
begin
198-
select xmlagg(xmlelement(evalname t.column_name,t.column_type,
199-
self.get_xml_children(t.column_name)))
198+
select xmlagg(xmlelement(evalname t.column_name,t.column_type_name))
200199
into l_result
201200
from table(self.cursor_columns_info) t
202-
where (a_parent_name is not null and parent_name = a_parent_name and hierarchy_level > 1 and column_name is not null)
203-
or (a_parent_name is null and parent_name is null and hierarchy_level = 1 and column_name is not null)
201+
where (a_parent_name is null and parent_name is null and hierarchy_level = 1 and column_name is not null)
204202
having count(*) > 0;
205203

206204
return l_result;

source/expectations/data_values/ut_data_value_refcursor.tpb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,8 @@ create or replace type body ut_data_value_refcursor as
306306
l_diff_id := ut_compound_data_helper.get_hash(a_self.data_id||a_other.data_id);
307307

308308
begin
309-
open l_cursor for a_diff_cursor_text using a_self.data_id, a_other.data_id;
309+
l_cursor := ut_compound_data_helper.get_compare_cursor(a_diff_cursor_text,
310+
a_self.data_id, a_other.data_id);
310311
--fetch and save rows for display of diff
311312
fetch l_cursor bulk collect into l_diff_tab limit ut_utils.gc_diff_max_rows;
312313

test/core/expectations/test_expectations_cursor.pkb

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2465,5 +2465,65 @@ Diff:%
24652465
ut.expect(l_actual_message).to_be_like(l_expected_message);
24662466
end;
24672467

2468+
procedure udt_messg_format_eq is
2469+
l_actual sys_refcursor;
2470+
l_expected sys_refcursor;
2471+
l_expected_tab ut3.ut_key_value_pairs := ut3.ut_key_value_pairs();
2472+
l_expected_message varchar2(32767);
2473+
l_actual_message varchar2(32767);
2474+
begin
2475+
select ut3.ut_key_value_pair(rownum,'Something '||rownum)
2476+
bulk collect into l_expected_tab
2477+
from dual connect by level <=2;
2478+
2479+
--Arrange
2480+
open l_actual for select object_name, owner from all_objects where rownum < 3;
2481+
open l_expected for select value(x) as udt from table(l_expected_tab) x;
2482+
2483+
--Act
2484+
ut3.ut.expect(l_actual).to_contain(l_expected);
2485+
--Assert
2486+
l_expected_message := q'[%Actual: refcursor [ count = 2 ] was expected to contain: refcursor [ count = 2 ]
2487+
%Diff:
2488+
%Columns:
2489+
%Column <UDT> [data-type: UT_KEY_VALUE_PAIR] is missing. Expected column position: 1.
2490+
%Column <OBJECT_NAME> [position: 1, data-type: VARCHAR2] is not expected in results.
2491+
%Column <OWNER> [position: 2, data-type: VARCHAR2] is not expected in results.
2492+
%Rows: [ 2 differences ]
2493+
%Missing: <UDT><KEY>1</KEY><VALUE>Something 1</VALUE></UDT>
2494+
%Missing: <UDT><KEY>2</KEY><VALUE>Something 2</VALUE></UDT>%]';
2495+
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
2496+
--Assert
2497+
ut.expect(l_actual_message).to_be_like(l_expected_message);
2498+
end;
2499+
2500+
procedure udt_messg_format_empt is
2501+
l_actual sys_refcursor;
2502+
l_actual_tab ut3.ut_key_value_pairs := ut3.ut_key_value_pairs();
2503+
l_actual_message varchar2(32767);
2504+
l_expected_message varchar2(32767);
2505+
begin
2506+
select ut3.ut_key_value_pair(rownum,'Something '||rownum)
2507+
bulk collect into l_actual_tab
2508+
from dual connect by level <=2;
2509+
2510+
--Arrange
2511+
open l_actual for select value(x) as udt from table(l_actual_tab) x;
2512+
2513+
--Act
2514+
ut3.ut.expect(l_actual).to_be_empty();
2515+
--Assert
2516+
l_expected_message := q'[%Actual: (refcursor [ count = 2 ])
2517+
%Data-types:
2518+
%<UDT>UT_KEY_VALUE_PAIR</UDT>
2519+
%Data:
2520+
%<ROW><UDT><KEY>1</KEY><VALUE>Something 1</VALUE></UDT></ROW><ROW><UDT><KEY>2</KEY><VALUE>Something 2</VALUE></UDT></ROW>
2521+
%was expected to be empty%]';
2522+
2523+
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
2524+
--Assert
2525+
ut.expect(l_actual_message).to_be_like(l_expected_message);
2526+
end;
2527+
24682528
end;
24692529
/

test/core/expectations/test_expectations_cursor.pks

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,11 @@ create or replace package test_expectations_cursor is
390390

391391
--%test(Cursor to contain duplicates fail)
392392
procedure to_contain_duplicates_fail;
393-
393+
394+
--%test(Display a message with a uer defined type with only type name not structure on equal)
395+
procedure udt_messg_format_eq;
396+
397+
--%test(Display a message with a uer defined type with only type name not structure on empty)
398+
procedure udt_messg_format_empt;
394399
end;
395400
/

test/core/min_grant_user/test_min_grant_user.pkb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,17 @@ create or replace package body test_min_grant_user is
5555
'%1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%' );
5656

5757
end;
58+
59+
procedure test_equal_non_diff_sql is
60+
l_results clob;
61+
begin
62+
execute immediate 'begin ut3$user#.test_cursor_grants.run_test_equal_non_diff_sql(); end;';
63+
l_results := core.get_dbms_output_as_clob();
64+
--Assert
65+
ut.expect( l_results ).to_be_like( '%execute test with non diff datatype [% sec]' ||
66+
'%1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)%' );
67+
68+
end;
5869

5970
end;
6071
/

test/core/min_grant_user/test_min_grant_user.pks

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,8 @@ create or replace package test_min_grant_user is
1818
--%test(execute empty test)
1919
procedure test_empty_cursor;
2020

21+
--%test(execute test with non diff datatype)
22+
procedure test_equal_non_diff_sql;
23+
2124
end;
2225
/

test/helpers/ut3user#.test_cursor_grants.pkb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ create or replace package body ut3$user#.test_cursor_grants is
2424
begin
2525
ut3.ut.run('test_cursor_grants.test_empty_cursor');
2626
end;
27+
28+
procedure run_test_equal_non_diff_sql is
29+
begin
30+
ut3.ut.run('test_cursor_grants.test_equal_non_diff_sql');
31+
end;
2732

2833
procedure test_join_by_cursor is
2934
l_actual SYS_REFCURSOR;
@@ -92,5 +97,18 @@ create or replace package body ut3$user#.test_cursor_grants is
9297
ut3.ut.expect(l_expected).to_be_empty();
9398
end;
9499

100+
procedure test_equal_non_diff_sql is
101+
l_actual SYS_REFCURSOR;
102+
l_expected SYS_REFCURSOR;
103+
begin
104+
open l_actual for
105+
select to_clob('test1') as item from dual;
106+
107+
open l_expected for
108+
select to_clob('test1') as item from dual;
109+
110+
ut3.ut.expect(l_actual).to_equal(l_expected);
111+
end;
112+
95113
end;
96114
/

test/helpers/ut3user#.test_cursor_grants.pks

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ create or replace package ut3$user#.test_cursor_grants is
66
procedure run_test_not_empty_cursor;
77
procedure run_test_have_count_cursor;
88
procedure run_test_empty_cursor;
9-
9+
procedure run_test_equal_non_diff_sql;
10+
1011
--%test(execute join by test)
1112
procedure test_join_by_cursor;
1213

@@ -22,5 +23,8 @@ create or replace package ut3$user#.test_cursor_grants is
2223
--%test(execute empty test)
2324
procedure test_empty_cursor;
2425

26+
--%test(execute test with non diff datatype)
27+
procedure test_equal_non_diff_sql;
28+
2529
end;
2630
/

0 commit comments

Comments
 (0)
0