Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Call params for test are not valid" for all tests in specific schema #885

Closed
tkleiber opened this issue Mar 29, 2019 · 20 comments

Comments

Projects
None yet
4 participants
@tkleiber
Copy link

commented Mar 29, 2019

Describe the bug
The error message happens for all tests in a specific schema

Provide version info
utPLSQL v3.1.6.2735, Database version 18.5.0.0.0
port_string: x86_64/Linux 2.4.xx

Information about client software

  • SQL Developer
  • CLI

To Reproduce
Steps to reproduce the behavior:

  1. Create betwnstr/test_betweenstr packages from demo project
  2. EXECUTE ut.run('SCHEMA.test_betwnstr');
  3. See error

Between string function
Returns substring from start position to end position [,003 sec] (FAILED - 1)
Returns substring when start position is zero [,002 sec] (FAILED - 2)
Returns string until end if end position is greater than string length [,002 sec] (FAILED - 3)
Returns null for null input string value [,002 sec] (FAILED - 4)
A demo of test raising runtime exception [,002 sec] (FAILED - 5)
A demo of failing test [,002 sec] (FAILED - 6)
Demo of a disabled test [0 sec] (DISABLED)

Failures:

  1. normal_case
    Call params for test are not valid: package does not exist or is invalid: SCHEMA.TEST_BETWNSTR
  2. zero_start_position
    Call params for test are not valid: package does not exist or is invalid: SCHEMA.TEST_BETWNSTR
  3. big_end_position
    Call params for test are not valid: package does not exist or is invalid: SCHEMA.TEST_BETWNSTR
  4. null_string
    Call params for test are not valid: package does not exist or is invalid: SCHEMA.TEST_BETWNSTR
  5. bad_params
    Call params for test are not valid: package does not exist or is invalid: SCHEMA.TEST_BETWNSTR
  6. bad_test
    Call params for test are not valid: package does not exist or is invalid: SCHEMA.TEST_BETWNSTR
    Finished in ,014138 seconds
    7 tests, 0 failed, 6 errored, 1 disabled, 0 warning(s)

Expected behavior
Should be successfully run as in another schema in the same database.

Example code
betwnstr/test_betweenstr packages from demo project

Additional context
Maybe this is grant / object related (eg. duplicate system views in the schema or similar)

@lwasylow

This comment has been minimized.

Copy link
Member

commented Mar 29, 2019

Hi @tkleiber
Who is the owner of the tests packages and who is executing the tests ?
Does the schema executing tests have execute on the tests packages ?

@tkleiber

This comment has been minimized.

Copy link
Author

commented Mar 29, 2019

The owner is executing the tests, therefore I don't understand why this error occurs.

@jgebal

This comment has been minimized.

Copy link
Member

commented Mar 29, 2019

Is the failure message containing exactly:
SCHEMA.TEST_BETWNSTR or did you modify it?

@tkleiber

This comment has been minimized.

Copy link
Author

commented Mar 29, 2019

Have renamed only the schema to hide company informations.

@jgebal

This comment has been minimized.

Copy link
Member

commented Mar 29, 2019

You mentioned duplicate system views in schema. Is this something that you have?
utPLSQL is based on access to some system views so if you have duplicated system views in SCHEMA that could be the problem.
Another possibility is that there are some changes in 18.5 to how dbms_sql / dynamic sql works.

Can you reproduce the same problem in any schema or is it only this one schema that is causing issues?

@tkleiber

This comment has been minimized.

Copy link
Author

commented Mar 30, 2019

System views was only an idea, but I could not found any dba-, user- or all-views in the meantime. As already mentioned in another schema all runs fine.

Should I run them same selects and debug statement as in the last issue?

@jgebal

This comment has been minimized.

Copy link
Member

commented Mar 30, 2019

That would be helpful.
I will not be able to work on urPLSQL within next two weeks however.

@tkleiber

This comment has been minimized.

Copy link
Author

commented Apr 1, 2019

annotation cache:
annotation_cache.zip

suite cache:
ut_suite_cache.zip

debug log:
ut_debug_reporter.zip

@jgebal

This comment has been minimized.

Copy link
Member

commented Apr 18, 2019

Hi @tkleiber
Is this still an issue for you?
Unfortunately I can't reproduce this issue on the DB versions I have at hand.
I'll add some extra debug info into 3.1.7-develop to help investigate the problem.

Two questions:

  • is this an issue related to 3.1.6 - do you have same issue with older versions of utPLSQL?
  • is this an issue related to DB version - do you see same issue on older versions of DB?

If you can help us narrow-down the problem - that will help a lot.

@jgebal

This comment has been minimized.

Copy link
Member

commented Apr 18, 2019

Also, is the package TEST_BETWNSTR actually valid?
The reason to get this exception is when:

  • package is not visible to user
  • package is not valid

So there are only three possibilities:

  • test package is not visible to user
  • test package is not in valid state (spec)
  • we have an issue inside utPLSQL with package state validation.
@tkleiber

This comment has been minimized.

Copy link
Author

commented Apr 23, 2019

is this an issue related to 3.1.6 - do you have same issue with older versions of utPLSQL?

I have seen this before on 3.1.3, so therefore I have updated to 3.1.6 before I opened this issue to create it for the actual version.

is this an issue related to DB version - do you see same issue on older versions of DB?

This issue is not reproducable on 11.2.0.4 EE, we are on the way to migrate to 18.5.0.0 EE and running successfully the utPLSQL tests is the first step to verify this migration.

test package is not visible to user

The user ownes the package and so it is visible.

test package is not in valid state (spec)

Test package and body TEST_BETWNSTR and the function BETWNSTR are valid and owned by the calling user.

we have an issue inside utPLSQL with package state validation.

Seems that this remains!?

As already mentioned: If I call the same test from another user, to which is granted execute grants to the owner package and function, all run as expected.

@jgebal

This comment has been minimized.

Copy link
Member

commented Apr 28, 2019

Since I cannot reproduce it on any of DB's we have:
-11g, 12.1, 12.2, 18, 19, can you please check which part of the validation fails for you?

This could indicate an Oracle DB issue - maybe a bug in 18.5 version you have installed:

declare

  function is_object_visible(a_object_name varchar2) return boolean is
    l_invalid_object_name exception;
    pragma exception_init(l_invalid_object_name,-44002);
  begin
    return dbms_assert.sql_object_name(a_object_name) is not null;
    exception
    when l_invalid_object_name then
      return false;
  end;

  function get_dba_view(a_dba_view_name varchar2) return varchar2 is
    l_result              varchar2(128) := lower(a_dba_view_name);
  begin
    if not is_object_visible(a_dba_view_name) then
      l_result := replace(l_result,'dba_','all_');
      end if;
    return l_result;
  end;

  function get_objects_view_name return varchar2 is
  begin
    return get_dba_view('dba_objects');
  end;

  function form_name(a_owner_name varchar2, a_object varchar2, a_subprogram varchar2 default null) return varchar2 is
    l_name varchar2(200);
  begin
    l_name := trim(a_object);
    if trim(a_owner_name) is not null then
      l_name := trim(a_owner_name) || '.' || l_name;
      end if;
    if trim(a_subprogram) is not null then
      l_name := l_name || '.' || trim(a_subprogram);
      end if;
    return l_name;
  end form_name;

  procedure do_resolve(a_fully_qualified_name in varchar2,a_context in integer,a_owner out nocopy varchar2, a_object out nocopy varchar2,
                       a_procedure_name out nocopy varchar2) is
    l_dblink        varchar2(200);
    l_part1_type    number;
    l_object_number number;
  begin
    dbms_utility.name_resolve(name          => a_fully_qualified_name
      ,context       => a_context
      ,schema        => a_owner
      ,part1         => a_object
      ,part2         => a_procedure_name
      ,dblink        => l_dblink
      ,part1_type    => l_part1_type
      ,object_number => l_object_number);
  end;

  procedure do_resolve(a_owner in out nocopy varchar2, a_object in out nocopy varchar2, a_procedure_name in out nocopy varchar2) is
    l_name          varchar2(200);
    l_context       integer := 1; --plsql
  begin
    l_name := form_name(a_owner, a_object, a_procedure_name);
    do_resolve(l_name,l_context,a_owner,a_object, a_procedure_name);
  end do_resolve;

  function package_valid(a_owner_name varchar2, a_package_name in varchar2) return boolean as
    l_cnt            number;
    l_schema         varchar2(200);
    l_package_name   varchar2(200);
    l_procedure_name varchar2(200);
    l_view_name      varchar2(200) := get_objects_view_name;
  begin

    l_schema       := a_owner_name;
    l_package_name := a_package_name;

    do_resolve(l_schema, l_package_name, l_procedure_name);

    execute immediate q'[select count(decode(status, 'VALID', 1, null)) / count(*)
      from ]'||l_view_name||q'[
     where owner = :l_schema
       and object_name = :l_package_name
       and object_type in ('PACKAGE')]'
      into l_cnt using l_schema, l_package_name;

    -- expect both package and body to be valid
    return l_cnt = 1;
    exception
    when others then
      dbms_output.put_line(dbms_utility.format_error_stack()||dbms_utility.format_error_backtrace());

      return false;
  end;
begin
  if package_valid('SCHEMA','TEST_BETWNSTR') then
    dbms_output.put_line('PACAKGE VALID');
    else
      dbms_output.put_line('!!!pacakge not vaild');
    end if;
end;
/

If you manage to find which part of validation is failing, we can re-visit it and adjust.
There seems to be a bit too much going on for pre-test-run validation anyways.

@jgebal jgebal added this to the v3.1.7 milestone Apr 28, 2019

@tkleiber

This comment has been minimized.

Copy link
Author

commented Apr 29, 2019

Here is the output of this code:

ORA-04047: object specified is incompatible with the flag specified
ORA-06512: at "SYS.DBMS_UTILITY", line 156
ORA-06512: at line 46
ORA-06512: at line 61
ORA-06512: at "SYS.DBMS_UTILITY", line 156
ORA-06512: at line 46
ORA-06512: at line 61
ORA-06512: at line 75

!!!pacakge not vaild

@lwasylow

This comment has been minimized.

Copy link
Member

commented Apr 29, 2019

Can you add some dbms output so we can see variables values ? Replace a do_resolve with something like these

  procedure do_resolve(a_owner in out nocopy varchar2, a_object in out nocopy varchar2, a_procedure_name in out nocopy varchar2) is
    l_name          varchar2(200);
    l_context       integer := 1; --plsql
  begin
    l_name := form_name(a_owner, a_object, a_procedure_name);
    dbms_output.put_line('Full name: '||l_name);
	dbms_output.put_line('a_owner name: '||a_owner);
	dbms_output.put_line('a_object name: '||a_object);
	dbms_output.put_line('a_procedure_name: '||a_procedure_name);
	do_resolve(l_name,l_context,a_owner,a_object, a_procedure_name);
  end do_resolve;
@tkleiber

This comment has been minimized.

Copy link
Author

commented Apr 29, 2019

The problem can be stripped down to:

DECLARE
    a_fully_qualified_name   VARCHAR2(32767) := 'SCHEMA.TEST_BETWNSTR';
    -- a_fully_qualified_name   VARCHAR2(32767) := 'SYS.DBMS_UTILITY';
    a_context                INTEGER := 1;
    a_owner                  VARCHAR2(32767);
    a_object                 VARCHAR2(32767);
    a_procedure_name         VARCHAR2(32767);
    l_dblink        varchar2(200);
    l_part1_type    number;
    l_object_number number;
BEGIN
    dbms_utility.name_resolve(name => a_fully_qualified_name, context => a_context, schema => a_owner, part1 => a_object, part2 => a_procedure_name, dblink => l_dblink, part1_type => l_part1_type, object_number => l_object_number);
END;
/

I will try to open a SR at Oracle tomorrow.

@jgebal

This comment has been minimized.

Copy link
Member

commented Apr 29, 2019

We will change our code not to rely on this feature. We cpuld probably get away with using dbms_assert

@jgebal

This comment has been minimized.

Copy link
Member

commented Apr 30, 2019

@tkleiber - do you happen to have any object that is named the same as schema name in your schema?

If so - this is the reason for the problem.
For example:

create or replace package schema.schema is
  procedure nothing_meaningful;
end;
/
@tkleiber

This comment has been minimized.

Copy link
Author

commented Apr 30, 2019

Yes - there was a table with same name as the schema.
Now the tests work fine!
Is this a known Oracle bug?

@jgebal

This comment has been minimized.

Copy link
Member

commented Apr 30, 2019

I think it is.

@PhilippSalvisberg

This comment has been minimized.

Copy link
Member

commented Apr 30, 2019

No, I do not think it is a bug. It's just the result of the Resolution of Names in Static SQL Statements.

jgebal added a commit that referenced this issue Jun 15, 2019

Removed dependency on `dbms_utility.name_resolve`.
Fixed issue with utPLSQL failing to run when schema contains package named the same as schema owning it.
It is now possible to have utPLSQL test package like this:
```
create or replace package some_schema.some_schema as
  --%suite

  --%test
  procedure sample_test;
end;
/

create or replace package body some_schema.some_schema as
   procedure sample_test is begin ut.expect(1).to_equal(1); end;
end;
/
```

The tests from the package can be invoked by calling:
`exec ut.run('some_schema.some_schema');`

If only schema is provided, all test packages in schema are executed.
`exec ut.run('some_schema');`

Resolves #569
Resolves #885

@jgebal jgebal closed this in #939 Jun 16, 2019

lwasylow added a commit that referenced this issue Jun 18, 2019

Release/v3.1.7 (#942)
* Test to verify there's a problem with cursor-comparison on 12.1

when there are several numbers with different precision and we make use of package-level nested table types

* Typo

* Initial checkin

* Adding handling of xml error

* Adding new API user.

* Updated `install.md`

* Updated project version after build [skip ci]

* Separating tests.

* Update properties

* Change user that executes tests as helper that is super user.

* Updated version to `3.1.7`

* Updated project version after build [skip ci]

* Adding next set of tests migrated.
expectations/binary/test_equal
expectations/binary/test_expect_to_be_less_than
expectations/test_expectation_anydata
expectations/test_expectation_processor

* Adding next set of tests migrated.
expectations/binary/test_be_less_or_equal

changing name of function to more meaningful.

* Fixing test package

* Added set of tests:
expectations/binary/test_be_greater_or_equal
expectations/binary/test_be_greater_than
expectations/unary/test_expect_not_to_be_null

Passing username implicit into ut_test_runner.

* Adding set of tests :
expectations/unary/test_expect_to_be_empty
expectations/unary/test_expect_to_be_null
expectations/unary/test_expect_to_be_true_false
expectations/unary/test_expect_to_have_count

Adding dummy type for testing.

* Adding schema prefix to failing tests from 12.1

* Fixing development scripts

* Fixed bug for deployments with uninstall included.
Added new user to `template.env.sh`

* Updated project version after build [skip ci]

* FIX : removal of non existing types from uninstall script

* INSTALL:Is it too many monkeys ?:)

* Added support for random order of test execution.
Resolves #422

* Adding set of tests:
api/test_ut_run

* Adding set of tests:
api/test_ut_run

* Fixing one bad test.
Workaround for current issue with `unordered()` comparison of blank lines.

* Fixing issue with null vs null being returned as false.
Fixing change in Oracle 12.2+ where XML is stored as binary XML and not preserving insignificant white space. This require store data as clob.

* Revert test

* Fixed bad test.
Added `dbms_output.enable` in `core` test package

* Adding set of tests:
api/test_ut_run

* Adding set of tests:
core/annotations/test_annotation_parser
core/annotations/test_annot_throws_exception
core/annotations/test_annotation_manager

* Adding set of tests:
core/test_ut_test
core/test_ut_utils

* Adding set of tests:
core/test_ut_executable
core/test_ut_suite

* Adding set of tests:
core/test_file_mapper
core/test_output_buffer
core/test_suite_manager
core/test_ut_executable

* Adding tests
core/test_suite_builder

* Adding tests:
reporters
reporters/test_junit_reporter
reporters/test_sonar_test_reporter
reporters/test_teamcity_reporter
reporters/test_tfs_junit_reporter

* Fixed storage for clob in output bugger table - make it inline.
Changed how delete from output buffer table is handled - use ROWID.
Increased fetch size from 100 to 3000 rows for output buffer.

* Improved performance for reading data from output buffer.
Decreased read limit back to 1000 as it should not have significant performance impact anymore.

* Increased read limit to 5000.
Fixed bug with increasing `max_message_id` even when nothing was read.

* Adding set of tests:
reporters/test_coverage
reporters/test_debug_reporter
reporters/test_documentation_reporter
reporters/test_extended_coverage
reporters/test_realtime_reporter

Fixing some helper methods.

* Split output buffers into two.
Now we have separate buffer for CLOB data and VARCHAR2 text data.

* Adding extra tests:
reporters/test_coverage/test_cov_cobertura_reporter
reporters/test_coverage/test_coverage_sonar_reporter
reporters/test_coverage/test_coveralls_reporter
reporters/test_coverage/test_html_extended_reporter

* Updated documentation for random order of test execution

* Adding tests:
reporters/test_coverage
reporters/test_coverage/test_html_proftab_reporter
reporters/test_proftab_coverage

* Updated project version after build [skip ci]

* Fixing broken test.
Adding test:
reporters/test_coverage/test_html_extended_reporter
reporters/test_extended_coverage

* Adding test:
unary/test_expect_to_be_not_null

* Adding global setup

* document how to avoid Oracle Bug 14402514 (see #891)

* Fixes #891 - use to_match instead of to_be_like to avoid Oracle bug 14402514 on some 11.2.0.4 instances

* Updated project version after build [skip ci]

* Update cleanup script after branching from random order branch

* Fixed invalid suitepath in `core` package.
Updated cli version to 3.1.6
Added top package `utplsql` with dbms_output.enable for both test users.
Renamed suitepath to match username (ut3_tester)

* Updated project version after build [skip ci]

* Cursor error handling

* Update tests for handling usr friendly error

* Applying fixes as per PR review.
Removal of unused procedure from expactation_processor
Switch to use constant in error message creation
Update tests to match full message.

* Cleanup whitespaces

* fixing ORA-00907 when comparing ref cursors with BINARY_DOUBLE/BINRAY_FLOAT columns

fixing ORA-00907: missing right parenthesis when comparing ref cursors with BINARY_DOUBLE/BINARY_FLOAT columns, because these column types do not support type length

* fix/ORA-00907: adding simple testcase

* fix/ORA-00907: shortening test case name

* fix/ORA-00907: wrong schema name in test case check

* Updated project version after build [skip ci]

* Call stack differs based on version

* Fix typo

* Update error lines

* Adding ROWID to list of types that do not provide a length.

* cleaning up tests

* Update tests

* testing wildcard, there is some unexpected white space that is not appearing on local tests or other similar for expected.

* Fix : No length datatypes mapping. This is to address issue when Oracle dont expect a length value against data type but cursor description return a max_len not being null.

* Update test

* Mysterious whitespace appears from time to time.
TODO

* Updated project version after build [skip ci]

* Fixing issue with a special column names non XML compliant (#903)

* Fixing issue with a special column names that do not adhere to XML rules.

* removing unused global constant.

* Modification after PR comments.
Inline call to function.
Remove constants to be private.
Expose only one function rest to be private

* Updated project version after build [skip ci]

* Adding trigger solution for annotation parsing.

* Fixed some issues with trigger
Some tests need to be fixed to disable trigger before testing
Some tests need to be added to prove trigger is working

* Fixed uninstall script and constant.
Disabled `-scc` flag in tests

* Removed commented code.

* Added tags for tests and tags for suite.

* Switch to use VARCHAR2 instead of UT_VARCHAR2_ROWS()

Signed-off-by: lwasylow <lwasylow@gmail.com>

* Switch to use VARCHAR2 instead of UT_VARCHAR2_ROWS()

Signed-off-by: lwasylow <lwasylow@gmail.com>

* Fix/oracle bug with xmlspaces (#895)

* Address issue with whitespace in XML.
Cursor describe is ignoring whitespace so max len of column with value ' t ' is showing as 1.
XMLTABLE when extracting values from tag with whitespaces its ignoring them. It works properly if there is any character there e.g ' t '.

* Update tests

* Updated project version after build [skip ci]

* Adding Tests to tags #suitebuilder

* Change annotation to --%tags

* Fixing empty tags to use xmlgen

* Adding tests for ut.run
Change query to use regexp as instr was giving false positives.

* Added tests for ut.run procedure

* Added extra tests for ut run function

* Fixing error message function

* Update docs

* Update docs and tests

* Fixes to PR comments

* Fixes to PR comments

* Updates to PR

* Separated the install for trigger.

* Phase 2 : switch to varchar_rows()

* Number precision from dbms_sql not correct (#908)

* Fixing issue with number from dual and precision being incorrectly read.

* Updated tests

* Updated project version after build [skip ci]

* add tests on 19c DB version

* Phase 2 : switch to varchar_rows()

* Remove a 4k tests

* Added constant

* Updated project version after build [skip ci]

* Added-back rigger installation to CI/CD process.

* Moved test to new package structure and improved test details.

* Fixed test to run only on 12 and above.

* Updated project version after build [skip ci]

* Removed garbage after PR merge.

* Updates to PR.
Switch to common add tags to suite item

* Move query to template to simplify view

* Updated project version after build [skip ci]

* Fix to issue when column was removed from the middle of cursor using a exclude or include.
this left a gap in orders and cause an columns mismatch on position for remainder of columns.

* Fix typo

* Make sure that order of the columns is kept when rewriting an order and nothing was removed.

* Partition should not be across column name but a full table set.

* Removal of row_number as its excessive we dont partition by any

* fix message_id increment

* the fix

* shorten test name

* fix type

* Updated project version after build [skip ci]

* Updated project version after build [skip ci]

* Fixed issue with missing newlines in cobertura coverage for non-executed packages.
Resolves #917

* Updated project version after build [skip ci]

* Initial checkin

* Failure details in sonar test reporter are now CDATA

* Update ut_junit_reporter.tpb

* Added handling of CDATA in failure messages for XML reporters.

* Fixing PR comments.

* Update docs with sample

* TAG: Phase2
Adding a new attribute filterpath that is used for filtering cursor in anydata / refcursor.
This value will be different from cursor in anydata as we skip root element.

* TAG: Phase2
Adding a new attribute filterpath that is used for filtering cursor in anydata / refcursor.
This value will be different from cursor in anydata as we skip root element.

* PHASE 2

* Fixing unit test for Oracle 11.2 & 12.1

* Fixing code duplication

* Updated project version after build [skip ci]

* Fixes #921 - Assert input params in dynamic SQL

Used dbms_assert.qualified_sql_name whenever possible.
This is much less invasive than dbms_assert.enquote_name.
Code converting case is left untouched.

* Updated project version after build [skip ci]

* Fixing sonar violation on duplicated code.

* Updated project version after build [skip ci]

* update tests to be less complicated

* Fixing encoding issue

* Updated project version after build [skip ci]

* Renamed `gc_tag` to `gc_tags`
Added debug logging of suite cache query.

* Updated project version after build [skip ci]

* Fixed install of release until feature is merged back.

* Enabled-back dbms_preprocessor

* Fixed bug in parsing annotations from DDL trigger.

* Fixed issues with parsing code through trigger.
Added disabling trigger on annotation parser tests.

* Fixed re-install of trigger.

* Updated readme for installation with trigger.
Added additional tests for annotation management with / without trigger.
Fixed code for situations when trigger gets added on pre-existing tests.

* Addressed review comments.
Refactored install scripts to avoid duplication.
Added check for `oracle_maintained` schema when firing DDL trigger.

* Fixed issue with style check.
Reorganized code to avoid problems with conditional compilation on 12.2 for triggers.

* Updated project version after build [skip ci]

* Fixing sonar exclusions for analysis and coverage.

* Updated project version after build [skip ci]

* Fixed output_buffer purging error.
Resolves #934

* Updated project version after build [skip ci]

* add test cases for warning texts in tests, suites

* implement new test cases and adapt existing ones

Structure of test cases is affected since new PL/SQL package is created which is also used in the whole run.

* emit warning texts on test and suite level

* complete cleanup after run

* Updated project version after build [skip ci]

* Removed dependency on `dbms_utility.name_resolve`.

Fixed issue with utPLSQL failing to run when schema contains package named the same as schema owning it.
It is now possible to have utPLSQL test package like this:
```
create or replace package some_schema.some_schema as
  --%suite

  --%test
  procedure sample_test;
end;
/

create or replace package body some_schema.some_schema as
   procedure sample_test is begin ut.expect(1).to_equal(1); end;
end;
/
```

The tests from the package can be invoked by calling:
`exec ut.run('some_schema.some_schema');`

If only schema is provided, all test packages in schema are executed.
`exec ut.run('some_schema');`

Resolves #569
Resolves #885

* Fixed issue with parsing by trigger when source contains leading comments.

* Fixed typo.

* Improved time needed for clob-to-table conversion.
Timing before change (with dbms_lob.read):
`clob_to_table - Took:+000000000 00:00:00.012957000`
After change:
`clob_to_table - Took:+000000000 00:00:00.001236000`
Speed improved by order of magnitude.

* Resolved issues with regex for DDL trigger processing.

* Adressed review comment.

* Fixed typo.

* Updated project version after build [skip ci]

* Updated project version after build [skip ci]

* Feature/json object (#928)

* Initial checkin.
General skelet of code

* Adding json tree parsing.
Enabling 12.2

* Update tests.
Update sonar rules.

* small fixes

* PHASE 2:
Moving diff into temp table and init data compare during compare implementation to avoid finding same differences twice
Adding have count and negated have count matcher.l

* Added more complex tests.
Added test when extract a piece from two different jsons.
Small fixes to code on same hierarchy parent arrays

* Update mddocs
Fix to json traverse array when object is element of array, the element name is content of object which can be different order but same semantic content.

* Fixing sonar

* Switch to use supertype

* PHASE3 : Adding a functionality for install in pre 12.2

* PHASE3 : Adding a functionality for install in pre 12.2

* PHASE3 : Adding a functionality for install in pre 12.2

* PHASE3 : Adding a functionality for install in pre 12.2

* PHASE3 : Adding a functionality for install in pre 12.2

* PHASE3 : Adding a functionality for install in pre 12.2

* update tests

* Update set define off

* Code cleanup

* fix slash

* Creating a dummy specs and removing conditional compilation for code cleanup

* PR fixes.

* Reverting development script changes.

* Refactored JSON code.
Changed formatting of JSON-diff output.
Changed date formats.

* Fixed install on Oracle < 12.2

* Updated project version after build [skip ci]

* Update readme.md

* Updated copyright year

* Updated project version after build [skip ci]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.