New
- Based on db* CODECOP v4.2.3
- see Release Notes
Fixed
-
PLSQLCOP-405: Logging to system console, use logging framework instead (CWE 398)
- This happend when opening a report in the default browser, but the default browser could not be detected.
-
PLSQLCOP-406: Printing stack trace to console, use logging framework instead (CWE 400, 200)
- This happend in various error cases, where only the error message was logged.
- Now the complete stack trace is also logged.
Compatibility with SQL Developer
- Minimum version: 4.1.0
- Latest version tested: 21.4.0
New
- Based on db* CODECOP v4.2.2
- see Release Notes
Compatibility with SQL Developer
- Minimum version: 4.1.0
- Latest version tested: 21.2.1
New
- Based on db* CODECOP v4.2.1
- see Release Notes
Fixed
- PLSQLCOP-399: No code templates visible in preferences after running Check
Compatibility with SQL Developer
- Minimum version: 4.1.0
- Latest version tested: 21.2.1
New
- Based on db* CODECOP v4.0.3
- see Release Notes
Changed
- PLSQLCOP-312: Rebrand "PL/SQL Cop for SQL Developer" to "db* CODECOP for SQL Developer"
New
-
Common
- PLSQLCOP-271: JDK 8 is required, JDK 11 is supported
- PLSQLCOP-275: Xtext and Xtend updated to v2.23.0 (important for custom validators)
- Custom validators for PL/SQL Cop v2 are not supported (need to be updated to v3)
-
Validator (com.trivadis.tvdcc.validators.TrivadisGuidelines3)
- PLSQLCOP-284: G-7410: do not throw warning for standalone functions with aggregate_clause
- PLSQLCOP-285: G-8310: do not throw warning for "OUT" only parameter
Fixed
-
SQL*Plus Grammar
- PLSQLCOP-274: Space slash NL not handled (for files with Unix line separators only)
-
PL/SQL Grammar
- PLSQLCOP-262: Parse error when using a * (star) for precision in number data type
- PLSQLCOP-276: Parser error when TABLE operator is not used for package function
- PLSQLCOP-277: Parse error when using expressions without space in for loop
- PLSQLCOP-280: Parse errors when update statements are terminated with slash instead of semicolon (Trivadis/plsql-cop-sonar#1)
- PLSQLCOP-287: Parse error when using apex_escape.json due to JSON keyword
-
Validator (com.trivadis.tvdcc.validators.TrivadisGuidelines3)
- PLSQLCOP-283: G-7110 false positives when initializing a collection with user prefix and new operator
- PLSQLCOP-286: Parse error with when using a variable/constant for error_code in pragma exception_init
- PLSQLCOP-288: False positive on G-8110 when using "ROWNUM = 1"
- PLSQLCOP-289: G-6020: False positive with using_clause and in parameter mode
- Fixed
- Serverity and characteristics are not honored in
Issues
tab. Default values are shown when using an own validator with a different guideline naming scheme (works inReports
tab).
- Serverity and characteristics are not honored in
- Fixed
-
Common
- incomplete results when analyzed source code contains
TREAT
(due to NPE, see #1) - When using a own validator with a different guideline naming scheme the configured severity and characteristics per guideline are not honored and the defaults are reported (
Blocker
for severity and all characteristics)
- incomplete results when analyzed source code contains
-
Guidelines
- G-7230 should not be thrown for constants in package specifications (see #79)
-
SQL*Plus grammar
- Wrong line reported after comment lines ending on slash (/) for files using Unix line separators
-
PL/SQL grammar
-
Parse error when
JSON_value_return_type
is not defined.
Documentation changed between version 12c and 18c. However, the following code works in Oracle Database 12c Release 1:SELECT * FROM JSON_TABLE ( (SELECT '{"col1":"foo"}' doc FROM dual), '$' COLUMNS (col1 PATH '$.col1') );
-
Parse error when a
row_limiting_clause
is used without anorder_by_clause
-
Parse error when using expressions for
offset
orrowcount
inrow_limiting_clause
-
-
- Released on 2019-09-28
- Changed
- Guidelines
- Link to Trivadis PL/SQL & SQL Guidelines v3.6 in HTML report.
- Renamed G-3130 from “Try to use ANSI-join syntax” to “Try to use ANSI SQL-92 join syntax”.
- Renamed G-3160 from “Avoid virtual columns to be visible” to “Avoid visible virtual columns”.
- Renamed G-8410 from “Always use application locks to ensure a program unit only running once at a given time” to “Always use application locks to ensure a program unit is only running once at a given time”.
- PL/SQL grammar
- Support keyword
MOD
and other keywords as query_name in the subquery_factoring_clause. - Support keyword
ONE
, e.g. as column alias. - Support keyword
WELLFORMED
, e.g. as parameter name. - Support keyword
WORK
, e.g. as parameter name.
- Support keyword
- Included preview/trial license is valid thru 2020-03-31
- Guidelines
- Fixed
- Guidelines
- G-3120: false positive when using
SYSDATE
,SYSTIMESTAMP
,NULL
,LEVEL
,ROWNUM
,CONNECT_BY_ISLEAF
in query with joins.
- G-3120: false positive when using
- PL/SQL grammar
- Parse error when using udf_pragma.
- Parse error when using record with dot notation in values_clause of
INSERT
statement. For exampleINSERT INTO t VALUES in_param.rec
. - Parse error when using
NOT
in expressions withA SET
,NAN
,INFINITE
,PRESENT
,EMPTY
,JSON
,OF TYPE
. Fore examplex IS NOT A SET
.
- Guidelines
- Won’t Fix
- Support of keyword
JSON
in table name or table alias due to conflicts with JSON_condition. - Empty conditional compilation branches (see also Parser Limitations)
- Support of keyword
- Released on 2019-04-04
- Fixed
- Guidelines
- G-3120 – false positive when using constants in projection.
- G-4140 – false positive when using
FORALL
statement. - G-7110 – false positive when using functions/procedures with a single parameter.
- PL/SQL grammar
- Parse error when using
PRAGMA INLINE
with a second string parameter.
- Parse error when using
- Guidelines
- Changed
- PL/SQL grammar
- Support keyword
EXCLUDE
, e.g. as procedure name. - Support keyword
INSTANTIABLE
, e.g. as column name. - Support quote literal character
/
(see also Parser Limitations)
- Support keyword
- SQL*Plus grammar
- Support
$
as alias forHOST
command.
- Support
- HTML report refers to the Trivadis PL/SQL & SQL Coding Guidelines Version 3.3 hosted on GitHub.
- PL/SQL grammar