SUPPORT
  TECHNICAL SUPPORT  |  RELEASE HISTORY  |  RESEND PASSWORD  |  REQUEST KEY 

Release History:

^

ClearSQL 6.9 (Release 9)

May 25, 2017

NEW FEATURES

  • NEW: Recycle Bin in the Project Tree:
    • Ability to move unnecessary project items to the Recycle Bin by drag&drop or by clicking the corresponding pop-up menu command.
    • Ability to restore items from the Recycle Bin back to the project with one click.
    • Ability to quickly locate the “Recycle Bin” node by clicking “Locate Recycle Bin” on the “Project” menu.

IMPROVEMENTS

  • Core
    • Full support of UTF-8 encoding.
    • Support of stored program overloads.
  • Code Review Rules
    • Improved layout of a hint shown for violated Code Review rules. Implemented on the “Code Review” tab of the Project Analyzer View and on the “Summary” tab.
    • The first rule in the “Top Violated Code Review Rules” list is now automatically highlighted on first opening of the “Code Review” subtab at “Project Analyzer View | Summary”.
    • New Code Review rule:
      • “Trigger may potentially cause mutating table error.” This rule checks if the trigger code source and all its Call Trees have links to the same mutating table.
    • The rule “Specify a full column list (as opposed to using “*”) in each DML statement and cursor” no longer raises violation for the SELECT…INTO statements that have only one INTO variable which belongs to %ROWTYPE of the same table as in the FROM clause.
    • The “Local program unit reference to an external variable” rule no longer raises a warning for references to constants that are globally defined in package bodies.
  • Code Analyzer
    • Improved Call Tree diagrams for Oracle Form triggers.
    • Improved calculation of Halstead Volume and other Halstead Complexity measurements.
    • Cyclomatic complexity is now counted for PL/SQL blocks.
    • Anonymous blocks now have indexes in the Code Analyzer results if there are several blocks in the script.
  • Diagrams (Flowcharts, Call Trees, CRUD Matrices)
    • All Call Tree diagram blocks are now clickable in the window opened from CRUD2 type matrices.
    • The number of datasets and stored objects is now shown for CRUD2 type matrices.
    • It is now possible to view a Call Tree diagram in a pop-up window by clicking a corresponding link on the “CRUD2 type MATRIX” page.
    • The number of nodes selected in the tree is now shown on the status bars of the “CRUD2”, “All Flowcharts”, and “All Call Trees” tabs.
  • Export Diagrams/Scripts/Pseudocode Wizards
    • Improved layout and functionality of the Export Wizards:
      • Added possibility to select encoding for the exported script (UTF-8 selected by default).
      • Added the “Write BOM” option (enabled by default). It becomes unavailable when ANSI encoding is selected.
      • Added the “Unix format (LF only)” option.
      • Moved export settings to the corresponding tabs like “Script/Diagram Output”, “Script/Diagram Settings”, “Script Encoding”, “Script Preprocessor”, etc.
    • It is now possible to export diagrams into XML format.
  • Pseudocode
    • Support for new pseudocode comment types: --##@true and --##@false.
    • Improved layout and look&feel of the Pseudocode Editor:
      • Preface and Inline editors are now shown on separate tabs.
      • Added new tabs: “TRUE Branch” and “FALSE Branch”.
      • Removed the yellow panel with comment description to an instant help message.
    • Improved analyzer recognition of pseudocode:
      • Added two new tags --##@true and --##@false (applicable to IF statements only).
    • Improved pseudocode flowcharts:
      • If a --##@true tag or a --##@false tag is specified, then the text after the tag will be used in a pseudocode flowchart as a replacement for the current “Yes”/“No” arrows.
  • Job and Schedule Manager
    • It is now possible to run a job via a command line script from a third party scheduler. A “Create Batch File” button was added to the toolbar of the manager.
    • The “Run Job Now” button is now available for a recently created job or for a job with unsaved changes. On clicking this button, you will be prompted to save it before running.
    • A message “The job is running now. Please use another instance to continue working in ClearSQL.” is now shown in the instance where a job is running.
  • Code Analyzer Options
    • A new group of options “Flowchart Layout Type” was added to Code Analyzer Options making it possible to select the flow of diagram blocks: from top to bottom and from left to right.
    • It is now possible to select a methodology model for calculation of Halstead Volume. Implementation in GUI:
      • Added a new group box “Methodology” at “Options | Code Analyzer Options | Code Metrics Options | Halstead Complexity Measurement”.
    • SVG (Scalable Vector Graphics) is now a default diagram format.
    • On saving options to a file, the last used path is now open instead of the predefined folder.
    • On the “Call Tree” page, enabling/disabling the “Data flow” option now affects the state of the “Show data flow labels” option.
  • Analyzer View
    • Added corresponding “Export All…” commands to the pop-up menus of the subtabs on the “Summary” tab.
    • Significantly sped up loading of content on the “Code Review” tab.
    • The filter for CRUD matrices was removed from the header, so it no longer disappears when “Show Header” is turned off.
  • Project Tree
    • ClearSQL no longer allows assigning empty names to project items.
    • Project items with empty names are now automatically renamed to “Unnamed <N>” on project loading.
  • Code Editor
    • The number of Code Review issues, Flagged Code Metrics, and Autofixes of the selected script is now shown on the Code Editor status bar along with other script information.
    • A line number, position, file mode, text status, and other information related to the selected script is now shown on the status bar of the Code Editor, not on the main status bar.
  • New Project / Import Scripts
    • On trying to import the database object tree node and the “Schemas” node, a new message appears warning that these nodes cannot be imported because import is performed only from the schema level and below.
  • Project Report Assistant
    • A warning message now appears before report generation if scripts with New status are included in the report.
    • Summary panels at “Project Report Assistant | New Report | Summary Options | Summary Panels” are now sorted alphabetically.
    • Improved look&feel and functionality of the report compression (zip) feature.
  • Project Report
    • It is now possible to expand/collapse values in the “Top Violated Code Review Rules” and grouped “Code Metrics” grids. The fix was implemented on the Summary pages at the project/folder/script levels of a project report, in the Summary tables exported to HTML, and in print version of Summary tables. By default, all nodes are collapsed to the top level on report/file opening.
  • Summary Info
    • “Errors and Alerts” are now shown in a table with the number of scripts for each issue type. Clicking figures in the table filters the Project Tree by the corresponding issue type.
    • Reorganized the order of panels on the “General” subtab of the “Summary” tab.
    • Project Tree selection is now restored on returning to the locked “Summary” tab of the Project Analyzer View.
  • Installer/Updater
    • A full version number of the application is now shown on installing a newer version into an existing application folder.
    • Updated system requirements with the supported versions of Oracle Forms.
    • On installing a new version of ClearSQL over the existing version into a different folder, you can now manually select to delete the existing files from the old folder using the “Files to delete” window.
    • Manual entering of “I AGREE” to confirm the license agreement was replaced with the “I agree/do not agree” radio buttons.
    • It is now possible to delete files that remained after uninstalling ClearSQL, if any, using the uninstallation wizard.
  • Online Support Desk (=OSD)
    • Entering “I AGREE” to send an OSD message with attachments was replaced with an “I agree to send these recommended attachments” check box. Enabled by default.
    • A new instant help was added to the “OSD – New Messages” window describing Conquest privacy policy regarding OSD attachments.
    • It is now possible to create drafts of new OSD messages without Internet connection.
  • Preferences
    • Preferences are now saved as an archive with an extension .CSPZ.
    • It is now possible to open Preferences from the “Database Source” tab of the Link Manager.
  • Find in Project/Script
    • The number of replaced occurrences is now shown in a message after the replacement is done.
  • GUI
    • Improved look&feel of the “Add Pattern for <Naming_Rule>” window.
    • Improved look&feel of the “Synchronization Settings” window.
  • Workspace
    • A full path to the selected script is now shown in a hint if it is too long to fit in the status bar.

BUGS FIXED

  • Core
    • ClearSQL no longer hangs on selecting a large project (e.g. 7500 objects) for analysis.
  • Analyzer View
    • The “Collapse” button now works correctly for the “Cyclomatic Complexity” panel on the “Summary” tab.
    • Changing grouping on the “Summary” tab no longer raises an access violation error for the Demo Project.
    • Selecting the “Don’t show me again (Save in Preferences)” check box now works correctly for messages that appear on disabling the instant help panels on the tabs of the Analyzer View.
    • On the “Sync History” tab, synchronized scripts now have correct explanations of their statuses: “not modified manually since synchronization” – if no changes were made since last synchronization; “formatted since synchronization <timestamp> – if the script was formatted since last synchronization.
    • “Differences in Selected Versions” on the “Sync History” tab no longer shows empty change lists for scripts with different source versions.
    • Changing the type of relations for Call Trees now works correctly when selected via “Options | Relations” (toolbar of the “All Call Trees” tab).
  • Code Analyzer
    • Fixed indent for the INTO clause of the FETCH statement.
    • The Code Analyzer no longer hangs if the analyzed code contains a variable and type with the same names in the same scope.
    • Memory used during code analysis now gets cleared after the analysis is over.
    • Ampersands “&” no longer disappear from a script after code analysis.
    • A line break before a procedure/function is no longer omitted when code is analyzed with formatting and the CREATE OR REPLACE clause is omitted.
    • Improved formatting of the FETCH…BULK COLLECT clause.
    • Overload indexes are now shown for subprograms in Call Trees.
  • Code Analyzer Options
    • If a folder where currently applied Code Analyzer settings are stored is removed or deleted from the file system, a new file with default Code Analyzer settings is now created on application startup, and a corresponding message appears.
    • The “On mouse over: highlight connected elements (SVG type only!)” option is now shown as disabled (dimmed) if a format other than SVG is selected.
    • It is no longer possible to select (check) an empty naming rule category, which has no rules defined.
  • Code Review Rules
    • The “Rule Name” column in the “Top Violated Code Review Rules” table is now autofitted to the width of its content, not to the window’s width.
    • The rule “FUNCTION exception handler does not contain a RETURN statement” now raises violation when the exception handler contains no RETURN or RAISE statements or RAISE_APPLICATION_ERROR procedure call.
    • A rule violation is no longer raised if the {$ANY_LINE_ENDING} wildcard is preceded by a space.
  • Diagrams (Flowcharts, Call Trees, CRUD Matrices)
    • Blocks with conditions are no longer missing from UML Flowcharts.
    • In SVG format, hints of Flowchart blocks now appear on pointing to a block itself, not only on its borders or text within. The bug occurred when code abbreviations were set to “Shortened”.
    • Highlighting of diagrams generated in SVG format now works correctly for all elements of a diagram in a ClearSQL project report.
  • New Project / Import Scripts
    • Importing a table trigger to a project with the “Include object owner in script content” option disabled no longer adds the table owner name to the imported table trigger.
    • Object names are now imported correctly if represented by a quoted identifier.
    • Objects can now be imported correctly from a schema if their names are represented by a quoted identifier.
    • Top nodes of system schemas are now hidden from the database object tree when “Hide system schemas” is enabled in Preferences.
    • If ClearSQL fails to import selected scripts because of the “Out of Memory” error, these scripts will no longer be added to the target Project Tree.
  • Project Report
    • The size of the hint shown for synchronized objects was increased so that all content fits in.
    • Filters applied to a project report are no longer omitted from the list of used options on the “Report Summary” page.
  • Project Report Assistant
    • States of options on the “General Report Options” subtab are now restored correctly after reopening the Project Report Assistant.
    • All selected nodes – not only top level nodes – are now included in a project report when a filter is applied to this report.
  • Job and Schedule Manager
    • An access violation error no longer occurs after enabling “Create Report” for a scheduled job.
    • An access violation no longer occurs after successful completion of a job.
    • Saving of project changes after job completion no longer depends on the state of the “PC power off on job completion” option.
  • Link Manager
    • The “Selected source” field now shows correct information after the selected script is relinked.
    • If no changes were made to the project and the Link Manager was closed by clicking the “Apply” or “OK” buttons, then the project status no longer changes to “modified”. The same problem was also fixed in the Import Scripts and New Project Wizards.
  • Project Tree
    • Fixed sorting of folders in the Project Tree.
    • SQL statements of a block of an Oracle Form are now imported as separate scripts.
  • Analyzer Progress
    • Elapsed time of project analysis no longer keeps running after clicking the “Pause” button.
    • Analyzing an empty project no longer raises a range check error.
  • Pseudocode
    • Expanding/collapsing nodes in the Pseudocode editor no longer raises an access violation error.
    • Applied minimum size to the “Pseudocode Editor” window.
  • Code Editor
    • Subprograms without parameters are now supported in the Code Insight list.
    • If a script name contains unsupported characters, they are now automatically removed on saving and the following message is shown: “<N> scripts had unsupported characters in their script names. These characters have been removed.”
  • Code Insight
    • Code Insight now works correctly for all types of Oracle databases supported by ClearSQL.
  • Sync Settings
    • Disabling parent options now makes their child options unavailable (dimmed) too.
  • Code Explorer
    • Code folding now works correctly for NONEDITIONABLE packages and triggers.
    • The Code Explorer now parses NONEDITIONABLE objects correctly.
  • Code Synchronization
    • Encoding of linked scripts that contain special characters no longer breaks on relink.
    • Synchronization on “Refresh” and “Write Back” now works correctly when changes were made only in comments of the linked items.
  • SynEdit
    • Copying the first line of a collapsed statement now copies the whole statement without the need to expand it.
  • Summary Info
    • Filtering Code Review rules now works correctly at “Project Analyzer View | Summary | Code Review”.
  • Preferences
    • Disabling the “Network Resource Authentication” option no longer removes values from the “User name” and “Password” fields.
    • Global sync settings are now restored correctly from a file.
    • In case you do not have enough access rights to a folder selected at “Options | Preferences | General | Default Project Location Folder”, this folder is now changed to the default one on next ClearSQL startup.
  • Online Support Desk (=OSD)
    • Special characters are now shown correctly in the subject of an OSD message.
  • Find in Project/Script
    • The “Whole word only” option now works correctly when “_”, “$”, and “#” are used in the word you are searching for.
  • GUI
    • The “Help” button was removed from the error message that appears if DB connection is killed during project creation.
  • Workspace
    • Saving a workspace to a file now works correctly.
    • Minimum size was set to the application’s main window.

ClearSQL 6.9 (Release 8)

Dec 10, 2015

IMPROVEMENTS

  • Core
    • A license key expiration date is now shown in the header of ClearSQL and in the startup window.
    • Code analysis without code formatting. You can now select to analyze your code with or without formatting. By default code is still analyzed with formatting.
  • Code Analyzer
    • “Streaming_clause” is now supported when specified after the PIPELINE keyword.
    • A project/script name is now shown in the application’s log file if the graphical engine raises an error.
  • Code Analyzer Options
    • The “Close” button is now renamed to “Cancel” and “Load” is renamed to “Opened” on changing options on any of the “Code Analyzer Options” pages.
    • A message is now shown asking the user if he agrees to enable the “Model 2” option for Maintainability Index at “Code Analyzer Options -> Code Metrics Options”.
    • Enabling the “Highlight elements of SVG diagrams” option at “Code Analyzer Options -> Diagram Options -> Flowchart/Call Tree” enables the corresponding option in a report.
  • Code Review Rules
    • A new rule “Identifier redeclared” was added to the list of Code Review rules. This rule raises violation for duplicated variables, types, constants, and parameters in any combination.
  • Diagram (Flowchart, Call Tree)
    • Incoming and outgoing arrows in Flowchart and Call Tree diagrams are now highlighted when pointing to or clicking on them. The feature is available in the SVG format only.
    • Parts of minimized diagrams in project reports can now be enlarged and viewed in a magnifier window.
    • The size of a diagram can now be changed by using the “Zoom Diagram” option on the diagram’s toolbar.
  • Analyzer Progress
    • Updated layout of the “Analyzer Progress” window and “Project Analysis” page in “Preferences”.
    • Updated and extended description of features in instant help in the “Analyzer Progress” window and on the “Project Analysis” page in “Preferences”.
  • Analyzer View
    • The autofit feature now works correctly in all tables of the “Summary” tab.
    • Improved Code Metrics level structuring.
    • Hints are now shown for buttons in column headers of the “Code Metrics” table.
  • Project Report
    • Improved layout of Flowchart and Call Tree diagram pages.
  • Project Report Assistant
    • Improved layout of the “Project Report Assistant” window.
    • Changes made to a template in the “Template Description” editor can now be saved by clicking the “Save” button on the toolbar.
    • The “Template Description” editor now supports standard shortcut keys.
  • Link Manager
    • The “Locate” and “Undo” buttons were added to the “Project Tree”, and the corresponding menu items were added to its pop-up menu.
  • Project Backup/Restore
    • Significantly sped up the process of restoring a project from a backup.
  • Main Menu
    • Menu items on the “Format” menu were combined with those on the “Edit” menu.
    • The order of main menu items was changed. The new order: Project - Edit - View - Search - Analyze - Sync - DB Connection - Options - Tools - Help - OSD.
    • “Check for Updates” and “Check for Messages” menu items were added to the “Help” menu.
    • New menu items “Open Report Assistant” and “View Reports” were added to “Tools -> Project Report Assistant”.
    • New icons were applied to a number of menu items on the “Analyze” and “Tools” menu.
  • Preferences
    • Instant help was added to the “Oracle Forms” page in “Preferences” with requirements for an Oracle Forms client.
    • The “Auto Copy Selection” group box was moved from the “General” page to “Editor”.
  • Online Support Desk (=OSD)
    • A pop-up window is now shown on first start of the application notifying the user about a check for updates.
  • License Key
    • A tray notification about the upcoming license key or AMS expiration is now shown on the application’s startup.
  • Online Help
    • Code Metrics calculation formulas with detailed description are now available in the “Code Metrics description” chapter.
    • ClearSQL Help was updated with new topics and more detailed description of features.
  • Online Help/ReadMe/Installer/Updater
    • New system requirements for ClearSQL installation.
  • About
    • The project license information is now shown in the “Licenses” table.

BUGS FIXED

  • Code Analyzer
    • The “An opened cursor must be closed” rule no longer raises violation on script analysis if it is not selected in “Code Analyzer Options”.
    • The XMLNAMESPACE clause with the DEFAULT namespace declaration is now supported correctly.
  • Support For Oracle Forms
    • An error is no longer raised on exporting Oracle Forms files to a ClearSQL project if required attached libraries are located in the same folder with the imported file.
    • The BEGIN and END keywords are now always added to the Oracle Forms trigger if it is not a single PL/SQL block.
    • The “Unreferenced package/type method or standalone subprogram” rule now works correctly for package subprograms that are referenced from the same or different package and are not referenced by a standalone subprogram. Also, some calls from one subprogram to another in the same package are now shown as calls inside the package.
  • Project Report
    • The “All Diagram” button is now available in a report with diagrams.
    • Legend is now shown correctly for Flowchart diagrams.
  • DB Connection Window
    • An error no longer occurs on closing ClearSQL with the enable “Auto connection” option and opened OSD window.
  • Main Menu
    • “Release History”, “FAQ”, “Contact Us”, “Buy Online” pages of the Conquest Software Solutions website can now be opened from the “Help” menu.
  • Find in Project/Find in Script
    • The “Ignore case” option now works correctly when searching for text/script occurrence.

REMOVED FEATURES

  • Project Report Assistant
    • The “Fully expand” option was removed from “Project Report Assistant -> New Report -> General Report Options”.

ClearSQL 6.9 (Release 6)

Jun 30, 2015

IMPROVEMENTS

  • Code Analyzer
    • Support for a new ACCESSIBLE clause in Oracle 12.
    • Support for the CREATE DDL event in the trigger on schema.
    • Support for the DETERMINISTIC keyword for a procedure in the package specification.
    • Support for the XMLNAMESPACES function without values of the expression list.
    • Support for the DOUBLE PRECISION type for parameters and variable.
    • Oracle OPAQUE VARYING statement is skipped to avoid the parser error.
    • A local variable or a parameter are now omitted from the Call Tree diagram.
    • The keyword NAME can now be used as an identifier.
    • “PIVOT_CLAUSE” and “UNPIVOT_CLAUSE”are now successfully parsed with both orders of clauses being used: 1)”query_table_expression”; 2)”pivot_clause”; 3)”alias” OR 1) “query_table_expression”; 2)”alias”; 3)”pivot_clause”.
  • Code Analyzer Options
    • The “Combine consecutive "subprogram call" and "assignment" blocks” option has been added to “Code Analyzer Options -> Diagram Options -> Flowchart”. With this option enabled, all similar commands in the code (if any) are shown in one flowchart block. This option is enabled by default.
    • The “Model 2” option in the “COM (Comments) Parameter of Maintainability Index Used in the Calculation Formula” group is now enabled by default at “Code Analyzer Options -> Code Metrics Options”.
    • Detailed description of “CRUD1” and “CRUD2” has been added to “Read More” on the “Diagram Options – CRUD” page.
  • Code Review Rules
    • Two new Code Review rules called “Unreferenced local variable” and “Unreferenced package/type method or standalone subprogram” have been added to the “Program Structure” node in the list of rules at “Code Analyzer Options -> Code Review Options”.
  • Code Metrics
    • The option “Calculate Maintainability Index of the nested subprogram separately from the encasing subprogram” to count Maintainability Index of local subprograms separately as a part of a parent subprogram has been added to “Code Analyzer Options”. The options is disabled by default.
    • The value of flagged code metrics of package/type subunits at the script/object level is now shown in percent.
    • On analyzing/formatting code, two empty lines between comments are reduced to one line. One empty line between comments remains unchanged.
  • Diagrams (Flowchart, Call Tree)
    • Behavior of graphical engine can be controlled: if a diagram cannot be generated, the diagram generation process can be stopped without affecting ClearSQL report generation.
    • New version of graphical engine enables generation of large diagrams and significantly accelerates the process of ClearSQL report generation, especially for big ClearSQL projects.
  • Analyzer View
    • Improved UI of the “Code Metrics” tab:
      • Renamed the “Export” button to “Export History”.
      • Added a hint to the “Export History” button.
      • Added the “Export Details” button to the toolbar.
  • Analyzer Progress
    • Renamed following check boxes: “Automatically close when finished” to “Close window on completion” on the “Options” tab of “Analyzer Progress”; and “Automatically close Project Analysis on completion” to “Close the Analyzer Progress window on completion” at “Preferences -> Project Analysis”.
    • Added the “Code Analyzer Options” button to the “Options” tab in the “Analyzer Progress” window, which allows setting options right before running the analysis.
  • DB Connection Window
    • Added the “Enable all roles granted to the user for the current session” option to the “Database Session” page in “Preferences”.
  • Summary Info
    • Improved default position and color of a table hint.
  • Installer/Updater
    • The “License Agreement” file is now shown in the RTF format during the application setup and on clicking the “License Agreement” button in the “About ClearSQL” window.
  • Online Help
    • Updated version of Help with new topics and more detailed description of features.

BUGS FIXED

  • Core
    • The “Link Manager” is now available in the “Demo Project” in trial mode.
    • The “Demo Project” is now installed with Flowchart diagrams.
    • An already saved project is now saved successfully to another folder with the same project name.
    • “Unlock Key” has been renamed to “License Key” throughout the whole application, including messages, “Help”, and “License Agreement”.
  • Code Analyzer
    • Support for EDITIONABLE and NONEDITIONABLE keywords.
    • An access violation error no longer occurs when analyzing the TRIM(TRAILING <character> FROM <expression>) function call.
    • Parsing works correctly for CONDITIONAL_INSERT_CLAUSE when the VALUES clause is omitted.
    • A query name of SUBQUERY_FACTORING_CLAUSE has been removed from the calls list, and the query name is no longer shown as a dataset in the Call Tree diagram and the CRUD matrix.
    • The local collection reference is no longer treated as a call, and it has been excluded from the Call Tree diagram.
    • The “Procedure calls itself recursively” rule raises violation if a stored object without parameters calls itself recursively.
  • Code Analyzer Options
    • The “Position a result_value on the same line in CASE expressions if it fits the right margin” option at “Formatter Options -> General Layout -> Indenting” has been split in two separate options: “CASE expressions: position a result_value on the same line if it fits the right margin” and “CASE statement: position a single run statement on the same line if it fits the right margin”.
    • The recounting feature now works correctly when the number of code review rules is changed.
  • Diagram (Flowchart, Call Tree)
    • ClearSQL no longer closes on generating a flowchart diagram if the “Code Abbreviation” option of the Flowchart diagram was set to “Shortened” or “Minimal” and if there was a long string literal in the code with many double quotes.
  • Link Manager
    • An access violation error no longer occurs when the filter of the “Object Tree” is restored in the “Link Manager” or “Import Wizard”.
    • An access violation error no longer occurs on locating a folder linked to OS.
    • The “Locate” feature now works correctly if the “Show hidden files and folders” option is disabled on the “New Project, Import & Link Manager” page in “Preferences”.
  • Job Manager
    • Jobs created in earlier versions of ClearSQL with the disabled “Project Report” option now work correctly if opened in later versions of the application.
    • Job preferences are now shown instead of application preferences on clicking the “Preferences” button when the “Sync Settings” window is opened from the “Job Manager”.
    • Global sync settings are now correctly applied for a job.
    • Job preferences and application preferences are two standalone features, which means that changes made in job preferences no longer affect application preferences and vice versa.
    • An access violation error no longer occurs on saving a new project with linked items.
  • Project Report
    • If a page in the “Project Report” is empty, its link is now shown in gray, “+” and “–“ buttons are removed, and the “There is no information available for this object” message is displayed on the page.
    • Flowchart and Call Tree diagrams are now correctly displayed in the “Project Report” if generated in the SVG format.
    • “Rationale” is now correctly displayed on the “Code Review” page of a stored object or script.
  • Analyzer View
    • Correct text is now shown on the “All Flowcharts” tab when the “Anonymous blocks” node is selected.
    • Empty grids are no longer displayed on the “Script” page of “Analyzer View” if no project is open.
    • All items of the “All Flowchart” tree, including “Anonymous blocks”, “Standalone stored objects”, and “Packages”, are now correctly sorted by source.
    • Correct values are now shown at “Summary -> Code Review” when a filter is applied to the list of code review rules.
    • An access violation error no longer occurs when “Instrumented Code” generation is run in the “Demo Project”.
    • Tree structure of “Code Review” violations by code lines with links and the “Rationale” context menu are now shown correctly in trial mode.
    • Improved highlighting of items in “Analyzer View”.
  • Analyzer Progress
    • Improved language support for object names and parameters.
    • The progress bar now shows correct information when analysis is running.
  • Code Synchronization
    • Correct linked source is now used when viewing differences between the current script and its linked source in the “DemocProject”.
    • The limit of 50 scripts is no longer exceeded when synchronizing objects in trial mode.
  • Support for Oracle Forms
    • A version conflict no longer occurs on Oracle Form import if the Oracle Form file version is the same as or lower than the API version of ClearSQL.
  • Project Tree
    • Correct values of folders and scripts are now shown on closing the “Project Report Assistant” when the “Include only selected scripts (<number> scripts)” and “Show Number of Folders/Scripts” options are enabled.
  • System Information
    • The correct environment variable “ORACLE_HOME” is now selected before connecting to a database.
  • About/OSD/Preferences/System Information
    • Fixed calculation of the AMS expiration date.
  • Startup Window
    • Improved notification about license key expiration on startup.

REMOVED FEATURES

  • Summary Information
    • All total values have been removed from the “Code Metrics – Totals” charts of the “Summary” tab.

ClearSQL 6.9 (Release 5)

Jan 22, 2015

IMPROVEMENTS

  • Core
    • Ability to generate diagrams in SVG (Scalable Vector Graphics) format. The new option is listed in the “Output Diagram Format” of the “Code Analyzer Options -> Diagrams Options” page. The feature works correctly in Internet Explorer 9 and above and in the latest versions of other browsers such us: Chrome, Firefox, Opera.
    • Opens “New Project Assistance” to create a new project without closing the current open project.
    • The new version of “ClearSQL Demo Project” comes with linked items.
  • Job Manager
    • Bi-directional synchronization of the project before analysis (refresh) and after analysis (write back).
    • Modifies contents of the project.
    • Modifies links of the project.
    • Specifies the sync setting of the project.
    • Displays the sync settings graphically in the new column “Sync Setting”.
    • Specifies the sync setting for an existing and embedded project.
    • Improved features and look&feel of the “New Job” feature.
    • The “temporary” project is replaced by the “embedded” project.
    • The “temporary” type project is no longer supported for creation but is still supported for existing jobs with temporary projects.
  • Project/Script Analyzer View
    • Improved UI of the diagram page (Flowchart, Call Tree, CRUD 1/2) when no diagram is shown.
    • The “Code Review” tab of the “Script Analyzer View” pane displays the code review groups in gray when the script has no rule violations (Note - it is unclear whether you are saying it is grey when there is a rule violation or when there is no violation - if gray for violations, use "any").
    • Displays the instant help button shown in the tab’s caption as “pushed” when the instant help pane is visible and “non-pushed” when the pane is hidden.
    • Added the “Differences in Selected Versions” item to the popup menu of the “Sync History” tab. The feature shows the differences in code for two selected different versions of the script.
    • The “Selected Sync Settings” link located in the right pane of the “Sync History” tab provides easy access to the sync settings of the selected script/folder.
    • The “Source” and “Linked by” data of the “Sync History” tab now are shown in editors.
    • The “Code Review” lists in the “Script Analyzer View” and in the “Summary” tab display rationale for the selected code review rule.
    • Highlights with light red the filtered violated code review rule on the “Code Review” tab of the “Script Analyzer View” pane.
    • Added a new checkbox “Show filtered violations only” to the “Code Review” tab of the “Script Analyzer View” pane. It becomes visible in the toolbar when the list of violations is filtered.
  • Summary Page
    • Improved look&feel of the summary panes.
    • The figures of “Refresh and Write back” of the “Synchronization” panel that greater zero have links to filter the Project Tree.
    • Added the “Folder link validated” sync statistic to the Synchronization pane.
    • Includes project folders to “Refresh and Write back” figures of the “Synchronization” pane.
    • If the script does not contain any PL/SQL code and is skipped during analysis, the “Errors” pane displays an explanation text
    • The “Top Violated Code Review Rule” list is sorted by: the number of violations, descending; a group name; and rule name.
  • New Project/Import Wizard/Link Manager
    • Improved UI and look&feel of the Filter feature of the “DB Object Tree”.
    • The “Type” and “Linked Source” columns are now visible by default.
    • Added a new feature "Copy Full Path to Clipboard" to the popup menu of the File Source tree.
    • Added a new feature "Locate in Windows Explorer" to the popup menu of the File Source tree.
    • Added a new option “Checked only” to the “Import to the Project Tree” group.
    • The “Selection Sync Settings” menu item of the Project Tree’s popup menu provides access to sync options of the selected project item.
  • ClearSQL Project Report
    • Report Observation page groups “Flagged Code Metrics”, “Autofixes”, “Parser Status”, “Code Review Alerts” by issues and scripts.
    • Shown Code Metrics data with background colors used in ClearSQL UI.
    • Instead of disabling the web security option of Chrome to display the content of the report correctly, ClearSQL applies the option “allow-file-access-from-files” on opening the report in Chrome.
  • Code Analyzer and Formatter
    • New code review rule “Avoid use of explicit cursors” in the "Program Structure" group.
    • Improved formatting of the CASE statement. Added the new option "Position a single run statement on the same line in CASE statement if it fits the right margin".
    • Improved formatting of ORDER BY and FOR UPDATE OF clauses.
  • Sync Settings
    • Defines the global or parent folder inheritance or individual sync settings for selection in the Project Tree.
    • New option to remove scripts with broken links from the project on “Sync->Refresh”.
    • UI of the Folder Source Filter is improved.
    • Provides instant help for each group.
  • Code Synchronization
    • Global, inherited from a parent folder and individually defined sync settings.
    • Ability to link the project root node with the source.
  • Analyzer Progress
    • The diagram generation icons are replaced by corresponding checkboxes.
    • Added a new option “Keep diagram local settings” to the Options page. It is synchronized with the same setting in Preferences and vice versa.
    • Improved look&feel of the “Elapsed Time” column.
  • Flowchart, Call Tree and CRUD
    • Displays improved text and a graphical legend if no flowchart/Call Tree/CRUD is available or generated.
    • The flowchart diagram displays the script name with its full path in the project.
    • Sorts the flowchart tree “By Name” and “By Source”.
  • Project Report Assistant
    • The “Report Default (vertical linear layout)” option of the “Summary Options -> Panels Size and Position” group now is selected by default. When this option is enabled, the report autofits the tables and panes of Summary to the page width.
    • Added a new option “Include script path” to the “Summary Options -> Panels Content” tab.
  • Project Manager
    • The "Script Properties" tab is moved to the “Script: Editor and Analyzer View” tab, next to the “Sync History” sub-tab.
    • The last analysis statistic and the total statistic of the project is combined into one page.
  • Code Analyzer Options
    • Opens the Search window in the Code Review list by a shortcut key “CTRL+F”.
    • Displays rationale for the selected Code Review Rule. Ability to copy the shown rationale to Clipboard.
  • Project Tree
    • Added a new feature "Copy Linked Source Full Path to Clipboard" to the popup menu tree.
    • Added a new feature "Locate Linked Source in Windows Explorer" to the popup menu.
  • Call Tree and flowchart diagrams
    • The flowchart diagram’s tree displays a local subprogram as a child node of its parent node.
  • Preferences
    • Keeps the last active page if “Preferences” is open from the main menu or main toolbar.

BUG FIXES

  • ClearSQL Project Report
    • The number of flagged scripts and issues were mixed up in the “Report Observation” page.
    • The “Report Observation” page displayed an incorrect number of scripts with issues.
    • The number of scripts with “Autofixes” was incorrect in the "Script Attributes Summary" table of the "Report Summary" page.
    • Flagged Code Metrics might be counted incorrectly in the “Report Summary” and “Report Observation” pages.
    • The “Script Path” column width of the “Parser Errors” table of the “Project Summary” page was too small.
    • The Code Metrics columns positions did not correspond to ClearSQL UI in the "Report Observations -> Flagged Code Metrics" page.
  • Link Manager
    • Did not display the name of the located script in the “Source source” editor.
    • The "Unlink All" feature was always disabled.
    • After adding&linking db objects to the project the checkboxes of the "From Database" tree became invisible.
  • Code Analyzer and Formatter
    • A CASE statement with complex expressions could be formatted incorrectly.
  • Code Synchronization
    • Did not display sync statistics after refreshing the project folder.
  • Code Review
    • Filtering from the Code Review tab was not synchronized with the main Project Tree filter.
  • Analyzer View Pane
    • Captions of the legend in the “Script Properties” page were aligned incorrectly.
  • Job Manager
    • On turning off the "Create ClearSQL Report" option, the “Project Report Assistant” opened superfluously.
  • New Project / Import Wizard
    • Added non-selected object type folders on importing a schema folder.
  • Call Tree Diagram
    • After analysis a part (not all scripts) of the project the Call Tree diagrams became non-clickable.

ClearSQL 6.9 (Release 1)

Aug 7, 2014

New features

  • CODE SYNCHRONIZATION: bi-directional ("source2project" and "project2source") synchronization of the content of project scripts against the original source (scripts and DB objects) and vice versa.
  • NEW code review rules:
    • "RULE optimizer hint" in the "Program Structure" group.
    • "PARALLEL optimizer hint" in the "Program Structure" group.
    • "Exception is not handled in the BEGIN/END block" added to the "Program Structure" group.
    • "An opened cursor must be closed" in the "Program Structure" group.
    • "DROP statement is used" in the "Program Structure" group.
    • "COMMIT and ROLLBACK are allowed if pragma is used" in the "Program Structure" group.
    • "Column alias is missing after AS keyword" in the "Readability" group.
    • "Mandatory comment header is not used" in the "Maintainability" group.
    • "More than one CREATE statement in the script" in the "Readability" group.
    • A string "magic" hard-coded literal value is used in the WHERE clause of the SQL statement" in the "Maintainability" group.
    • A number "magic" hard-coded literal value is used in the WHERE clause of the SQL statement" in the "Maintainability" group.
  • NEW template "Object Type Name" in "Naming Rules Templates" - specifies naming rule patterns for names of object types.
  • Support for Oracle Conditional Compilation directives.
  • Support for Oracle Forms 11g.
  • New version of the "ClearSQL Demo Project".

Improvements

  • Code Analyzer
    • Improved accuracy of certain code review rules.
      IMPORTANT: if you use the "Analysis History" feature of ClearSQL, expect to see differences between ClearSQL 6.5 and ClearSQL 6.9 in their analysis data for the same code. Higher accuracy, larger coverage of unusual coding styles and more, will result in different analysis data.
      We highly recommend starting a new monitoring cycle of "Analysis History" data, when using ClearSQL 6.9.1.x for the first time.
    • Support for interval expressions in conditions.
    • Continues a script parsing process even if a syntax error has been found.
    • Dramatically improved code analysis performance if flowcharts, Call Tree diagrams and CRUD matrices generation is turned off.
  • Code Analyzer Options
    • Sorts the code review rules alphabetically by "Name" and "Activity and Name" at the code review group scope.
    • Filters code review rules by "Active Only", "Inactive Only" and "Show All".
    • Searches for code review rules by name.
    • Ability to protect a Code Analyzer Option profile by password.
    • The default number of blocks of Call Tree diagrams and flowcharts is set to 200.
  • Code Analyzer Options - Naming Rules Templates
    • Ability to specify the DML statement (SELECT/INSERT/UPDATE/DELETE/MERGE) for a "Dataset Object Name (table/view/synonym) in DML statements" naming rule.
    • Ability to specify the Type (Object Type/Nested Table Type/Varray Type) for an "Object Type Name" naming rule.
    • Ability to specify the Subprogram Type (Standalone Function/Standalone Procedure/Package Function/Package Procedure/Object Type Function/Object Type Procedure) for a "Standalone stored program, package subprogram and object method" naming rule.
    • Ability to specify a Collection, Record or Subtype for a "User-Defined PL/SQL Type Name"
      naming rule.
    • Renames "Type Name" to "User-defined PL/SQL Type Name" in "Naming Rules Templates".
  • Call Tree and flowchart diagrams
    • Excludes performance consuming diagram detecting process if diagram generation is disabled.
    • Improved handling of Call Tree and flowchart diagram generation faults.
  • New Project/Import Wizard
    • New ability to filter the database tree by object name pattern at the Object Type level. "%" and "_" wild-cards are supported.
  • Code Metrics
    • "Code Analyzer Options" implements two models of contributing the number-of-comments parameter used in the Coleman-Oman regression model:
        • interpret COM as percent of lines of comment, ranging from 1 to 100 (enabled by default);
           or
        • interpret COM as a proportion of lines of comment, ranging from 0 to 1.
    • A "Comment Pct." value is displayed with "%" character.
  • Project Report Assistant
    • Ability to generate a ClearSQL Report for selected scripts in the Project Tree.
    • Rounds the "Comments %" column value of Code Metrics tables.
  • Export
    • Remembers the last folder used for export.
    • Does not allow the export of non-analyzed project/script.
  • CRUD matrices
    • New ability to filter the CRUD matrices by CREATE/READ/UPDATE/DELETE statements separately.
  • Summary Page
    • Tables with "Show Top [X]" excludes "Top 5" entry in the popup menu.
  • Code Review
    • Code Review items are re-ordered to correspond with the order in "Code Analyzer Options".
  • Connection Options
    • New option "Confirm script execution in the database", if enabled, prompts the user to execute the script in SQL*Plus.
  • System Information
    • Includes both PATH variables (System and Session) if they are different.

Bug fixes

  • Code Analyzer
    • Analysis of an empty script wrongly raised the "Autofix" and "Flagged Code Metrics" script analysis flags.
    • GLOBAL displayed incorrect Lines of code (LOC) when the script had no code out of the object scope. An issue with TYPE / TYPE BODY was caused by an exceeding line break before the ";" character and an empty line before CREATE OR REPLACE.
    • SQL*Plus statements might cause syntax errors.
    • "/" character that is typically presented after "END" of a stored program, was considered a statement in code metrics calculations.
    • No linefeed was added after "CREATE [OR REPLACE]" in TYPE specification.
    • "NATURAL JOIN" clause was partially supported.
    • "AT TIME ZONE" clause didn't support the second parameter as an expression.
    • "ANY" function did not work with a list of strings as parameters.
    • "PL/SQL Formatter" incorrectly handled empty lines between single-line comments. If an empty line was surrounded by two lines of single-line comments (one above and one below) then it would be removed by the Formatter.
    • Empty line(s) inside a multi-line comment considered empty lines of code (LOC).
    • The "EXIT" statement used outside of a "LOOP" statement caused a "TElStack is empty" error.
    • Raised unhandled exception on loading Graphical Engine on Windows Server 2003 and 2008.
  • Code Analyzer Options
    • "Linefeeds" options in the Comments page were treated as "Ensure Linefeeds" but still worked improperly.
  • Code Review
    • The "Exception not handled inside unit" code review rule was improperly implemented.
    • The "Code Review" list showed GLOBAL instead of "<package_name> (<object type>)" for the "Comment percentage is less than…" code review rule.
  • Code Metrics
    • The GLOBAL row wrongly displayed zero values when Code Metrics were grouped by Script or Object.
    • The "Analyzer View -> Code Metrics" tab displayed an incorrect value of "Maintainability Index" when grouping in the table was set to "By Script".
  • Analyzer View Pane
    • Double click on a grey or black node in the Call Tree/flowchart tree collapsed the diagram tree.
    • The "Diagram Export Wizard" was opened in Flowchart mode instead of Call Tree mode from the "All Call Trees -> Export Selection as Microsoft Visio Drawing" popup menu item.
    • The "Project Tree" was not filtered on clicking an "Errors" link in the "Errors and Alerts" pane.
    • The total number of built-in procedures/functions shown in the "Structure View" tab was incorrect.
  • Job Manager
    • Job execution might raise an error but the final confirmation window displayed a message about successful job completion.
    • "Run Job Now" raised an access violation error if the job had the following options "Auto-save", "Auto-close" and "Create ClearSQL Report" enabled.
  • Preferences
    • Did not hide the misleading "Export" page when the Preferences window was opened from the Main menu.
    • The "Code Metrics -> Sort by" table in the "Summary" page includes the missing code metric columns.
  • Summary Page
    • The "Don't show me again" option was ignored in the "Export finished successfully. Do you want to open file "File Name"" confirmation window.
    • Only first level items of Code Metrics were exported if the grouping was enabled.
  • Syntax Check
    • Clicking on an entry in the error line did not highlight the corresponding line in the editor after performing Syntax Check. An unexpected message box appeared.
  • Pseudocode
    • Pseudocode after the statement label wasn't supported if there was pseudocode before the label.
    • The same pseudocode was shown twice in the Pseudocode Flowchart if an "IF" statement contained the "ELSIF" condition.
    • Pseudocode for the unconditional "EXIT" statement replaced the pseudocode for the outer "IF" statement.
  • New Project / Import Wizard
    • The object name containing illegal characters was not enclosed in quotation marks on importing from a database.
    • Non-owning triggers were not listed in the wizard object tree if the current user had SELECT_CATALOG_ROLE role only.
    • Automatically included comments on importing a database object contained duplicated date-time stamp.
  • Call Tree Diagram
    • The generation of a Call Tree might raise an error that *.map file cannot be opened. This could be caused by locking the file after graphical engine crash.
  • Code Editor
    • Did not remember the editor state (cursor position, selection, scrollbars positions) on walking through different scripts.
  • Project Analysis History
    • Raised an access violation error on exporting data to MS Excel, CSV and XML formats.
  • Project Report Assistant
    • Removed the misleading prompt message on adding a ClearSQL report from the file system to the History List.
  • OSD ( = Online Support Desk)
    • Did not show the content of the located OSD message unless the user clicked on the found entry.

ClearSQL 6.5 (Release 8)

Jul 23, 2013

Improvements

  • Job Manager
    • Provides the ability to export Summary tables such as “Code Metrics”, “Parser Errors”, “Top Complex Objects”, etc. to MS Excel, HTML, XML and CSV formats on job execution. Export can be done at the “Script Level” and “Project Level”. Export to MS Excel enables the user to combine selected Summary tables in multiple sheets of an MS Excel file. Exported files contain a detailed log about the exported data such as: ClearSQL project name, export level, script name, script path, included tables, timestamp, etc.
  • Code Analyzer Options – Naming Rules Templates
    • Joins naming rule patterns by AND/OR and AND NOT/OR NOT relations.
    • Ability to define a “negative” pattern.
    • Enables/disables an individual pattern in a group.
    • Ability to define “Case sensitive” for an individual pattern.
    • Moves the pattern up and down.
    • “Check All/Uncheck All” patterns in a specific group or in all groups.
    • A pattern displays a tooltip with detailed information about the pattern.
  • Code Metrics
    • Improved calculation algorithms for “Maintainability Index” and “Cyclomatic Complexity”.
    • Export to MS Excel groups main metrics columns like in the “Code Metrics” table of the “Summary” tab.
    • Export to MS Excel and HTML applies the background colors of code metrics used in the “Code Metrics” table of the “Summary” tab.
  • Code Analyzer
    • Comments and blank lines in the script that do not belong to any object in the script (for example, comments added by “Code Analyzer” after the script analysis) are ignored now.
  • Code Analyzer Options – Code Review
    • Code review rules based on flagged code metrics are moved from the “Program Structure” group to the “Maintainability” group.
  • New Project and Import Wizard
    • New option “Object Owner in Script Content” allows to enable/disable including of the object owner to the extracted DDL of the imported object.
  • Code Review
    • Naming rule violation item displays a tooltip with detailed information about the violation.
  • Preferences
    • New page “Export” with export options.
    • New option “Include the script path” in the “Export” page controls if the script path should be included in the exported table, for example “Code Metrics”.
    • New option “Include export header” in the “Export” page controls if the export header with detailed information about exported data should be included in the exported file.
    • The "Open file in the external application after export" option was moved to the “Export” page.

Bug fixes

  • PL/SQL Analyzer
    • MEMBER OF operator with a nested table name enclosed in parentheses was not supported.
    • ORDINALITY token could not be used as an identifier.
    • The conditional INSERT clause was not fully supported: the column list might be omitted in the insert_into_clause.
  • Code Metrics
    • Displayed incorrect values for Oracle Forms & Libs when the metrics were grouped by object.
  • Code Analyzer Options
    • In some cases the configuration file “ClearSQL.ini” was blocked by Windows and ClearSQL could not save changes to it and raised the error “Unable to write to file”.
  • Online Support Desk (=OSD)
    • OSD Updater could fail on renaming of the ClearSQL program folder when installing a new version of ClearSQL.
    • Did not deliver a new license key on ClearSQL upgrade.
    • OSD information messages shown in the status bar were cut out.
    • Fast navigation between messages the list of messages raised an error.
    • Preview of the OSD message brought up the ClearSQL Main window and the OSD window was sent to the background.
  • Preferences
    • Raised an error “'30.12.1899' is not a valid date and time” on opening the “Unlock Key” page when the Date mask was 'dd.mmm.yyyy'.

ClearSQL 6.5 (Release 7)

Apr 29, 2013

Improvements

  • Core
    • Support for Oracle 9i Forms and PL/SQL libraries.
    • Improved export data to HTML, CSV, Excel and XML. Tabular data in ClearSQL can be exported to these formats. Hierarchical data (for example Code Review Tree) is exported to MS Excel as hierarchical.
    • Improved the “Maintainability Index” code metric calculation.
  • Job Manager
    • Ability to specify the user defined filename and path for ClearSQL Report.
    • Automatically postfixes the ClearSQL Report filename with a timestamp.
    • Ability to specify the user defined temporary project name in the “New Job” window.
    • Automatically opens the “ClearSQL Project Report Options” window on turning the “Create ClearSQL Report” option on.
    • Explicit paths in the job definition file change to Windows variable analogues.
    • Displays job creation and job modification date and time in the Job page.
  • Code Metrics
    • A new grouping feature - groups the Code Metrics table by subprogram/object/script.
    • Added a new column “Required Input Parameters” to the Code Metrics tables in “Analyzer View -> Code Metrics”, “Summary” and “ClearSQL Report”. It is used in the “Interface Complexity” metric calculation.
    • Support for Code Metrics at Oracle Form&Lib level.
    • Shows an Oracle Form&Lib as a standalone object when code metrics are grouped by object.
  • ClearSQL Project Report
    • The report title indicates if the report was generated by a job in “Based on database objects Temporary” mode.
    • Compatible with Internet Explorer 10.
    • Improved look&feel of the “Report Summary” page.
  • Project Tree
    • Displays Block and Item level triggers of Oracle Forms in separate folders.
    • Removed “N/A” status in the Project Tree for Oracle Forms and PL/SQL libraries.
  • Code Analyzer Options
    • Formatter: added the new option “1st level only” for the “General Layout -> Linefeeds -> Around a PL/SQL block”
    • Code Metrics Options: “?” buttons display descriptions for flagged code metrics.
  • Code Review Rules
    • Improved rationale description for rules: “Program Structure - The function interface complexity exceeds the specified maximum” and “Program Structure - The function parameter complexity exceeds the specified maximum”
  • Logon to DB
    • Raises a warning if 32bit Oracle Client 10g or lower is installed in a folder containing parentheses (Windows 64bit).
  • OSD Updater
    • New ability to check updates and update ClearSQL offline, from a Windows folder defined in Preferences.
  • Pseudocode
    • Does not treat “--##” as a pseudocode tag if the “Project Analysis -> Generate Pseudocode” setting is turned off.
  • Online Support Desk
    • The column “Sent” in the “Received” table was renamed to “Sent by TechSupport” and added the column “Received”.
  • Project Report Assistant
    • Added a popup menu to the “Generation Log” page.
  • GUI
    • Tooltip showing time duration was increased up to 5 seconds.

Bug fixes

  • Core
    • The “Project Tree” filter progress window didn't show the percentage of the process.
    • “Search in Project” saved the modified project.
  • PL/SQL Analyzer
    • REF token was not recognized properly before data type name in the VARYING ARRAY object type definition.
    • BINARY_FLOAT and BINARY_DOUBLE data types were not supported.
    • CROSS JOIN clause was not supported.
    • EXTRACT function did not support interval expression after FROM.
    • FIRST_VALUE and NEXT_VALUE functions were not supported.
    • SERIALLY_REUSABLE pragma was not supported.
    • OUTER JOIN clause was not supported.
    • PARALLEL_ENABLE with options was not supported.
    • PARALLEL_ENABLE and PIPELINED clauses might swap their positions in the code.
    • PIVOT and UNPIVOT clauses were not supported.
    • IN clause without parenthesizes was not supported.
    • SYSTIMESTAMP AT TIME ZONE DBTIMEZONE was not supported.
    • Statements having multiline string literals defined in alternative quoting mechanism were not supported.
    • Error logging clause was not supported.
    • INSERT without column list in MERGE was not supported.
    • Single expression without parenthesis in VALUES was not supported.
    • Two or more dots in the remote DB name/data type, procedure/function call was not supported.
    • Any order of HIERARHICAL_QUERY clause/GROUP_BY clause/HAVING condition in the statement was not supported. Oracle DB supports it but Oracle Documentation declares a static order of clauses.
    • Comma was missed in GROUP BY GROUPING SETS clause after analysis.
    • ESCAPE clause in a CASE expression was not supported.
    • AS without a column alias, for example SELECT 1 AS FROM DUAL. Oracle DB supports it but Oracle Documentation does not.
    • CASE..WHEN expression containing IN clause with a sub-query was not supported.
    • Parenthetical query_table_expression was not supported.
    • Complex varray reference in a WHERE clause condition was not supported.
    • References to collection types or indexed tables in an INTO clause was not supported.
    • RESTRICT_REFERENCES pragma in the beginning of the package was not supported.
    • BULK COLLECT INTO in a sub-query of a WITH clause was not supported.
    • DELETE FROM <table> RETURNING statement was not supported.
    • COLLECT aggregate function was not supported.
    • FLASHBACK_QUERY clause was not fully supported. Unlike declaration in Oracle Documentation, Oracle Database allows to execute query with both VERSIONS BETWEEN... and AS OF... clauses.
    • SAMPLE clause in SELECT statements was not supported.
    • Floating-Point conditions were not supported.
    • SET as a name of the subprogram was not supported.
    • EMPTY as a function name was not supported.
    • TYPE without attributes in parentheses was not supported.
    • XMLTABLE with XMLNAMESPACES was not supported.
    • XMLNAMESPACES without DEFAULT clause was not supported.
    • If an EXISTS clause was the last condition in a WHERE clause, then the UNION of the main query was parsed as the UNION for the EXISTS sub-query.
    • TRIGGER_ORDERING clause was not supported.
    • TRIGGER_EDITION clause was not supported.
    • LEAD and LAG functions were not supported.
    • ENABLE/DISABLE in CREATE TRIGGER clause were not supported.
    • AUTO token in the PREDICTION function was not supported.
    • A parenthesized parameter of ESCAPE clause was not supported.
    • Tokens in the “Expecting” column could be incorrect.
    • Hint comment was placed into a wrong position if it was followed by other comment.
    • The column name might be wrongly specified in parentheses on the left side of the assignment of the SET clause of the UPDATE statement if the right side was an expression.
    • WHERE condition with a long BETWEEN clause was formatted incorrectly.
    • CREATE TRIGGER/TYPE/TYPE BODY statements could not be combined with CREATE FUNCTION/PROCEDURE/PACKAGE/PACKAGE BODY statements in one script.
    • The schema name in a library name of the type method external declaration was not supported.
    • The first identifier was missed in the formatted text in the external subroutine parameter declaration, in parameters like <ident> INDICATOR <ident>.
    • Formatting of the external subroutine parameters was incorrect in WRAPPED mode: there was no line break even if the number of parameters was large.
    • Comments starting with “--###” were wrongly treated as pseudocode comments.
    • Analysis of a trigger might cause an Access Violation error if the “Linefeed around PL/SQL block” setting was enabled.
    • “/” statement delimiter was not supported.
  • Job Manager
    • Did not select the appropriate node in the Jobs/Schedules tree on activating the Job tab.
    • Did not remove a temporary project generated by a job in “Based on database objects Temporary” mode after completing job execution.
    • The "Show report after generation" option of ClearSQL Report Options was disabled on job creating or editing.
    • The "Months" value of Scheduler was not saved into the job.
    • “Ctrl+Click” on a schema/data type folder that was checked did not select it “as folder”.
  • ClearSQL Project Report
    • The script node icon was shown as the folder icon when the “Open report with expanded project tree” option was turned off.
    • Sometimes after applying a filter not all relevant scripts were shown in the “Project Tree”.
    • Project Summary: links of Code Review values disappeared.
  • Project Summary
    • The “Parser Errors” and “Code Metrics per Subprogram” tables were sorted incorrectly when they were sorting by the “Subprogram or Script” column.
    • Export of the “Code Metrics per Subprogram” table failed when the table was sorted by the “Subprogram” column.
    • An “Access Violation” error occurred on deleting a script if it was locked in the “Summary” tab.
    • The applied filter was not removed when going back to the “Summary” page if the filter was set from the “Diagrams” or “Alerts” or “Folders, Scripts, Script Statuses” panels and the “Summary” page was locked.
  • PL/SQL Formatter
    • Some of the “General Layout -> Linefeeds” options worked improperly.
    • If a cursor declaration goes after the variable declaration then they were always separated by the empty line even if all linefeed options were off. The same was for the empty line between all variable declarations and the BEGIN token.
  • Call Tree
    • The INSERT relation was wrongly shown as a SUBROUTINE call.
  • Export Flowchart
    • Wrongly used the global flowchart settings even if the user regenerated the flowchart with different local settings.
  • Instrumented Code
    • Instrumented code wasn't applied for a subroutine when not all sub-nodes of the subroutine were checked.
  • Script Editor
    • Multiline string literals entered in alternative quoting mechanism were highlighted incorrectly.
  • Code Analyzer Options
    • Naming Rules templates for subprograms worked improperly when “Case Insensitive” option was turned off and the pattern was typed in lower case characters.
  • CRUD 2 type matrix
    • The “Stored Object” column was empty for triggers.
  • Project Tree
    • Enabled the drag&drop feature and shown the appropriated cursor for folders that can't be moved.

ClearSQL 6.5 (Release 2)

Oct 11, 2012

Enhancements and improvements

  • NEW feature PSEUDOCODE
    Pseudocode is a compact and informal language for high-level description of algorithms. Pseudocode is a type of structured english used for describing algorithms that allows the designer to focus on the logic of the algorithm without being distracted by the details of language syntax. The reason for using Pseudocode is that it is easier for people to understand than conventional programming language code, as it is an efficient and environment-independent description of the key principles of an algorithm. It is commonly used in textbooks and scientific publications for documenting various algorithms, and in the planning of computer program development, for sketching out the structure of the program before the actual coding takes place. In ClearSQL it uses the structural conventions of the PL/SQL language, but is intended for human reading rather than machine reading. Pseudocode in ClearSQL is based on writing comments above code lines. After entering Pseudocode comments to your code, re-analyze the script to generate and view your Pseudocode.
  • Core
    • New script attributes: “Flagged Code Metrics” and “Pseudocode”. They are shown in the graphical representation of “Parser Status” as 3d and 4th bullets. New “Flagged Code Metrics” and “Pseudocode” filters filter the “Project Tree” to display scripts with critical flagged code metrics and “Pseudocode”.
    • Ability to generate an individual “Project Analysis Log” file for each project separately. Options to limit “Project Analysis Log” by number of files or by file size. Ability to erase log content on new analysis.
    • Checks for a valid 32bit Oracle Client on logon to a database and raises a warning message if no 32bit Oracle Client is found.
    • The previous version of the “ClearSQL 6 Demo Project” is backed up and replaced by a new version when it's delivered by “OSD Updater”.
    • Shows a warning message if the file name length exceeds MS Windows limitation on creating new project or renaming project or creating project report.
    • Supports for the “MS Windows” font drawing feature “ClearType”.
    • On first run transparently renames the user application folder and registry entry from “ClearSQL 5” to “ClearSQL”.
    • Ability to make a copy of the Demo Project in Trial mode.
    • Improved usage of CPU and Memory and several memory leaks fixed.
  • Main Window
    • Prompts the user to change the “Stacked” formatting option to “Wrapped” if at least one setting with such an option is set (for example “List and Operators -> Parameters”) was found in the “Code Analyzer Options”.
    • The “Main Toolbar” buttons are re-ordered and new buttons are included as well.
    • Allows saving the active workspace with a new name. The corresponding button is added to the “Workspace” group of the Main Toolbar.
    • The “Export -> Export Project to Project Backup” menu item of the Main Menu renamed to “Backup -> Create”.
    • The “Import -> Import Project from Project Backup” menu item of the Main Menu renamed to “Backup -> Restore”.
    • Added a new menu item “Backup -> Create and Send by Email” to the “Main Menu” to create a backup of the ClearSQL project and send it (ZIP) by email.
    • Popup menu added to the “Analyzer View” tabs' description panes.
    • The Demo Project renamed to “ClearSQL 6 Demo Project v<N>”, where <N> is the demo project’s version number. The Demo Project comes with analyzed scripts (except one excluded by intention to show a script with status “New”) and includes diagrams and CRUD matrices.
    • Selection of a script in the “Project Tree” with “Error” status highlights the first error in the “Errors” list and selects the corresponding line of code in the “Script Editor”.
    • Improved “Filter by Code Review” GUI .
    • Improved diagrams and CRUD matrix toolbars. All diagram options are included in the dropdown menu of the new “Options” button. Change of any option, for example “Show Header”, automatically re-generates the diagram for the change to take effect.
    • The “Filters”, “Call Tree” and “Flowchart” toolbars are now scrollable.
    • Better adjusts the application controls sizes and positions on the first application start on 1024x768 screen resolution.
    • Improved look&feel and content of the main status bar.
  • Code Metrics
    • Declares four main metrics: “Cyclomatic Complexity”, “Maintainability Index”, “Halsted Volume” and “Interface Complexity”. Metrics that are used in calculation of “Maintainability Index”, “Halsted Volume” and “Interface Complexity” metrics are displayed in the table as sub-metrics and are hidden by default. The “Expand/Collapse” button in the main metric column shows/hides its sub-metrics. The “Help” button in the metric column opens the description of the metric and its formula, if any. Other metrics are part of the “Misc” column.
    • Draws a red flag when the “Cyclomatic Complexity” or “Halsted Volume” or “Interface Complexity” metric value is higher or the “Maintainability Index” metric is lower than the value defined in the “Code Metrics Options” page of “Code Analyzer Options”.
    • Filters the metrics by “flagged”, “non-flagged” values.
    • Exports “Code Metrics” results of the selected script (the “Script Editor and Analysis Info -> Code Metrics” page) to CSV and HTML formats.
    • Improved calculation of “Maintainability Index”.
    • Ability to specify visibility and expanded/collapsed state of metrics columns.
    • The grid columns are re-ordered and the table is sorted by “Cyclomatic Complexity” column, by default.
    • Ability to sort the table by multiple columns; resets sorting to default.
    • Prefixes export file name with the subprogram name.
    • “V(g)” column name is renamed to “Cyclomatic Complexity”.
    • “Volume” column name is renamed to “Halstead Volume”
  • Code Analyzer Options -> Code Review Options -> Naming Rules Templates
    • New group “Dataset Object Name (table/view/synonym)" in DML statements” specifies naming rule templates for tables, views and synonyms used in DML statements.
    • New group “Sequence Name” - specifies naming rule templates for sequences.
    • Ability to specify “Scope” and “Data Type” for an “Identifier” naming rule template.
    • Ability to specify “Mode (IN/OUT/IN OUT)” and “Data Type” for a “Parameter Name” naming rule template.
    • Ability to enable the “Case Insensitive” option.
    • Saves/Loads templates to/from a flat file.
    • Dual template pattern definition mode: “Simple Mode” and “Regular Expression Mode”. “Simple Mode” provides the user with a simple and convenient way to enter the pattern. Recommended for users who are not familiar with the “Regular Expression” syntax. “Regular Expression Mode” gives the full freedom and power of the “Regular Expression” syntax.
    • Sorts templates alphabetically. “Scope/Data Type/Mode” specific templates are shown after non-specific templates.
    • New popup menu items to operate with the template list: “Expand All”, “Collapse All”, “Check All”, “Uncheck All”, “Reset Patterns to Default”.
  • Project Report Assistant
    • New “Templates” feature allows to create unlimited set of user defined templates storing report options such as “Report Description” , “Report File Options”, “Code Audit Options”, “Summary Options”, “Filter Options” and “Sorting Options”. User defined templates with detailed information are shown on the Templates tab. The “View Template” feature displays content of the selected template.
    • New “Filter Options” feature defines filter conditions for filtering the “Report Tree” and “Report Content”.
    • New “Sorting Options” feature defines sorting condition for sorting the “Report Tree”.
    • New features “Compress Selection to ...” and “Compress Selection and Send by Email....” in the “Report History” List.
    • Re-ordered the “Report History” table columns. Default sorting by the “Creation Time” column.
    • The “Summary Options” tab adds new settings such as “Top 5”, “Top 10”, etc. for limitation data shown in the summary tables.
    • Added a popup menu with features “Select All” and “Select None” to the Pane list of the “Summary Options” tab.
    • The “Generation Log” tab shows the full path (hierarchical structure of the project tree) of the script included in the Report.
    • The "Generation log" tab is always enabled. If report generation has not started, the log window displays "No log information available. Report generation has not started yet!".
    • Displays a warning message on report generation start if the project contains scripts with “Modified” status.
    • New option to include/exclude “Report Observations” in/from the report.
    • Dramatically re-designed GUI and look&feel.
  • Project Report
    • New optional “Report Observations” section added. The “Report Observations” highlights the scripts with Parser and DB errors and alerts (Code Review and Autofix issues and flagged Code Metrics) as well as modified, skipped and never analyzed scripts. It helps to quickly identify stored object source code that requires user attention.
    • New “Filter” feature filters the content of the “Report Tree” by Script statuses and analysis content. The filter button located on the “Report Tree” toolbar shows a tooltip with the applied filter condition.
    • Figures shown in the “Report Summary” and “Project Summary” pages have direct links to the corresponding pages of “Report Observations”.
    • Filters the “Report Tree” on clicking the figures such as “Errors”, “Alerts”, “Flowcharts”, “Call Trees”, etc. of the “Report Summary” and “Project Summary” pages.
    • Improved content and layout of the “Report Summary” and “Project Summary” pages.
    • New links “Previous”, “Next” in the report content for easy report history navigation.
    • New “Up” and “Down” buttons to easily walk throw the Navigation Tree.
    • Improved text layout in the “Project Summary” page tables.
    • Improved header of the script content page.
    • Clicking on a link in the report content page jumps to the corresponding page and selects its node in the “Report Tree”.
    • Fine-tuned look&feel of the “Report Header”.
    • The “Report Summary” page shows the used “Report Template”.
    • The “Report Summary” page includes “CRUD2” matrix information.
    • The “Project Summary” page includes the “Parser Errors” table listing all scripts and their errors with details.
    • “CRUD2 Type Matrix”, “Flowchart” and “Call Tree” pages. “Show all” highlights all records in the “Data Object” and “Subroutine” tables accordingly.
    • Does not generate links for zero values of the “Report Summary” and “Project Summary” pages.
    • New “Show legend” checkboxes in the Flowchart, CRUD1 and CRUD2 pages.
    • New look&feel of the page title.
  • Job and Schedule Manager
    • “Ctrl+Click” on a checkbox of the “Database Object Tree” selects/unselects a tree node (DB/Schema/Object Type) with its hierarchical content. It allows the user to include all database objects of the selected node without selecting individual objects. The job will always analyze the actual set of database objects.
    • New “PC power off” option added. If enabled, ClearSQL shuts down the PC after job completion.
    • New “Run Job Now” feature starts the execution of the job immediately.
    • Displays the number of select database objects/folders in the “Database Object Tree”.
    • Re-designed GUI and look&feel of the “New Job” window.
    • A schedule does not allow the selection of date&time from the past.
    • Automatically adds 30 mins to Start Time on schedule creation.
    • New “Select all/none months” and “Select all/none days” features in the “Months” and “Days” dropdowns of the “Monthly” trigger.
    • Improved “Job Objects Validation Report” content
    • The “Apply All” and “Apply Current” buttons renamed to “Save All” and “Save Current” accordingly.
    • Several options' captions renamed to better describe them.
    • Allows the resizing of the columns of the job list.
  • Summary Page
    • New “Parser Errors” table added. It shows Parser errors in scripts at script, folder or project levels. Its popup menu allows the user to jump to the selected script with errors in the “Project Tree”; print and export to “HTML" “CSV” and “MS Excel” formats.
    • Exports tables to “MS Excel” and XML formats.
    • Includes “CRUD2” figures in the “Diagrams” table.
    • New column “Script Count” in the “Top Violated Rules” table.
    • Popup menu items renamed for better understanding of the features.
    • The “Code Metrics” table shows the grid.
  • Code Analyzer Options
    • “Diagram Options -> Flowcharts” page. New color settings (text, background, border) for all types of flowchart blocks and arrows.
    • “Diagram Options -> Flowcharts” page. New flowchart complexity limitation settings to limit maximum number of blocks in the flowchart or not to generate the flowchart if it exceeds the specified limitation.
    • “Diagram Options -> Case -> Identifiers” page. The "Templates" tab was moved into a standalone page as a sub-node “Naming Rules Templates” of “Code Review Options”.
    • Code Metrics options are split into two groups: “Flagged code metrics” and “Non-flagged code metrics”. The “Flagged code metrics” group specifies the settings for the most critical code metrics. Code metrics positions re-ordered. Displays brief description text about the red flag.
    • Added new “Minimum Maintainability Index” and “Maximum Halstead Volume” flagged Code Metrics options to the “Code Metrics Options” page.
    • Added new “The Maintainability Index is lower than the specified minimum” and “The Halstead Volume exceeds the specified maximum” Code Review items to the “Code Review Options” page.
    • The “SQL Complexity Measurement” options is replaced by two options: “PL/SQL Complexity Measurement” and “PL/SQL and SQL Complexity Measurement”.
    • “Expand All/Collapse All” features added to the popup menu of the “Navigation Tree”.
    • Context sensitive navigation – opens the page with the settings of the feature that called it.
    • Formatting settings such as “List and Operators -> Parameters” have “Stacked” and “Wrapped” options set “Wrapped” as default option.
    • By default the Call Tree’s “Call Level” option is set to 3.
  • Preferences
    • New settings for date and time formatting in the “General” page.
    • Enables the “Use Proxy Server” option if it's enabled in “MS Internet Explorer”
    • “Expand All” and “Collapse All” menu items added to the “Page Navigator's” popup menu.
    • Hides no job specific options when “Preferences” is opened from “Job and Schedule Manager”.
    • Displays description text in the “Main Window” page.
    • Displays the path of the selected node in the page's title.
    • The “Display the script analysis details above the editor” option moved to the “Main Window” page.
    • Added “Top 50” and “Top 100” options for all “Top” filter related tables in the “General -> Main Window -> Summary” page.
    • The “Project Location Folder” renamed to “Default Project Location Folder” in the “General” page.
    • “OSD - Updates and Messages” page renamed to “OSD - checking Updates and Messages”.
  • OSD (=Online Support Desk)
    • Re-designed GUI and look&feel of the “OSD - New Message” window.
    • Added a new column “Folder” to the list of OSD messages. It displays the folder name where the OSD message is located.
    • Remembers the widths of columns of the OSD message list.
    • Always creates a backup copy of the new license key delivered by “OSD Updater”.
    • Added a button to open “Preferences” to the warning message about wrong “Internet Settings”.
    • Added a button to open “Preferences” to the updating error message window.
    • “DEL” shortcut key removes the selected attachment file.
  • Flowchart
    • Generates a flowchart for Pseudocode.
    • Clicking on a flowchart's block displays the popup menu to edit Pseudocode and enable/disable appearance of the popup menu.
    • Improved handling of line breaks in the flowchart hints.
    • Excludes odd “NO_PACKAGE” package name from the trigger and object type name.
    • Selects the first item of the Subroutines list on “Flowchart” page.
  • Call Tree Diagram
    • New options to include to a Call Tree diagram either “called and calling objects” or “called objects only” or “calling objects only”.
    • Selects the first item of the Subroutines list on “Call Tree” page.
  • Code Review
    • Displays the violated template group name in the “Readability -> Name Template Violation” item.
    • Displays how many Code Review rules were included in the analysis and how many of them are violated.
    • New “Issues” column displays the number of elements in the “Code Review” group.
  • Analysis History
    • Added new groups: “Maintainability Index”, “Halstead Volume” and “Interface Complexity”.
    • Added new “Flagged Code Metrics” item into the “Alerts” group.
    • The groups are re-ordered.
  • Summary page
    • The “Summary” page is unlocked by default.
    • The “Code Metrics” and “Top Violated Code review” tables are swapped.
    • Improved look&feel of titles of summary tables exported to MS Excel.
  • Export Wizard
    • Exports pseudocode flowcharts.
  • Find in Project
    • Searches for text in the project by “Occurrence”, “Regular Expression” and “Wildcard” methods. Provides brief description of each search method.
  • Project Analysis History
    • Improved content and look&feel of export to HTML.
  • Project Analysis History Report
    • Includes “Flagged Code Metrics” and “Pseudocode”.
    • Improved content and look&feel.
  • System Environment
    • Includes “PERSONAL”, “PATH”, “Oracle Home”, “TNS_ADMIN” and “NLS_LANG” variables.
    • Includes the license key file name with the full path.
  • About Window
    • Improved GUI and look&feel. Displays “AMS” (=Annual Maintenance & Support) information and the total licensed and currently running number of ClearSQL instances.

Bug fixes:

  • Core
    • Could raise the "The process cannot access the file because it is being used by another process" error during the analysis process.
    • Clicks on the “Summary” page after analysis could raise an “Access Violation” error.
    • Could raise an “Access Violation” error.
    • ClearSQL could not run on Windows Server 2003/Windows XP 64bit if the DEPT option was not enabled.
    • Some dual monitor related issues fixed.
    • The “Prompt on replace” option did not work for “Replace” and “Replace All”.
    • Call Tree and CRUD2 diagrams were not deleted on analysis with options “Delete Diagram/Matrix”.
  • PL/SQL Parser and Formatter
    • The "blank lines" metric value was incorrect for package subprograms because the start and the end of the subprogram were calculated incorrectly.
    • The first line of multiline comments “/*” was falsely counted as a comment line and as a “LOC” code metric.
    • Did not support for “XMLATTRIBUTES” and “XMLFOREST” functions with no input parameters.
    • Did not support the “TREAT” function.
    • Did not support the “OVER” function in conjunction with “COUNT (N)”.
    • Did not support “SET TRANSACTION” with the “name” parameter.
    • Did not support the “PIPE ROW” function.
    • Did not support date literals formatted “’2012-07-07”.
    • Did not support multiple and duplicate labels.
    • Did not support “c” as a table alias.
    • Did not support “COLUMNS” as a field name.
    • A space between “DELETE” and “OF” was removed after applying an “Autofix” for the statements like “CREATE OR REPLACE TRIGGER <TRIGGER_NAME AFTER INSERT OR UPDATE OR DELETE OF <OBJECT_NAME>”.
    • Round brackets were duplicated in the “GROUP BY” statement after applying an “Autofix”.
    • Could raise an “Access Violation” error during the analysis process.
    • Raised a Parser error if “MAXVALUE” was used as a field or variable name.
    • The “SQL Statements (simple examples)” script of the “Demo” project wrongly raised a Parser error.
    • Formatting generated wrong indent when the statement used many CASE expressions.
    • Formatting removed “MERGE” statement if it contained both “WHEN NOT MATCHED” and “WHEN MATCHED” clauses.
    • Wrongly issued the “Initialization to NULL is superfluous” warning for procedures/functions parameters.
    • The “Max number of RETURN statements” value of the “Procedure/Function Analysis” group in the “Structure View” page did not include “RETURN” statements of all levels.
    • If a function had more than one line of parameters then “Max number of RETURN statements” displayed the last parameter's line instead of the function name and also wrongly located that line of code in the “Script Editor”.
    • The “RETURN” statement of exception block was not added to the number of “Max number of RETURN statements”.
    • “CASE” expression in SQL was incorrectly formatted: there was no indent, no line break if “CASE” was not the first column.
    • “ORDER BY” list in the “Wrapped” style never was broken into several lines even if it was much longer than the right margin.
    • Sub-query in the “IN” expression did not begin from the new line.
    • Could raise the “List index out of bounds” error.
    • Source code line numbers for parameters were incorrect in “Code Review -> Unreferenced parameters” item.
    • ClearSQL could hang on analysis of huge scripts.
  • Job and Schedule Manager
    • The “Apply” button of “Code Analyzer Options” was not disabled after applying the changes when “Code Analyzer Options” was opened from “Job and Schedule Manager”.
    • Oracle Forms's “Canvas” objects excluded from the Project Tree.
    • Preferences specified for a job were ignored on execution.
    • “Save All” could raise an “Access Violation” error.
    • The “Auto-save” option did not work properly when the project included Oracle Forms.
    • A specific Oracle Home defined for a job based on database objects was ignored.
    • The “Check All” feature of the popup menu of the Database Object Tree raised the "Not logged on" error when there was no connection to the database.
    • A generated project report was removed on job completion if the job was “Temporary”.
    • ClearSQL raised an “Access Violation” error on activation when the job was executing and the application was run in hidden mode. Additionally, an OSD message with the error could not be sent.
    • Defined job specific “Code Analyzer” options were ignored on execution.
    • Could not load a different “Code Analyzer Options” file.
    • Job deletion did not delete schedules from the “MS Windows” schedule list.
  • Project Report
    • CRUD2 matrices were missing in the report.
    • “Oracle Forms & Libs” were not included in the report.
    • The “Summary” page panels were incorrectly positioned when “Analyzer View Summary” was scrolled down and the report option "Summary -> Panels size and position" was set to “As in the Summary page”.
    • The “Code Metrics per Subprogram” table's horizontal scrollbar was omitted.
  • OSD (=Online Support Desk)
    • The maximized state of the “OSD” window was discarded after sending an OSD message.
    • Could not minimize the “OSD” window multiple times once.
    • The “OSD Updater's” message "All modules installed on your PC are up to date" hid the “OSD” window sending it to background of the “Main” window.
  • Code Review
    • Wrongly generated the “Elements in SELECT list ... not qualified by table name” warning for oracle built-in keywords such as “SYSDATE”, “LEVEL” and “USER”.
    • Did not generate the “Elements in SELECT list ... not qualified by table name” warning for the second and following columns of the select statement if “WRAPPED” style was set for the columns and the columns were fit in a single line.
  • Import Wizard
    • Could not import files except “Oracle Forms & Libs” files after using the previous version of ClearSQL 5.6.
    • The “Show All Files” filter option was not remembered on close.
  • Preferences
    • The selected node of the “Navigation Tree” was displayed with incorrect color on non-themed “MS Windows”.
    • The font button in the “Main Window -> Editor -> Display -> Font" page did not open the “Font Selection” dialog.
  • Call Tree
    • The “Show legend” option was missing in a Call Tree diagram.
    • There was odd “NO_PACKAGE” package name in the trigger and object type name.
    • Dataset objects were not remembered in the list of excluded objects.
  • Flowchart
    • In some cases space characters might be missing in the multiline conditional flowchart blocks and tokens were shown too glued.
  • CRUD2 Type Matrix
    • Nodes of the “CRUD2 Object Tree” were shown in grey when no Call Tree for the object was generated.
    • “Delete Matrix” mode did not delete the previously generated CRUD2 matrices.
  • Code Metrics
    • The “Program Vocabulary” value was calculated incorrectly.
    • Navigation from the “GLOBAL” item to the corresponding line of code in the “Script Editor” didn't work.
  • Project Tree
    • If a folder node was never expanded, its scripts had incorrect status circles.
    • The “pink” background color that is set on filtering the Project tree was not removed on closing the project or opening another project.
    • The “Project Tree” did not show the “Parser Status” tool-tip window for Oracle forms&libs.
  • Project Backup
    • Did not save and restore the backup folder for later usage.

ClearSQL 6.0 (Release 2)

Oct 17, 2011

New features

  • Support for Oracle Forms&PL/SQL libraries versions 6 - 10!
    Import Oracle forms and PL/SQL libraries into a ClearSQL project and analyze, format, fix and illustrate their PL/SQL code. Drill down the project tree to discover the content of forms&libraries such as Blocks, Program Units, Triggers as well as graphically shown canvases.
  • Discover Analysis summary at ClearSQL project, folder and script levels!
    Select the project root node in the Project Tree and take a look at the Summary page to discover the most important analysis information shown graphically as pies, bars and grids at a project level. Drill down the project folders/scripts to see a “Summary” at a folder/script level. The Summary page displays: a number of folders and scripts and their statuses (“OK”, “Error”); a number of CRUD, Flowchart and Call Tree diagrams; a total number of lines of code and comments; a total value of cyclomatic complexity as well as groupings by method/class/script; a list of top complex objects; a list of Code Metrics per method and more. The Summary page layout is fully customizable and its contents can be easily exported to HTML or printed out.
  • Track and compare changes to the project content and analysis information!
    Each analysis creates a new “snapshot” storing a full “picture” about the project content and script analysis values in categories such as: a number of folders and scripts and their statuses (“OK”, “Error”, “Skipped”); a number of CRUD, Flowchart and Call Tree diagrams; a number of alerts such as errors, autofixes, etc.; a number of lines of code, comments and blank lines; etc. The “Analysis History” page displays analysis “snapshots” indicating the negative or positive direction of the value change. Select one or more categories to draw diagrams of changes to analysis values. Analysis history content can be easily exported to HTML or CSV formats.
  • Automated project and database analysis!
    Automate analysis of ClearSQL projects via its scheduled jobs, third party schedulers or the Windows Command Line. Create a job for analysis of an existing project or a selection of online database objects and schedule it either in ClearSQL by creating one or more integrated schedules or save the job as a batch file and schedule it in a third party scheduler. Each job is fully customizable in terms of analysis, GUI and Code Analyzer options and allows the generation of a ClearSQL report.
  • Analyzer View splits diagrams and analysis data at project and script levels!
    The Analyzer View pane is intended for displaying analysis information (code metrics, code review, autofixes, structure view), flowcharts, Call Tree diagrams, CRUD matrices and analysis history and gives access to their features. Flowcharts, Call Tree diagrams and analysis history are scalable at project and script levels. For ease of use and for focusing on a specific information layer, the new GUI of Analyze View splits the project, script diagrams and analysis history into different panes and tabs.
  • Active workspace!
    Active workspace enables the full blown customization of the position, size and visibility of ClearSQL GUI elements. Customize and save individually named workspaces for specific projects and easily switch between them. A single click resets the active workspace to default, if needed.

Other significant enhancements and improvements:

  • Project Report Assistant includes the new optional "Summary" page at the project, folder and script levels showing a number of folders and scripts and their statuses (“OK”, “Error”); a number of CRUD, Flowchart and Call Tree diagrams; a total number of lines of code and comments; a total value of cyclomatic complexity as well as groupings by method/class/script; a list of top complex objects; a list of Code Metrics per method and more.
  • New easy to use tree-like page navigator displays the application, analysis, report, SQL*Plus, Oracle Forms, etc. options hierarchically, accelerating navigation between pages, simplifying the process of looking for options and gives the user a complete understanding of ClearSQL features and their settings.
  • New ability to filter the Project Tree by Code Review group.
  • The Structure View tree displays sub-items values summary at the top level.
  • The Code Review tree displays values for the following categories: The function interface complexity exceeds the specified maximum; the function parameter complexity exceeds the specified maximum; the functional complexity metric exceeds the specified maximum; the eLOC within a function exceeds the specified maximum; and function comment percentage is less than the specified minimum.
  • New Project and Import Wizard tools provide features to open and view the selected file in a linked external application.
  • Reordered and resized Main status bar panels with optimized look&feel.
  • "Delete project/script" feature changes its caption on the fly depending on project tree selection
  • The state of long running processes such as Project Analysis, Import Scripts/DB Objects, Create New Project, etc. displayed in the progress window is also shown in the Windows 7 Taskbar.
  • A number of PL/SQL Analyzer and GUI bugs fixed.

ClearSQL 5.6 (Release 1)

Jul 01, 2010

New features

  • New PL/SQL Parser architecture
    This new powerful PL/SQL Analyzer (Parser) architecture supports up to 99% of documented SQL and PL/SQL keywords and reserved words.
  • New Project Contents Export
    Export and Import a project with its contents (optionally including diagrams and matrices) as a flat zipped file with an ability to send it by email for simplified sharing of multi-file projects between users.
  • New Project Diagram Export
    This new utility exports single or multiple ClearSQL project flowcharts and Call Tree diagrams into image (GIF, PNG and JPEG), MS Visio Drawing "vdx" and HTML formats with the ability to keep the diagram tree structure in the target Windows folder.
  • New Code Editor
    More powerful, faster and more feature rich with an advanced syntax highlighter that provides a wide set of editing, margin, gutter and printing options.
  • New Graphic Engine
    This new and significantly improved graphical engine generates Flowchart and Call Tree diagrams and CRUD matrices faster and more accurately.
  • New Code Explorer
    An embedded Code Editor feature that displays detailed information about a package's components, such as subroutines, variables and parameters, their types and structure. Code Explorer helps make your work with stored programs more efficient and error-free.
  • New Code Folding
    An embedded Code Editor feature that selectively collapses (hides) and expands (shows) sections of SQL and Pl/SQL code to make it easier to navigate and read. Handle large areas of complex code within one editor, while viewing only the desired sections of code during a particular editing session.
  • New Code Insight
    An embedded Code Editor feature that displays a list of matching symbols (variables, parameters, procedures, types, etc.) in the current scope when you start typing in an identifier in the Code Editor.
  • New Toolbar Customizer
    Easily customize the visibility and position of toolbar buttons of any toolbar by using the Toolbar Customizer.

Other significant enhancements and improvements:

  • Export PL/SQL code flowcharts and Call Tree diagrams into MS Visio Drawing "vdx" file format (Visio XML Drawing). Exported flowcharts and diagrams can be displayed or edited in MS Visio or displayed in MS Visio viewers supporting the "vdx" file format.
  • New "Statistics" tab of the "Project Tree" shows the previous project analysis information and opens an HTML report of all analysis performed on the project.
  • Generates CRUD matrices and Call Tree diagrams for anonymous blocks.
  • Support for SQL*Plus substitution variables. The application scans code on code analysis and replaces substituted variables by values defined on the "Subst Variables" tab.
  • New connection setting «DB type» helps users organize their DB connections in groups; e.g. DEVELOPMENT, PRODUCTION, TEST and others. Assigns background and foreground colors to easily identify them. e.g. a mission critical database.
  • New setting in Preferences to select a SQL*Plus executable file with an ability to define the startup command file and its parameters.
  • New options in Preferences to define fonts for diagram/matrix headers and legends.
  • Code Versioning stores and displays the ClearSQL version used for analysis of a certain version of code in the Versions tab.
  • Logs on to a database by using LDAP and Direct type connections.
  • Ability to rename open projects.
  • Added an ability to change the External browser to view diagrams and reports.
  • "Run selected text as command file" feature added to the Editor
  • "Emit SHOW ERRORS command" feature works directly without using the Clipboard contents.
  • Attaches copies of Code Analyzer Options settings and EurekaLog (exception and memory leak report)files to an OSD (Online Support Desk) message.
  • Displays the Password Change dialog on password change errors (ORA-28001, ORA-28002).
  • OCI reloads only when the new session logs on to the database under a new Oracle Home.
  • Added a popup menu for the Editor's gutter.
  • Collapse All/Expand All features added to the Editor's popup menu.
  • A number of GUI and PL/SQL Parser bug fixes.

ClearSQL 5.0 (Release 1)

Oct 09, 2009
New tools and features
  • New Project Wizard - creates a new ClearSQL project and imports files/scripts or database objects stored in an Oracle database.
  • Analyzer Progress – controls the process flow of project analysis; specifies the analysis settings and displays detailed information about script parser status such as: OK, Error, Skipped; and script attributes such as: Autofix, Code Review, CRUD1 matrix, Flowchart and Call Tree diagrams and analysis and matrix/diagram generation flow statistics.
  • Project Report Assistant - generates a detailed, easy to navigate and flexible to configure HTML report for a ClearSQL project including parser status, analysis information, flowchart and Call Tree diagrams, CRUD1 and CRUD2 matrices.
  • Import Wizard – imports files from the file system and/or Oracle database stored objects as project scripts into a ClearSQL project.
  • Export Wizard – exports project scripts with a variety options into the file system as files.
  • CRUD matrices - a CRUD (Create, Read, Update, Delete) matrix is the perfect aid to analyze the consistency of functional requirements and to identify performance problems. CRUD incorporates two matrix types: "Script Level" CRUD1 type matrix and "Project Level" CRUD2 type matrix to illustrate the relationships between processes and the data they use. Both CRUD matrix types are fully clickable.

    Remark: "clickable" = loads the source code and highlights the relevant line of code

  • Project Tree Manager - filters and sorts the project scripts by a variety of predefined filters and sorting rules; also displays script properties and legend.
  • New Parser Statuses
    • "New" status indicates that the script has not been analyzed yet, no analysis information available;
    • "Skipped" status indicates that the script contains non supported code/content and was skipped
      by the parser;
    • "Modified" status indicates that the script was modified and not re-analyzed. The previously generated analysis information is available to view but may be inconsistent.
  • Autofix Manager – detects, displays and applies autofixes - best practice recommendations that can be automatically fixed to improve code readability.
  • Welcome window – provides easy ways to: open a recent project or a project from file system; create a new project; and display the license owner and brief product information.
  • Import/Convert Projects – converts and imports ClearSQL 4.3 and older projects to a new powerful and more rapid access ClearSQL 5.0 project format.
  • Parser Status – in the Project Tree, represents a colored status, as colored circles, of the script and its attributes such as: Autofix, Code Review, CRUD1 matrix, Flowchart and Call Tree diagrams. Additionally, its tooltip window explains the script status and attributes in detail.
  • Online Support Desk (=OSD) – communicates with Conquest Software Solutions Technical Support and keeps ClearSQL up-to-date with its auto-update feature.
  • Database Connection window - provides easier connection to a database- displays a connection history list and connection settings.
  • Close Project - closes the active project.
  • Remove Project from recent - removes the active project from the recent project list.
Improvements
  • Dramatically improved Parser/Analyzer performance.
  • New Flowchart and Call Tree diagrams creation, validation and handling.
  • New fast way to filter the Project Tree by its attributes from the Code Audit, CRUD, Flowchart, and Call Tree tabs.
  • New Project Tree selects the scripts in the Windows Explorer manner, saves and loads ClearSQL projects significantly more quickly.
  • Improved performance of analysis information display on script selection.
  • New graphical user interface and features of script versioning.
  • Improved "Find in Project" feature. The project search result is shown in a new "Search" tab in the Analyzer View pane on search completion.
  • The "Search/Error List" tab was renamed to "Errors" and displays the Parser errors only.
  • Improved Instrumented Code graphical user interface and features. The gathered information is permanently stored in the project.
  • Improved handling of pre-processed code. Added new settings for Pre-processor.
  • Flowchart and Call Tree objects are displayed in a hierarchical tree. Clicking on an object in the tree highlights the corresponding script in the Project Tree.
  • Improved the "Structure View" and "Code Review" trees and their handling.
  • General improvements to the application graphical user interface, usability, stability and reliability.
  • Invalid subprograms are displayed in red in the Flowchart/Call Tree tree.
  • Invalid diagrams/matrices are displayed with a red border.
  • Display's diagram's tab captions in red if the script has at least one invalid diagram/matrix.
  • Displays referenced objects of the object in the Call Tree tree.
  • Displays an empty page in the CRUD/Flowchart/Call Tree window when no matrix/diagram is available.
  • "Maximize View" mode now works on the application level.
  • Improved "Code Analyzer Options" graphical user interface. Added new settings for diagrams and matrices.
  • Improved the Recent project drop-down graphical user interface.
  • Parser/Analyzer skips scripts with status "Skipped" and "Error".
  • SQL*Plus automatically connects on start up when the application is connected to a database.
  • The "Environment Options" menu option was renamed to "Preferences" and "Analyzer Options" to "Code Analyzer Options".
  • New graphical user interface of all application toolbars.
  • The "File" main menu item was renamed to "Project".
  • The vertical and horizontal Script Editor's toolbars were combined into a horizontal one.
  • The "Analyze Code" and "Analyze Project" features were combined into a new more flexible and powerful "Analyze Selection" feature. Removed the odd feature "Manual Analyze".
  • Removed odd features to delete diagrams.

ClearSQL 4.3 (Release 2)

May 07, 2009
Improvements
  • Multiple users can use the program on the same PC.
  • Non-admin users can use their own copy of the DEMO Project.
  • Synchronization of flowcharts with the Project Tree.
  • New button on the toolbar to switch between the "Show Selected object's Flowcharts" and "All Flowcharts" modes.
  • When a FAILED item is selected in the Project Tree all the Analyzer View tabs are disabled.
  • When an error occurs in analysis cycle (FAILED item status) the Error tab is shown by default, and
    other results (OK, NO INFO) don't switch the selected tab. The same action occurs when walking the Project Tree and the "Auto show results" setting is on.
  • Metrics export file saves to "...\Application Data\ClearSQL\Export".
  • Export control file moved to "...\Application Data\ClearSQL".
  • Support for DAY, MONTH, JAVA, BOTH, EXTRACT, "AUTHID CURRENT_USER" keywords.
  • Support for CONTINUE statement (ORACLE 11g PL/SQL syntax).
  • Project Analyzer performance improved.
  • Project Analyzer writes detailed information to a log file.
  • Project Analyzer shows the project analyzing process in the Progress dialog that displays the name of the script that is being analyzed, as well as real-time numbers of total, already finished and remaining scripts (files).
  • Token comparison feature improved.
  • Parser improvement: USE keyword.
  • Parser improvement: Empty list of parameters is allowed in a subroutine invocation, for example aName.tostring();
  • Parser improvement: HOUR, CONTINUE and COLLECT keywords.
  • Parser improvement: ORDER BY in UNION ALL clause.
  • Parser improvement: EXIT, REF and DATABASE keywords.
  • Parser improvement: EXTRACT() function in the PL/SQL part of the grammar.
  • Parser improvement: CASE in ORDER BY clause.
  • General improvement: subroutines and anonymous blocks can be in one "file" (code chunk), in any order, and thus can be parsed in one pass.
  • Parser improvement: DAY and MONTH keywords.
  • Parser improvement: JAVA and BOTH keywords.
  • Parser improvement: ROWTYPE keyword.
Bug fixes
  • Manual analysis did not store metrics in the internal db.
  • Fast multiple clicks in the Project Tree might not refresh data in the Analyzer View tabs.
  • When the "Make Flowcharts" option was unchecked, the "UML Activity Diagram" option was grayed out and unchecked as well.
  • Parser failed on "COUNT(*)" expression in CASE statement.
  • Parser failed on CASE expression in ORDER BY clause.
  • Fast items selection in the Project Tree caused the CPU to slow down.
  • The root check box of the Project Tree in the Bulk Export Wizard was not processed.
  • GIF is set as a default option for output graphic files (flowchart diagramming).
  • Flowchart diagramming encountered an internal error when there were more than 60 items in a cluster.
  • Empty list of parameters was not acceptable.
  • xxx.ROWTYPE was not acceptable.
  • $$$newtoken error is fixed.
  • Proper formatting of VARCHAR2 is restored.