PL/SQL Analyzer – Changelog

 

General Availability (GA) Releases of Trivadis PL/SQL Analyzer (tvdca)

Version 1.2.4

2018-09-10

  • Changed
    • Included preview/trial license is valid thru 2019-03-31

Version 1.2.3

2017-09-22

  • Fixed:
    • Using quote delimiter character ~ (tilde) leads to parse errors
    • Parse error when using COUNT in pivot_clause

Version 1.2.2

2017-08-15

  • Fixed:
    • Using concatenation operator || with whitespace between the vertical bars leads to parse errors
  • Changed
    • Updated PLSQL.xsd and HTML documentation to cover PL/SQL Parser version 2.1.7
    • Documented limitation regarding error_logging_clause, see FAQ for examples

Version 1.2.0

2017-05-14

  • New:
    • Oracle 12.2.0.1 grammar support
      • SQL*Plus
        • History command
      • SQL
        • Analytic views
        • Join groups
        • Oracle sharding
        • PDB lockdown profiles
        • ADMINISTER KEY MANAGEMENT Enhancements
        • FLASHBACK DATABASE Enhancement
        • SELECT Enhancement
        • New COLLATE Operator
        • New or Enhanced Expressions
        • Enhanced Condition
        • New or Enhanced Functions
      • PL/SQL
        • ACCESSIBLE BY clause Enhancements
        • Data-Bound Collation
        • PL/SQL Expressions Enhancements
        • Support for SQL JSON operators in PL/SQL (based on SQL changes)
        • PL/SQL Coverage Pragma
        • PL/SQL Deprecation Pragma
        • Sharing Metadata-Linked Application Common Objects
  • Changed:
    • Requires at least a Java 7 runtime environment
  • Fixed:
    • Parsing errors in XMLELEMENT and other functions when using certain non-standard function parameters

Version 1.1.1

2017-02-05

  • Improved:
    • JDK detection
  • Fixed:
    • single_table_insert with values_clause leads to parse errors in SQL scripts if terminated by slash instead of semicolon
    • greater equal (>=) and less equal (<=) are reported as less than (<)

Version 1.0.13

2016-12-16

  • Extended grammar to support additional keyword PERIOD, e.g. as variable name
  • Extended grammar to support keywords as  measure_column of a cell_assignment in the model_clause

Version 1.0.12

2016-09-05

  • Fixed grammar to support inline views as target of a MERGE statement (undocumented)
  • Fixed grammar to support ASC|DESC and NULLS FIRST|LAST in row_pattern_order_by clause (undocumented)
  • Updated PLSQL.xsd and HTML documentation

Version 1.0.11

2016-08-26

  • Fixed grammar to support default namespace at any position within XMLnamespaces_clause
  • Fixed grammar to support Temporal Validity in flashback_query_clause
  • Fixed grammar to support VARCHAR with BYTE and CHAR semantics (as VARCHAR2)
  • Extended grammar to support multiple flashback_query_clauses
  • Extended grammar to support “~” as quote delimiter character
  • Extended grammar to support additional keywords, e.g. as variable name
    • body
    • show
    • subtype
    • versions

Version 1.0.9

2016-05-05

  • Fixed parse errors when using database link in merge statement.

Version 1.0.8

2016-04-26

  • Fixed parse errors when conditional compilation blocks contain non PL/SQL code.
  • Changed default Java and startup parameters within tvdca.cmd.

Version 1.0.7

2015-11-23

  • Extending grammar to support the “IS OF type Condition” fully
    is_of_type_condition
  • Extending grammar to support additional keyword WITHIN e.g. as variable name
  • Updated PLSQL.xsd and its HTML documentation covering the grammar changes

Version 1.0.6

2015-06-01

  • Fixed “java.lang.NoClassDefFoundError: org/eclipse/core/runtime/OperationCanceledException” while refreshing table tvd_parsed_objects_t.
  • Support for numeric bind variable names, e.g. :1, :2, :3
  • Updated PLSQL.xsd and its HTML documentation covering the Oracle 12.1.0.2 grammar

Version 1.0.5

2015-04-06

  • Oracle 12.1.0.2 grammar support (SQL*Plus, SQL and PL/SQL), e.g.
    • JSON
      • IS JSON condition
      • JSON_EXISTS condition
      • JSON_TEXTCONTAINS condition
      • JSON_QUERY
      • JSON_TABLE
      • JSON_VALUE
    • ZONE MAPS
      • CREATE MATERIALIZED ZONEMAP
      • ALTER MATERIALIZED ZONEMAP
      • DROP MATERIALIZED ZONEMAP
  • Grammar fixes (supporting additional keywords such ass RULES, INTERFACE)

Version 1.0.4

2015-01-03

  • New command line parameter “service” as alternative to “sid” to establish a database connection using a Oracle Net service name
  • New command line parameter “filter” to process objects based on a custom SQL predicate
  • Exclude 12c schemas DVF and DVSYS from analysis

Version 1.0.3

2014-10-07

  • Renamed “Trivadis PL/SQL & SQL CodeAnalyzer” to “Trivadis PL/SQL Analyzer”
  • Extended internal length for quoted identifiers

Version 1.0.1

2014-05-22

  • Oracle 12c grammar support (SQL*Plus, SQL and PL/SQL), e.g.
    • CREATE VIEW enhancements
      • VISIBLE and INVISIBLE view columns
      • BEQUEATH clause
    • SELECT enhancements
      • row_pattern_clause
      • row_limiting_clause
      • cross_outer_apply_clause
      • LATERAL (lateral inline view)
      • plsql_declarations clause
  • Grammar fixes related to 11.2

Version 0.7.16

2014-04-27

  • Grammar fixes
  • fixed installation issue of TVD_COLDEP_PKG package body (based on changed grants)

Version 0.7.12

2014-03-01

  • Optimized query performance of the view TVD_OBJECT_COL_USAGE_V for large result sets
  • Added missing column usages in the view TVD_OBJECT_COL_USAGE_V, considers now:
    • columns used in WHERE clause of DELETE, UPDATE and MERGE statements
    • columns used in ON clause of MERGE statements
    • columns used in parenthesis expressions (e.g. function parameters or IN lists) of DELETE, UPDATE and MERGE statements
  • Removed wrong all-column wildcard (*) usages for DELETE and MERGE statements from the view TVD_OBJECT_COL_USAGE_V
  • Honors quoted identifiers in all views (e.g. shows quoted column named “Ename” as Ename instead of “ENAME”)
  • Fixed ORA-00001 error while reprocessing a renamed object

Version 0.7.9

2014-01-10

  • Fixed slash (/) handling in SQL*Plus file preprocessor

Version 0.7.7

2014-01-09

  • Grammar fixes

Version 0.7.6

2014-01-02

  • Fixed analysis views TVD_OBJECT_USAGE_V and TVD_SQL_USAGE_V; ensured that named queries of subquery factoring clauses are not considered as table_name

Version 0.7.5

2013-12-31

  • Grammar fixes
  • New analysis views
    • TVD_OBJECT_LOCAL_FUNC_USAGE_V: Locally called functions in static code (package bodies only)
    • TVD_SQL_LOCAL_FUNC_USAGE_V: Locally called functions in captured SQL statements (package bodies only)
    • TVD_SQL_COL_USAGE_V: Used columns in captured SQL statements
    • TVD_SQL_PROC_CALL_V: Potential procedures calls or function calls without parenthesis in captured SQL statements; result contains false positives such as column names
    • TVD_SQL_STRING_USAGE_V: Used strings in captured SQL statements
  • Fixed analysis view TVD_OBJECT_COL_USAGE_V to consider table/view synonyms and to include column names within parenthesis
  • Unified column set in TVD_SQL… views; available columns are: CAP_ID, SQL_ID, USER_NAME, SCHEMA_NAME, MODULE, ACTION and LAST_LOAD_TIME
  • SQL*Plus grammar is now supported in captured SQL statements; however the XML parse tree will contain only the representation of the following commands:
    • CREATE FUNCTION
    • CREATE PACKAGE
    • CREATE PACKAGE BODY
    • CREATE PROCEDURE
    • CREATE TRIGGER
    • CREATE TYPE
    • CREATE TYPE BODY
    • CREATE VIEW
    • CALL
    • DELETE
    • EXPLAIN PLAN
    • INSERT
    • LOCK TABLE
    • MERGE
    • SELECT
    • UPDATE
    • COMMIT
    • ROLLBACK
    • SAVEPOINT
    • SET TRANSACTION
    • SET CONSTRAINT
    • PL/SQL units (anonymous PL/SQL blocks)
  • “CREATE TYPE” commands are now processed and included in the view TVD_PARSED_OBJECTS_V for static code analysis
  • Automatic repository upgrade procedure based on tvdca version (0.7.5)table version (1), database code version (4), XML parse tree version (4); metadata is stored in the table TVD_METADATA_T
  • New command line option “threads” to process Oracle dictionary objects and captures SQL statements in parallel

Version 0.6.8

2013-09-23

  • Fixed wrong result in column TABLE_OWNER of the view TVD_SQL_USAGE_V
  • New analysis views
    • TVD_OBJECT_DOT_IDENT_V: Identifier used with a dot operator in static code, e.g. left_value = ‘DBMS_OUTPUT’  and right_value = ‘PUT_LINE’
    • TVD_OBJECT_PAREN_IDENT_V: Identifier used before parenthesis in static code, e.g. function names, object type constructor calls or associative arrays
    • TVD_OBJECT_PROC_CALL_V: Potential procedures calls or function calls without parenthesis in static code; result contains false positives such as column names
    • TVD_OBJECT_STRING_USAGE_V: Used strings in static code
    • TVD_SQL_DOT_IDENT_V: Identifier used with a dot operator in captured SQL statements, e.g. left_value = ‘DBMS_OUTPUT’  and right_value = ‘PUT_LINE’
    • TVD_SQL_PAREN_IDENT_V: Identifier used before parenthesis in captured SQL statements, e.g. function names, object type constructor calls or associative arrays

Version 0.6.6

2013-09-03

  • Grammar fixes
  • fixed cleanup issues (wrong results depending on Oracle database version)
  • fixed parsing errors on captured SQL with/without trailing semicolon

Version 0.5.1

2013-07-28

  • Initial GA Release
  • Analysis views
    • TVD_OBJECT_HINT_USAGE_V: Used hints in static code
    • TVD_OBJECT_USAGE_V: Used tables/views in static code
    • TVD_OBJECT_COL_USAGE_V: Used columns in static code
    • TVD_SQL_HINT_USAGE_V: Used hints in captures SQL statements
    • TVD_SQL_USAGE_V: Used tables/views in captured SQL statements
  • Analysis table functions
    • TVD_COLDEP_PKG.GET_DEP: View column dependencies