Mapping between SQL analyzers
Introduction
The comparison has been done between PL/SQL Analyzer 8.3.8 and SQL Analyzer 3.5.0-alpha1 (AIP 8.3.8 + datacolumnaccess 1.0.0-beta2).
Objects
Here is the list of the equivalence between PL/SQL Analyzer and SQL Analyzer objects:
- Most of the objects have equivalents on both analyzers
- Some objects exists only on SQL Analyzer, with no equivalent object on PL/SQL Analyzer.
- Some objects which exists only on PL/SQL Analyzer, with no equivalent object on SQL Analyzer.
Object family | Original PL/SQL Analyzer | Counterpart SQL Analyzer | Impact | Remarks |
---|---|---|---|---|
Files | (139266) source file (subject to parsing) | (1000007) File which contains source code | ||
Structure | (1000003) Universal Directory | No impact, just structure | ||
(138000) Oracle Project | (1101005) SQL Analyzer Project | |||
(1000001) Universal Project | No impact, just technical types | |||
(141813) The result project of a plugin | ||||
(139278) Oracle Database Subset | (1101002) SQL Analyzer Subset | No impact, just structure | ||
(138012) Oracle instance | No impact, just structure |
|||
(138014) Oracle schema | (1101011) Schema | |||
(140519) SQL unknown schema | No impact, just structure |
|||
Script | (1101010) SQL Script | New feature | ||
Package | (138510) Oracle package header |
(1101015) Package | No impact, merged types |
|
(138511) Oracle package body | ||||
(140285) Oracle package cursor | No impact on function points. TQI is impacted only if (1564) Cursor naming convention - prefix control has been activated. Normally the PL/SQL rule (1564) Cursor naming convention - prefix control is inactive by default and it make sense only when application contains Forms. |
|||
Table/View
|
(138017) Oracle table |
(1101006) Table (1101093) Unresolved Table |
No impact, merged types | |
(140697) Oracle object table | ||||
(138183) Oracle view |
(1101013) View | No impact, merged types | ||
(138791) Oracle materialized view | ||||
Column Like |
(138832) Oracle table column |
(1101007) Table Column | No impact, merged types | |
(139223) Oracle view column | ||||
Constraint Like | (138315) Oracle check table constraint | No impact on function points or TQI | ||
(36117) Oracle default table constraint | No impact on function points or TQI | |||
(138393) Oracle foreign key table constraint | (1101016) Foreign Key | |||
Index Like | (138159) Oracle index | (1101008) Index |
No impact, merged types |
|
(138774) Oracle bitmap index | ||||
(138743) Oracle function based index | ||||
(138389) Oracle primary key table constraint | (1101020) Unique Constraint | |||
Procedure Like | (138245) Oracle function | (1101012) Function (1101094) Unresolved Function |
No impact, merged types | |
(140119) Oracle private stored function | ||||
(138244) Oracle procedure | (1101009) Procedure | No impact, merged types | ||
(140118) Oracle private stored procedure | ||||
(138795) Oracle database event trigger | (1101014) Trigger | No impact, merged types | ||
(138219) Oracle ddl trigger | ||||
(138220) Oracle dml trigger | ||||
(1101058) Method | New feature | |||
Type Like | (138433) Oracle cursor datatype | No impact on function points or TQI | ||
(138591) Oracle collection nested table type |
(1101049) Type | No impact, merged types | ||
(138590) Oracle collection varray type | ||||
(138592) Oracle object type | ||||
(138628) Oracle object type body | ||||
(138589) Oracle incomplete type | ||||
Synonym/Alias Like | (140584) Oracle private synonym | (1101040) Synonym | No impact, merged types |
|
(140583) Oracle public synonym | ||||
Database link Like | (138732) Oracle database link | (1101091) Database Link | ||
Sequence Like | (138207) Oracle sequence | No impact on function points or TQI |
Links
Here is the list of the equivalence between PL/SQL Analyzer and SQL Analyzer links:
-
Most of the links have equivalents on both analyzers
-
Some links exists only on SQL Analyzer, with no equivalent links on PL/SQL Analyzer.
-
Some links which exists only on PL/SQL Analyzer, with no equivalent links on SQL Analyzer.
Please find the detailed list,
Caller | Callee | Link type | Original PL/SQL Analyzer | Counterpart SQL Analyzer | Remarks |
---|---|---|---|---|---|
Table/View | Table/View/Unresolved Table |
useSelect | The case of Table / View / Unresolved Table selected in a View | ||
referLink | |||||
referDelete, referUpdate | New feature | ||||
Procedure Like | callLink | ||||
Column Like | accessRead, accessWrite | We should install com.castsoftware.datacolumnaccess to have them. | |||
Trigger | Fire: Before Insert/Update/Delete, After Insert/Update/Delete, For each row Insert/Update/Delete and For all row Insert/Update/Delete | Incorrect modelisation for function points | |||
Column Like | Column Like | referLink | The case of Columns referenced in a Foreigner Key | ||
Procedure Like |
Procedure Like
|
callLink |
|
||
Trigger | callLink | New feature : when table is INSERTED/ UPDATED / DELETED in a Procedure / Function we add a call link between the Procedure / Functions and the Trigger. | |||
Table/View | useSelect, useInsert, useUpdate, useDelete | Between Triggers and Tables |
|||
monitorInsert, monitorUpdate, monitorDelete | New feature : adding monitor link between the Trigger and the triggered Table/View | ||||
Column Like | accessRead, accessWrite | We should install com.castsoftware.datacolumnaccess to have them. | |||
Constraint Like | Table/View | relyonLink | |||
Column Like | relyonLink | ||||
Index Like | Table/View | relyonLink | |||
Column Like | relyonLink | ||||
Type Like | Type Like | inheritLink | New feature, new link from Type to super Type | ||
Package |
Column Like | accessRead, accessWrite | When Columns are accessed directly from packages. | ||
Procedure Like | callLink | When Procedure Like are called directly from packages, TQI is impacted via Unreferenced rules. |
|||
Table/View | useSelect, useInsert, useUpdate, useDelete | When Table / View are accessed directly from packages, TQI is impacted via Unreferenced rules. |
|||
Synonym / Alias Like |
Table/View | relyonLink | |||
Procedure Like | relyonLink | ||||
Package | relyonLink | New feature | |||
Script | Table/View | useSelect, useInsert, useUpdate, useDelete | New feature | ||
Procedure Like | callLink | New feature | |||
Client Code | Table/View |
useSelect, useInsert, useUpdate, useDelete | We add use links when dependency is added between the client code and SQL code. | ||
Procedure Like | callLink | We add use links when dependency is added between the client code and SQL code. | |||
Trigger | callLink | New feature : when table is INSERTED/ UPDATED / DELETED in a Client Code we add a call link between the Client Code and the Trigger. | |||
Column Like | accessRead, accessWrite | New feature. We add access links when dependency is added between the client code and SQL code and com.castsoftware.datacolumnaccess is installed. | |||
Oracle Forms and Reports Analyzer objects | PL/SQL Analyzer objects | Not supported |
Rules
Here is the list of the equivalence between PL/SQL Analyzer and SQL Analyzer rules:
- Some quality rules exists only on SQL Analyzer, with no equivalent quality rule on PL/SQL Analyzer.
- Some quality rules which exists only on PL/SQL Analyzer, with no equivalent quality rule on SQL Analyzer.
- Most of the rules have equivalents on both analyzers
Please find the detailed list,
Original PL/SQL Analyzer | Counterpart SQL Analyzer | Impact | Remarks |
---|---|---|---|
(7902) Avoid SQL queries that no index can
support (7418) Avoid SQL queries using functions on indexed columns in the WHERE clause (7428) Avoid SQL queries not using the first column of a composite index in the WHERE clause |
(1101004) Avoid non-indexed SQL queries | ||
(7904) Avoid SQL queries on XXL tables that no index can support (7658) Avoid SQL queries on XXL Tables using Functions on indexed Columns in the WHERE clause (7642) Avoid SQL queries on XXL tables not using the first column of a composite index in the WHERE clause |
(1101006) Avoid non-indexed XXL SQL queries | ||
(7950) Avoid definition of synonym as PUBLIC in PL/SQL context | (1101078) Always prefer PRIVATE to PUBLIC synonym | ||
(7958) Avoid orphaned synonyms in PL/SQL context | (1101080) Avoid orphaned synonyms | ||
(7946) Avoid queries using old style join convention instead of ANSI-Standard joins | (1101014) Avoid queries using old style join convention instead of ANSI-Standard joins | ||
(1576) Use varchar2 instead of char and varchar | (1101086) Always use VARCHAR2 and NVARCHAR2 instead of CHAR, VARCHAR or NCHAR | ||
(7806) Avoid Artifacts with Group By | (1101018) Avoid using the GROUP BY clause | ||
(7790) Avoid Cursors inside a loop | (1101084) Avoid Cursors inside a loop (SQL) | ||
(1558) Package naming convention - prefix control | (1101046) Package naming convention - prefix control (SQL) | ||
(1560) Package Function naming convention - prefix control | (1101048) Package Function naming convention - prefix control (SQL) | ||
(1562) Package Stored Procedure naming convention - prefix control | (1101050) Package Stored Procedure naming convention - prefix control (SQL) | ||
(1574) Use at most one statement per line | (1101062) Avoid using multiple statements per line (SQL) | ||
(1578) Avoid using LONG & LONG RAW datatype for Table Columns | (1101088) Avoid using LONG and LONG RAW datatypes | ||
(1580) Avoid using execute immediate | (1101024) Avoid using dynamic SQL in SQL Artifacts | ||
(1582) Avoid large Tables - too many columns | (1101056) Avoid large Tables - too many columns (SQL) | ||
(1588) Use WHEN OTHERS in exception management | (1101052) Avoid using WHEN OTHERS without exception management (SQL) | ||
(1608) Avoid cascading Triggers | (1101064) Avoid cascading Triggers (SQL) | ||
(7660) Never use SQL queries with a cartesian product on XXL Tables | (1101002) Never use SQL queries with a cartesian product on XXL Tables (SQL) | ||
(7820) Never use SQL queries with a cartesian product | (1101000) Never use SQL queries with a cartesian product | ||
(7770) Avoid Artifacts with too many parameters | (1101016) Avoid Artifacts with too many parameters (SQL) | ||
(7822) Avoid Artifacts with queries on more than 4 Tables | (1101030) Avoid Artifacts with queries on too many Tables and/or Views | ||
(7948) Do not mix Ansi joins syntax with Oracle proprietary joins syntax in the same query | (1101058) Avoid mixing ANSI and non-ANSI JOIN syntax in the same query | ||
(7952) Avoid synonym with both private & PUBLIC Definition in PL/SQL context | (1101068) Avoid synonym with both private and public definition | ||
(7960) Avoid looping chain of synonyms in PL/SQL context | (1101082) Avoid looping chain of synonyms | ||
(8036) Avoid improperly written triangular joins with XXL tables in PL/SQL code | (1101066) Avoid improperly written triangular joins with XXL tables | ||
(8080) Avoid exists independent clauses | (1101032) Avoid exists and not exists independent clauses (SQL) | ||
(8082) Avoid Tables without Primary Key | (1101022) Avoid Tables without Primary Key (SQL) | TQI : the rule changed from CRITICAL to generic | |
(1596) Avoid using "nullable" Columns except in the last position in a Table | TQI Replaced by (1101008) Avoid non-SARGable queries. |
||
(1564) Cursor naming convention - prefix control | TQI | ||
(1598) Avoid Rule HINT /*+ rule */ or --+ rule in PL/SQL code | TQI RBO is no more supported since Oracle 10g. |
||
(7420) Avoid SQL queries with implicit conversions in the WHERE clause | TQI | ||
(7662) Avoid SQL queries on XXL Tables with implicit conversions in the WHERE clause | TQI | ||
(7810) Avoid Artifacts with a Complex SELECT Clause | (1101098) Avoid Artifacts with a Complex SELECT Clause (SQL) |
|
|
(1101026) Always define column names when inserting values | New feature | ||
(1101034) Avoid using DISTINCT in SQL SELECT statements | New feature | ||
(1101038) Avoid OR conditions testing equality on the same identifier in SQL WHERE clauses | New feature | ||
(1101040) Avoid empty catch blocks | New feature | ||
(1101008) Avoid non-SARGable queries | New feature | ||
(1101060) Avoid using LIKE conditions starting with a wildcard character | New feature | ||
(1101070) Avoid explicit comparison with NULL | New feature | ||
(1101072) Avoid not aliased Tables | New feature | ||
(1101076) Avoid unqualified column references | New feature | ||
(1101074) Avoid Tables aliases ending with a numeric suffix | New feature | ||
(1101054) Never use WHEN OTHER THEN NULL | New feature | ||
(1101044) View naming convention - character set control (SQL) | New feature | ||
(1101042) Table naming convention - character set control (SQL) | New feature | ||
(1101036) Use ANSI standard operators in SQL WHERE clauses | New feature for the client code | ||
(1101028) Use MINUS or EXCEPT operator instead of NOT EXISTS and NOT IN subqueries | New feature | ||
(1101020) Avoid using quoted identifiers | New feature | ||
(1101012) Avoid specifying column numbers instead of column names in ORDER BY clauses | New feature | ||
(1101010) Avoid NATURAL JOIN queries | New feature | ||
(1101092) Avoid Procedures using an Insert, Update, Delete, Create Table or Select without including error management (SQL) | New feature | ||
(1101096) Avoid SQL injection in dynamic SQL for Oracle | New feature | ||
(1101102) Avoid using LIKE conditions without wildcards | New feature | ||
(1101104) Avoid XXL tables without primary key / unique key constraint / unique index | New feature | ||
(1101106) Avoid tables without primary key / unique key constraint / unique index | New feature | ||
(1101108) Avoid Cobol SQL Cursors without FOR READ ONLY or FOR FETCH ONLY or FOR UPDATE clauses | New feature, only for SQL in Cobol | ||
(1101112) Avoid LOCK TABLE statements in SQL code for COBOL Programs | New feature, only for SQL in Cobol |
DB2 UDB Analyzer and DB2 z/OS Analyzer - SQL Analyzer
The comparison has been done between DB2 UDB Analyzer 8.2.1 / DB2 zOS Analyzer 8.2.1 and SQL Analyzer 3.1.0-funcrel (AIP 8.3.8 + datacolumnaccess 1.0.0-beta2).
Objects
Here is the list of the equivalence between DB2 UDB Analyzer, DB2 z/OS Analyzer and SQL Analyzer objects:
-
Most of the objects have equivalents on both analyzers
-
Some objects exists only on SQL Analyzer, with no equivalent object on DB2 UDB Analyzer, DB2 z/OS Analyzer.
-
Some objects which exists only on DB2 UDB Analyzer, DB2 z/OS Analyzer, with no equivalent object on SQL Analyzer.
Object family | Original DB2 UDB Analyzer, DB2 z/OS Analyzer | Counterpart SQL Analyzer | Impact | Remarks |
---|---|---|---|---|
Files | (1000007) File which contains source code | New feature | ||
Structure | (1000003) Universal Directory | No impact, just structure | ||
(299) DB2 System |
(1101005) SQL Analyzer Project | No impact, just structure, merged types | ||
(300) DB2 Instance | ||||
(1000001) Universal Project |
No impact, just technical types | |||
(141813) The result project of a plugin | ||||
(107001) DB2 Subset | (1101002) SQL Analyzer Subset | No impact, just structure | ||
(313) DB2 Database | (1101061) Database | |||
(301) Schema | (1101011) Schema | |||
Script | (1101010) SQL Script | New feature | ||
Table/View | (1) SQL Table | (1101006) Table | ||
(9) SQL View | (1101013) View | |||
Column Like | (1101007) Table Column | New feature | ||
Constraint Like | (1101016) Foreign Key | New feature | ||
Index Like | (6) SQL Index | (1101008) Index | ||
(1101020) Unique Constraint | New feature | |||
Procedure Like | (3) SQL Procedure | (1101009) Procedure | ||
(10) SQL Function | (1101012) Function | |||
(4) SQL Trigger | (1101014) Trigger | |||
UDT Like | (358) DB2 Distinct UDT | Impact on TQI, when UDT is linked to a DB2 object covered by an Unreferenced rule | ||
(302) DB2 Structured UDT | Impact on TQI, when UDT is linked to a DB2 object covered by an Unreferenced rule | |||
Type Like | (16) TYPE | No impact on function points or TQI | ||
Synonym/Alias Like | (303) DB2 Alias | (1101040) Synonym | No impact, merged types | |
(304) DB2 Nickname |
Links
Here is the list of the equivalence between DB2 UDB Analyzer, DB2 z/OS Analyzer and SQL Analyzer links:
- Most of the links have equivalents on both analyzers
- Some links exists only on SQL Analyzer, with no equivalent links on DB2 UDB Analyzer, DB2 z/OS Analyzer.
- Some links which exists only on DB2 UDB Analyzer, DB2 z/OS Analyzer, with no equivalent links on SQL Analyzer.
Please find the detailed list,
Caller | Callee | Link type | Original DB2 UDB Analyzer, DB2 z/OS Analyzer | Counterpart SQL Analyzer | Remarks |
---|---|---|---|---|---|
Table/View | Table/View | useSelect | |||
referLink, referDelete, referUpdate | |||||
inheritLink | Impact on TQI related to Unreferenced rules |
||||
Procedure Like | callLink | ||||
Column Like | accessRead, accessWrite | New feature : we should install com.castsoftware.datacolumnaccess to have them. | |||
Trigger | Fire: Before Insert/Update/Delete, After Insert/Update/Delete, For each row Insert/Update/Delete and For all row Insert/Update/Delete | Incorrect modelisation for function points | |||
UDT Like | relyonLink | Impact on TQI related to Unreferenced rules | |||
Column Like | Column Like | referLink | New feature for the case of Columns referenced in a Foreigner Key | ||
Procedure Like |
Procedure Like | callLink |
|
||
Trigger | callLink | New feature : when table is INSERTED/ UPDATED / DELETED in a Procedure / Function we add a call link between the Procedure / Functions and the Trigger | |||
Table/View | useSelect, useInsert, useUpdate, useDelete |
|
|||
monitorInsert, monitorUpdate, monitorDelete | New feature : adding monitor link between the Trigger and the triggered Table/View | ||||
ddlLinkCreate, ddlLinkDrop, lockLink |
Impact on TQI related to Unreferenced rules | ||||
UDT Like | relyonLink | Impact on TQI related to Unreferenced rules | |||
Column Like | accessRead, accessWrite | We should install com.castsoftware.datacolumnaccess to have them. | |||
Cobol Program | callLink | New feature, when the LANGUAGE parameter of the procedure is Cobol and external name is matched with an existing Cobol Program and dependency is added between client code and SQL code. | |||
C/C++ Function | callLink | New feature, when the LANGUAGE of the procedure is C and external name is matched with an existing C/C++ Function and dependency is added between client code and SQL code. | |||
Java Method | callLink | New feature, when the LANGUAGE of the procedure is JAVA and external name is matched with an existing Java Method and dependency is added between client code and SQL code. | |||
Constraint Like | Table/View | relyonLink | |||
Column Like | relyonLink | New feature | |||
Index Like | Table/View | relyonLink | |||
Column Like | relyonLink | New feature | |||
Synonym / Alias Like |
Table/View | DB2 : prototypeLink SQL : relyonLink |
|||
Procedure Like | relyonLink | New feature | |||
UDT Like | relyonLink | No impact | |||
UDT Like | UDT Like | inheritLink | No impact | ||
Script | Table/View | useSelect, useInsert, useUpdate, useDelete | New feature | ||
Procedure Like | callLink | New feature | |||
Client Code | Table/View |
useSelect, useInsert, useUpdate, useDelete | We add use links when dependency is added between the client code and SQL code. | ||
Procedure Like | callLink | We add call links when dependency is added between the client code and SQL code. | |||
Trigger | callLink | New feature : when table is INSERTED/ UPDATED / DELETED in a Client Code we add a call link between the Client Code and the Trigger. | |||
Column Like | accessRead, accessWrite | New feature. We add access links when dependency is added between the client code and SQL code and com.castsoftware.datacolumnaccess is installed. |
Rules
Here is the list of the equivalence between DB2 UDB Analyzer, DB2 z/OS Analyzer and SQL Analyzer rules:
-
Some quality rules exists only on SQL Analyzer, with no equivalent quality rule on DB2 UDB Analyzer, DB2 z/OS Analyzer.
-
Some quality rules which exists only on DB2 UDB Analyzer, DB2 z/OS Analyzer, with no equivalent quality rule on SQL Analyzer.
-
Most of the rules have equivalents on both analyzers
Original DB2 UDB Analyzer, DB2 z/OS Analyzer | Counterpart SQL Analyzer | Impact | Remarks |
---|---|---|---|
(7902) Avoid SQL queries that no index can
support (7418) Avoid SQL queries using functions on indexed columns in the WHERE clause (7428) Avoid SQL queries not using the first column of a composite index in the WHERE clause |
(1101004) Avoid non-indexed SQL queries | ||
Avoid Artifacts with too many parameters(7904) Avoid SQL queries on XXL tables that no index can support (7658) Avoid SQL queries on XXL Tables using Functions on indexed Columns in the WHERE clause (7642) Avoid SQL queries on XXL tables not using the first column of a composite index in the WHERE clause |
(1101006) Avoid non-indexed XXL SQL queries | ||
(1101078) Always prefer PRIVATE to PUBLIC synonym | New feature | ||
(1101080) Avoid orphaned synonyms | New feature | ||
(1101014) Avoid queries using old style join convention instead of ANSI-Standard joins | New feature | ||
(7806) Avoid Artifacts with Group By | (1101018) Avoid using the GROUP BY clause | ||
(7420) Avoid SQL queries with implicit conversions in the WHERE clause | TQI | ||
(7662) Avoid SQL queries on XXL Tables with implicit conversions in the WHERE clause | TQI | ||
(7810) Avoid Artifacts with a Complex SELECT Clause | (1101098) Avoid Artifacts with a Complex SELECT Clause (SQL) |
|
|
(1101084) Avoid Cursors inside a loop (SQL) | New feature | ||
(1101062) Avoid using multiple statements per line (SQL) | New feature | ||
(1101024) Avoid using dynamic SQL in SQL Artifacts | New feature | ||
(1101056) Avoid large Tables - too many columns (SQL) | New feature | ||
(1101064) Avoid cascading Triggers (SQL) | New feature | ||
(7660) Never use SQL queries with a cartesian product on XXL Tables | (1101002) Never use SQL queries with a cartesian product on XXL Tables (SQL) | ||
(7820) Never use SQL queries with a cartesian product | (1101000) Never use SQL queries with a cartesian product | ||
(7770) Avoid Artifacts with too many parameters | (1101016) Avoid Artifacts with too many parameters (SQL) | ||
(7822) Avoid Artifacts with queries on more than 4 Tables | (1101030) Avoid Artifacts with queries on too many Tables and/or Views | New feature : the number of accessed Tables / Views could be changed, default value is 4. | |
(1101058) Avoid mixing ANSI and non-ANSI JOIN syntax in the same query | |||
(1101068) Avoid synonym with both private and public definition | New feature | ||
(1101082) Avoid looping chain of synonyms | New feature | ||
(1101066) Avoid improperly written triangular joins with XXL tables | New feature | ||
(1101032) Avoid exists and not exists independent clauses (SQL) | New feature | ||
(1101022) Avoid Tables without Primary Key (SQL) | New feature | ||
(1101026) Always define column names when inserting values | New feature | ||
(1101034) Avoid using DISTINCT in SQL SELECT statements | New feature | ||
(1101038) Avoid OR conditions testing equality on the same identifier in SQL WHERE clauses | New feature | ||
(1101040) Avoid empty catch blocks | New feature | ||
(1101008) Avoid non-SARGable queries | New feature | ||
(1101060) Avoid using LIKE conditions starting with a wildcard character | New feature | ||
(1101070) Avoid explicit comparison with NULL | New feature | ||
(1101072) Avoid not aliased Tables | New feature | ||
(1101076) Avoid unqualified column references | New feature | ||
(1101074) Avoid Tables aliases ending with a numeric suffix | New feature | ||
(6588) View naming convention - character set control | (1101044) View naming convention - character set control (SQL) | ||
(6590) Table naming convention - character set control | (1101042) Table naming convention - character set control (SQL) | ||
(1101036) Use ANSI standard operators in SQL WHERE clauses | New feature for the client code | ||
(1101028) Use MINUS or EXCEPT operator instead of NOT EXISTS and NOT IN subqueries | New feature | ||
(1101020) Avoid using quoted identifiers | New feature | ||
(1101012) Avoid specifying column numbers instead of column names in ORDER BY clauses | New feature | ||
(1101010) Avoid NATURAL JOIN queries | New feature | ||
(1101090) Avoid Tables without a clustered Index (SQL) | New feature | ||
(1101102) Avoid using LIKE conditions without wildcards | New feature | ||
(1101104) Avoid XXL tables without primary key / unique key constraint / unique index | New feature | ||
(1101106) Avoid tables without primary key / unique key constraint / unique index | New feature | ||
(1101108) Avoid Cobol SQL Cursors without FOR READ ONLY or FOR FETCH ONLY or FOR UPDATE clauses | New feature, only for SQL in Cobol | ||
(1101112) Avoid LOCK TABLE statements in SQL code for COBOL Programs | New feature, only for SQL in Cobol |
T-SQL Analyzer - SQL Analyzer
The comparison has been done between T-SQL Analyzer 8.3.8 and SQL Analyzer 3.2.0-funcrel (AIP 8.3.8 + datacolumnaccess 1.0.0-beta2).
Objects
Here is the list of the equivalence between T-SQL Analyzer and SQL Analyzer objects:
- Most of the objects have equivalents on both analyzers
- Some objects exists only on SQL Analyzer, with no equivalent object on T-SQL Analyzer.
- Some objects which exists only on T-SQL Analyzer, with no equivalent object on SQL Analyzer.
Please find the detailed list:
Object family | Original T-SQL Analyzer | Counterpart SQL Analyzer | Impact | Remarks |
---|---|---|---|---|
Files | (139266) source file (subject to parsing) | (1000007) File which contains source code | ||
Structure
|
(1000003) Universal Directory | No impact, just structure | ||
(138003) Sybase Project |
(1101005) SQL Analyzer Project | No impact, just structure, merged types | ||
(138069) Microsoft Project | ||||
(1000001) Universal Project | No impact, just technical types | |||
(141813) The result project of a plugin | ||||
(141014) Sybase Database Subset |
(1101002) SQL Analyzer Subset | No impact, just structure | ||
(141003) Microsoft Database Subset | ||||
(140982) Sybase instance | No impact, just structure |
|||
(140952) Microsoft instance | ||||
(140981) Sybase database
|
(1101061) Database | No impact, merged types | ||
(140949) Microsoft database | ||||
(140980) Sybase schema | (1101011) Schema | No impact, merged types | ||
(140950) Microsoft schema | ||||
(141783) Sybase unknown instance | No impact, just structure |
|||
(141784) Microsoft unknown instance | ||||
(141751) Sybase unknown database | No impact, just structure | |||
(141752) Microsoft unknown database | ||||
(140979) Sybase unknown schema | No impact, just structure | |||
(140951) Microsoft unknown schema | ||||
Script | (1101010) SQL Script | New feature | ||
Table/View
|
(140978) Sybase table
|
(1101006) Table |
No impact, merged types | |
(138871) Microsoft table | ||||
(140976) Sybase view | (1101013) View | No impact, merged types | ||
(138873) Microsoft view |
||||
Column Like |
(140977) Sybase table column |
(1101007) Table Column | No impact, merged types | |
(138872) Microsoft table column | ||||
(140975) Sybase view column | ||||
(139224) Microsoft view column | ||||
Constraint Like | (141498) Sybase foreign key table constraint | (1101016) Foreign Key | No impact, merged types | |
(141495) Microsoft foreign key table constraint | ||||
Index Like | (140971) Sybase index | (1101008) Index |
No impact, merged types |
|
(138877) Microsoft index | ||||
(141497) Sybase primary key table constraint | (1101020) Unique Constraint | No impact, merged types | ||
(141494) Microsoft primary key table constraint | ||||
Procedure Like | (1101012) Function | New feature | ||
(138876) Microsoft function | (1101012) Function | |||
(140973) Sybase procedure | (1101009) Procedure | No impact, merged types | ||
(138875) Microsoft procedure | ||||
(140967) Sybase DML trigger | (1101014) Trigger | No impact, merged types | ||
(138891) Microsoft DML trigger |
||||
Synonym/Alias Like | (1101040) Synonym |
|
New feature |
Links
Here is the list of the equivalence between T-SQL Analyzer and SQL Analyzer links:
-
Most of the links have equivalents on both analyzers
-
Some links exists only on SQL Analyzer, with no equivalent links on T-SQL Analyzer.
-
Some links which exists only on T-SQL Analyzer, with no equivalent links on SQL Analyzer.
Please find the detailed list,
Caller | Callee | Link type | Original T-SQL Analyzer | Counterpart SQL Analyzer | Remarks |
---|---|---|---|---|---|
Table/View | Table/View |
useSelect | The case of Table / View selected in a View | ||
referLink | |||||
referDelete, referUpdate | New feature | ||||
Procedure Like | callLink | ||||
Column Like | accessRead, accessWrite | We should install com.castsoftware.datacolumnaccess to have them. | |||
Trigger | Fire: Before Insert/Update/Delete, After Insert/Update/Delete, For each row Insert/Update/Delete and For all row Insert/Update/Delete | Incorrect modelisation for function points | |||
Column Like | Column Like | referLink | The case of Columns referenced in a Foreigner Key | ||
Procedure Like |
Procedure Like
|
callLink |
|
||
Trigger | callLink | New feature : when table is INSERTED/ UPDATED / DELETED in a Procedure / Function we add a call link between the Procedure / Functions and the Trigger. | |||
Table/View | useSelect, useInsert, useUpdate, useDelete | Between Triggers and Tables |
|||
monitorInsert, monitorUpdate, monitorDelete | New feature : adding monitor link between the Trigger and the triggered Table/View | ||||
Column Like | accessRead, accessWrite | We should install com.castsoftware.datacolumnaccess to have them. | |||
Constraint Like | Table/View | relyonLink | |||
Column Like | relyonLink | ||||
Index Like | Table/View | relyonLink | |||
Column Like | relyonLink | ||||
Synonym / Alias Like |
Table/View | relyonLink | New feature |
||
Procedure Like | relyonLink | ||||
Script | Table/View | useSelect, useInsert, useUpdate, useDelete | New feature | ||
Procedure Like | callLink | New feature | |||
Client Code | Table/View |
useSelect, useInsert, useUpdate, useDelete | We add use links when dependency is added between the client code and SQL code. | ||
Procedure Like | callLink | We add use links when dependency is added between the client code and SQL code. | |||
Trigger | callLink | New feature : when table is INSERTED/ UPDATED / DELETED in a Client Code we add a call link between the Client Code and the Trigger. | |||
Column Like | accessRead, accessWrite | New feature. We add access links when dependency is added between the client code and SQL code and com.castsoftware.datacolumnaccess is installed. |
Rules
Here is the list of the equivalence between T-SQL Analyzer and SQL Analyzer rules:
- Some quality rules exists only on SQL Analyzer, with no equivalent quality rule on T-SQL Analyzer.
- Some quality rules which exists only on T-SQL Analyzer, with no equivalent quality rule on SQL Analyzer.
- Most of the rules have equivalents on both analyzers
Please find the detailed list,
Original T-SQL Analyzer | Counterpart SQL Analyzer | Impact | Remarks |
---|---|---|---|
(7902) Avoid SQL queries that no index can
support (7418) Avoid SQL queries using functions on indexed columns in the WHERE clause (7428) Avoid SQL queries not using the first column of a composite index in the WHERE clause |
(1101004) Avoid non-indexed SQL queries | ||
(7904) Avoid SQL queries on XXL tables that no index can support (7658) Avoid SQL queries on XXL Tables using Functions on indexed Columns in the WHERE clause (7642) Avoid SQL queries on XXL tables not using the first column of a composite index in the WHERE clause |
(1101006) Avoid non-indexed XXL SQL queries | ||
(7946) Avoid queries using old style join convention instead of ANSI-Standard joins | (1101014) Avoid queries using old style join convention instead of ANSI-Standard joins | ||
(7806) Avoid Artifacts with Group By | (1101018) Avoid using the GROUP BY clause | ||
(7790) Avoid Cursors inside a loop | (1101084) Avoid Cursors inside a loop (SQL) | ||
(1574) Use at most one statement per line | (1101062) Avoid using multiple statements per line (SQL) | ||
(1582) Avoid large Tables - too many columns | (1101056) Avoid large Tables - too many columns (SQL) | ||
(7660) Never use SQL queries with a cartesian product on XXL Tables | (1101002) Never use SQL queries with a cartesian product on XXL Tables (SQL) | ||
(7820) Never use SQL queries with a cartesian product | (1101000) Never use SQL queries with a cartesian product | ||
(7770) Avoid Artifacts with too many parameters | (1101016) Avoid Artifacts with too many parameters (SQL) | ||
(7822) Avoid Artifacts with queries on more than 4 Tables | (1101030) Avoid Artifacts with queries on too many Tables and/or Views | ||
(8080) Avoid exists independent clauses | (1101032) Avoid exists and not exists independent clauses (SQL) | ||
(8082) Avoid Tables without Primary Key | (1101022) Avoid Tables without Primary Key (SQL) | TQI : the rule changed from CRITICAL to generic | |
(7420) Avoid SQL queries with implicit conversions in the WHERE clause | TQI | ||
(7662) Avoid SQL queries on XXL Tables with implicit conversions in the WHERE clause | TQI | ||
(4062) Avoid Functions and Procedures doing an Insert, Update or Delete without managing a transaction | (1101100) Avoid Functions and Procedures doing an Insert, Update or Delete without managing a transaction (SQL) | ||
(4064) Avoid Procedures using an Insert, Update, Delete, Create Table or Select without including error management | (1101092) Avoid Procedures using an Insert, Update, Delete, Create Table or Select without including error management (SQL) | ||
(4066) Avoid Stored Procedures not returning a status value | (1101094) Avoid Stored Procedures not returning a status value (SQL) | ||
(4070) Avoid use of "truncate table" | TQI | ||
(4076) Avoid using temporary Objects | TQI | ||
(4084) Avoid nested Stored Procedures using temporary Tables | TQI | ||
(7386) Avoid Tables without a clustered Index | (1101090) Avoid Tables without a clustered Index (SQL) | ||
(7810) Avoid Artifacts with a Complex SELECT Clause | (1101098) Avoid Artifacts with a Complex SELECT Clause (SQL) |
|
|
(1101026) Always define column names when inserting values | New feature | ||
(1101034) Avoid using DISTINCT in SQL SELECT statements | New feature | ||
(1101038) Avoid OR conditions testing equality on the same identifier in SQL WHERE clauses | New feature | ||
(1101066) Avoid improperly written triangular joins with XXL tables | New feature | ||
(1101082) Avoid looping chain of synonyms | New feature | ||
(1101080) Avoid orphaned synonyms | New feature | ||
(1101058) Avoid mixing ANSI and non-ANSI JOIN syntax in the same query | New feature | ||
(1101064) Avoid cascading Triggers (SQL) | New feature | ||
(1101024) Avoid using dynamic SQL in SQL Artifacts | New feature | ||
(1101040) Avoid empty catch blocks | New feature | ||
(1101008) Avoid non-SARGable queries | New feature | ||
(1101060) Avoid using LIKE conditions starting with a wildcard character | New feature | ||
(1101070) Avoid explicit comparison with NULL | New feature | ||
(1101072) Avoid not aliased Tables | New feature | ||
(1101076) Avoid unqualified column references | New feature | ||
(1101074) Avoid Tables aliases ending with a numeric suffix | New feature | ||
(1101054) Never use WHEN OTHER THEN NULL | New feature | ||
(1101044) View naming convention - character set control (SQL) | New feature | ||
(1101042) Table naming convention - character set control (SQL) | New feature | ||
(1101036) Use ANSI standard operators in SQL WHERE clauses | New feature for the client code | ||
(1101028) Use MINUS or EXCEPT operator instead of NOT EXISTS and NOT IN subqueries | New feature | ||
(1101020) Avoid using quoted identifiers | New feature | ||
(1101012) Avoid specifying column numbers instead of column names in ORDER BY clauses | New feature | ||
(1101010) Avoid NATURAL JOIN queries | New feature | ||
(1101102) Avoid using LIKE conditions without wildcards | New feature | ||
(1101104) Avoid XXL tables without primary key / unique key constraint / unique index | New feature | ||
(1101106) Avoid XXL tables without primary key / unique key constraint / unique index | New feature | ||
(1101108) Avoid Cobol SQL Cursors without FOR READ ONLY or FOR FETCH ONLY or FOR UPDATE clauses | New feature, only for SQL in Cobol | ||
(1101112) Avoid LOCK TABLE statements in SQL code for COBOL Programs | New feature, only for SQL in Cobol |