Release Notes - 3.7

3.7.6-funcrel

Resolved Issues

Customer Ticket Id Details
49250 Mainframe related analyses: Fixes an issue causing the analysis to hang during the "run extension after analysis step, within the stage "Start calculating client server quality rules".
49242 IBM for i related: Fixes a false Cyclomatic Complexity value for Views based on "lf" files.
49253 IBM for i related: Fixes a missing table issue when the table is prefixed by a schema starting with "&", e.g. : "CREATE TABLE &VAR/OTTO (COL1 INT, …);".
48868 Fixes an issue causing missing links between CRUD Entity and Table.

Other Updates

Details
XXXL Mainframe application: Fixes a performance issue during the application level step for SQL Analyzer. Removed unuseful logged messages.
Mainframe XXXL application: Fixes a performance issue during the application level step, impacting the calculation of client server quality rules.
Fixes an issue causing the generation of an incorrect Missing Procedure object.
Fixes an issue causing a runtime error at application level for a CTLProgram object.
Minor update to add code "bookmarks" for monitor links.

3.7.5-funcrel

Resolved Issues

Customer Ticket Id Details
48461 Fixed false links from SpringData Query to Tables.

Other Updates

Details
Fixed issue with PostgresSQL tables identified as DB2 / Oracle tables.
Fixed Oracle built-in functions wm_concat, LISTAGG and NUMTODSINTERVAL reported as Missing Procedure.
Fixed performance issue during application level at the step "removing UA select all properties for SQL Analyzer Objects and objects from languages having SQL Named Queries objects".
Fixed duplicated tables when create statements are similar.
Fixed error during application level at the step "adding missing links between SQL embedded queries and SQL Tables / Views / Procedures / Functions".
Fixed an issue causing the property "Raw SQL Complexity" to not be generated for Java Methods.
Fixed a performance issue in the post-application step pushing links from synonyms to aliased objects for Mainframe applications.

3.7.4-funcrel

Resolved Issues

Customer Ticket Id Details
48078 PostgreSQL: fixed missing SQL objects due to a misinterpreted regular expression.

Other Updates

Details
Fixed Missing Table not created when the table belongs to system schema.
Fixed SQL-002 warning raised by a "CREATE INDEX" statement with a column named "KEY" in the list of indexed columns. E.g. : "CREATE INDEX index_name ON table_name (column_name, KEY)".
Cobol SQL Query: fixed a missing link to a table column object.
Fixed LF and PF files analyzed in RPG and SQL Analyzer.
PostgreSQL: fixed built-in functions which are created as missing procedure / table objects.
Fixed an issue causing SQL files to be ignored (visible in com.castsoftware.sqlanalyzer 3.6.19).

Rules

Rule Id New Rule Details
1101114 TRUE Added a new rule named Avoid "SELECT *" queries (SQL) which replaces the rule 7344: Avoid "SELECT *" queries for the SQL objects and also for the SQL Query objects. This quality rule reports the SQL artifacts containing queries using the "SELECT *" statement. It applies to DDL as well as DML, including embedded SQL in client code when materialized by a SQL Query object. Not all "SELECT *" queries are reported in violation, some of them are ignored. E.g.: SELECT * FROM a single table in VIEWs / MATERIALIZED VIEWs, CREATE TABLE AS SELECT * FROM a single table, SELECT * INTO table_name FROM a single table, EXISTS(SELECT *, NOT EXISTS(SELECT *, SELECT * EXCEPT(…).
1101022 FALSE Fixed an issue causing false positive violations when the primary key is added in the same alter table statements with a default constraint, in the second position. E.g.: "ALTER TABLE table_name ADD CONSTRAINT default_name DEFAULT (default_value) FOR column_name, CONSTRAINT pk_name PRIMARY KEY (list_of_the_columns)."
1101090 FALSE Fixed an issue causing false positive violations when the clustered index is added in the same alter table statements with a default constraint, in the second position. E.g.: "ALTER TABLE table_name ADD CONSTRAINT default_name DEFAULT (default_value) FOR column_name, CONSTRAINT pk_name PRIMARY KEY (list_of_the_columns) CLUSTERED".

New Support

Summary Details
SQLSCRIPT-1325 Added Raw SQL Complexity Metric for SQL Query objects.
SQLSCRIPT-1338 Added a specific property named "System object" for any SQL system objects detected.
SQLSCRIPT-1339 When PostgreSQL objects are created without specifying any schema name, by default such objects are automatically put into a schema named "public". From now on, "public" will be considered by com.castsoftware.sqlanalyzer as the DEFAULT schema for PostgreSQL objects.

3.7.3-funcrel

Resolved Issues

Customer Ticket Id Details
47746 Added support for CREATE EXTERNAL TABLE statement.
47857 Fixed incorrect link to a table which has same name but different parent schema to the one referenced in the Dapper SQL Query object.

Other Updates

Details
Fixed ValueError: invalid literal for int() with base 10: '100000 00270000' during table's size loading.
Fixed missing useSelect link between FETCH Cobol Query and Table.
Fixed missing links between JPA Query and JPA Entity Operation and SQL Tables.
Fixed WARNING during run extensions after analysis when adding missing links between SQL embedded queries and SQL objects.

3.7.2-funcrel

Other Updates

Details
Fixed a WARNING occurring during the run extension step after an analysis, for Mainframe applications.
Fixed missing links between JPQL Query and SQL Table objects.

3.7.1-funcrel

Resolved Issues

Customer Ticket Id Details
47343 Oracle: Some SQL files, with data export / loading statements, were previously and incorrectly considered as DML. This has now been fixed.
46682 Fixed incorrect links created from procedure to a table named SET (MERGE INTO… UPDATE SET syntax).
46591 Fixed missing links between SQL Query objects and Table objects due to a crash at the application level.

Other Updates

Details
Fixed multiple "AttributeError" issues found in in com.castsoftware.sqlanalyzer 3.6.11-funcrel.
Fixed and removed duplicated objects.
Oracle : Fixed SQL-004 warning.
Rules for Cobol SQL Embedded Query objects: removed Cobol file parsing at application level. To benefit from this fix, you should use at least the version 1.1.0-funcrel of com.castsoftware.mainframe.
Oracle: improved the process of merging duplicate objects.
Fixed RuntimeError ("Cannot use Object.get_property() if property has not been loaded").
Fixed an issue causing a SQL Missing table object to not be created and a duplicate GUID message to be logged in the application level file.
Fixed invalid Missing Procedure object when a Package Procedure with the same name also exists.

Rules

Rule Id New Rule Details
1101026 FALSE T-SQL: fixed false positives for the rule "Always define column names when inserting values" when WITH tables hints are used.
1101004 FALSE Fixed a random missing violation for the rule "Avoid non-indexed SQL queries".
1101000 FALSE T-SQL: fixed false positives for the rule "Never use SQL queries with a cartesian product (SQL)" when a SELECT is used in dynamic SQL.
1101008 FALSE T-SQL: fixed false positives for the rule "Avoid non-SARGable queries" when a SELECT is used in dynamic SQL.

3.7.0-funcrel

Resolved Issues

Customer Ticket Id Details
45553 Fixes an issue causing SQL-004 warnings for 5 files during link creation phase for an Oracle analysis.
45635 Fixes an issue where the analysis became stuck after the "DssRun" step finished successfully.
45659 Fixed tables columns reported as missing procedures.
46125 Fixed missing links between Cobol SQL Query and Tables.

Other Updates

Details
Fixes an issue where some objects (Synonyms, Missing Tables) were incorrectly set as "end points" isntead of "data entities" for transaction purposes.
Removed SQL Analyzer log messages from analysis units that are not SQL related.
Cobol SQL Query object: fixed missing links when FETCH is used with NEXT ROWSET.
Fixed missing links between JPQL Query and SQL Tables.
Oracle PL/SQL scripts: a change has been implemented to ensure that a BEGIN in a PROMPT statement is no longer considered the beginning of a block statement.
JDBC SQL Query objects: fixed incorrectly created Missing table object for CREATE TABLE statements.
Spring JDBC Query obejcts: fixed missing links for tables that have the same name.
CTLCode objects: fixed missing links between CTLCode and SQL Table objects when the name of the table is PRINT.
Fixed duplicated tables.
DotNet Enterprise Library SQL Query object: fixed an issue causing a missing Procedure.
Fixed duplicated synonyms.
Improved application level performance.

Rules

Rule Id New Rule Details
1101026 FALSE Fixed false positive violation which was occurring when the table's schema name is a parameter.

New Support

Summary Details
Support for missing tables for Entity Operations Added the support for missing tables for Entity ORM CRUD operations. You should install com.castsoftware.sqlanalyzer >= 3.7.0-funcrel if you have Entity Operations in your applications and you are already using com.castsoftware.entity >= 2.2.12-funcrel.
Support fo IMS linking Added support for the linking between IMS SQL Query objects and IMS DB Segment objects. Available with com.castsoftware.mainframe >= 1.4.0-alpha1 and com.castsoftware.wbslinker >= 1.7.33.

3.7.0-beta5

Resolved Issues

Customer Ticket Id Details
40693 Fixed false positive on the rule 1101106 "Avoid tables without primary key / unique key constraint / unique index".
41969 Fixes an issue causing missing "belongs to" links.
44556 Improved links for SQL DML files: DML files are now considered as data exports only when INSERTs have static data.

Other Updates

Details
Improved detection of DATA exports vs DML files.
Fixed SQL-002 parsing issue raised on ALTER TABLE … RENAME statement.
Fixed missing insert link from Spring JDBC Query to SQL Table.
Fixed application level error.

Rules

Rule Id New Rule Details
1101106 FALSE Fixed false positives for the rule "Avoid tables without primary key / unique key constraint / unique index".

New Support

Summary Details
ORACLE : Object Types : added call link for indirect calls Added callLink from a Method's Type via another Method's Type when an object's method is called indirectly, via a variable.
ORACLE : Object Types : added relyon link for parameters/variables datatypes Added relyonLink from Type's Method to another Type/Table when parameters/variables datatypes are Type/Table Columns.
ORACLE : Object Types : changed link type from sub Type to super Type The link inheritLink has been changed to inheritExtendLink.
ORACLE : Object Types : added new link between methods Added inheritOverrideLink from a Method's Type which overrides a super Type's Method.
Support for missing tables Added support for missing tables for .NET/JEE ORM CRUD operations.
Link ORM CRUD Operations with SQL Tables/Views Moved the linking of ORM CRUD Operations with SQL Tables/Views from Universal Linker (com.castsoftware.wbslinker) to SQL Analyzer.

3.7.0-beta4

Resolved Issues

Customer Ticket Id Details
44816 Fixed incorrect missing table object "LOCKS" created for SQL statement "USE AND KEEP UPDATE LOCKS".
44915 Fixed an issue causing the error "ERROR: negative substring length not allowed."
42424 Fixed false link between SQL Server Procedures and Db2 Tables.

Other Updates

Details
Changed SQL Analysis objects GUID’s. The analysis unit name logged in the analysis log will no longer contain the numeric suffix. Eg.: a previous GUID "SQLScriptFunction?Main_sourcesDatabase_36645.CASTPUBS.STORENAME_PROC" will change to "SQLScriptFunction?Main_sourcesDatabase.CASTPUBS.STORENAME_PROC". During the update to the new version, all SQL Analyzer GUID’s will be migrated.
When two missing objects with same name are created one in DEFAULT the second in a named missing schema - because the object is prefixed - the one in the DEFAULT schema should be merged in the second one, from the named schema. E.g.: for the following SQL Embedded Queries: "select * from TOTO.TATA and "select * from TATA" a single Missing Table will be created : "TOTO.TATA.TATA".
Fixed Invalid name assigned to artifact when %SCHEMA% prefix is used in SQL script. E.g. : "CREATE PROCEDURE %SCHEMA%.TOTO" … previous to the fix the SQL Procedure was named "%" and now the name is "TOTO".

Rules

Rule Id New Rule Details
1101008 FALSE Fixed false positives / negatives for "Avoid non-SARGable queries".
1101102 FALSE Fixed false negatives for "Avoid using LIKE conditions without wildcards".
1101024 FALSE Fixed false negatives for "Avoid using dynamic SQL in SQL Artifacts".
1101090 FALSE Fixed false positives for "Avoid Tables without a clustered Index (SQL)".

3.7.0-beta3

Resolved Issues

Customer Ticket Id Details
43979 Fixed Trigger and Index fullnames when only the table name is prefixed.

Other Updates

Details
Fixed random metric inconsistency for metric "Max Control Statements Nested" for duplicated objects, created in different SQL files.
Fixed false link between a procedure and a table, when table is not in the procedure scope.

New Support

Summary Details
Add support for the Teradata statement DATABASE <DATABASE_NAME>; The default session database is correctly detected.

3.7.0-beta2

Other Updates

Details
Fixes an issue causing the creation of a "SQL Missing Table" object when a standard SQL table obejct with the same name already exists.

Rules

Rule Id New Rule Details
1101006 FALSE Fixed a false positive violation on the rule 1101006 "Avoid non-indexed XXL SQL queries".
1101008 FALSE Fixed a false positive violation on the rule 1101008 "Avoid non-SARGable queries".
1101076 FALSE Fixed a missing violation for the rule 1101076 "Avoid unqualified column references".

New Support

Summary Details
New advisor: Migrate DB2 to MySQL Added support for "Migrate DB2 to MySQL" advisor rules in com.castsoftware.sql.movetocloud extension.

3.7.0-beta1

Resolved Issues

Customer Ticket Id Details
43519 Fixed missing Oracle procedure and package objects when the SQL file is considered as DML instead of DDL.

Other Updates

Details
Fixed SQL-002 analysis warning for ALTER TABLE statements.

Rules

Rule Id New Rule Details
1101006 FALSE Removed false positives when the table is filtered via a CASE statement. And also in the situation when multiple tables with the same name are matching for the selected table.

New Support

Summary Details
Added the support for new SQL file extensions. More file extensions are supported. You can find all details in the official documentation https://doc.castsoftware.com/display/TECHNOS/SQL+Analyzer+-+3.7#SQLAnalyzer3.7-Supportedfileextensions.