ApexSQL Clean release notes

Release: 2011.01.0135
Date: October 21, 2011
Description: Major feature, medium fix release

Enhancements:

  • The following new SQL Server object types are now fully supported for dependency analysis Fulltext Stoplists Certificates Asymmetric Keys Symmetric Keys Roles Users Schemas Sequences Search Property Lists File Tables
  • SQL Server Denali databases are now supported for dependency analysis
  • SQL Server 2005 and higher version encrypted objects can now be decrypted and analyzed (requires membership in the sysadmin server role)
  • Progress dialogs have been redesigned across the application for improved accuracy and usability
  • New Office 2007 style interface with ribbon bar, quick access toolbar, and ApexSQL Clean button has been introduced
  • New Resources ribbon bar has been introduced for quick access to Help page, Support forum, Training page, FAQs, Knowledge base, Troubleshooting, About and Get Updates dialog boxes
  • New standard Project Management dialog has been introduced
  • Project Management dialog now shows recently used projects or projects stored in any folder of choice
  • Projects can be Pinned/Un-Pined to Recent Projects list on Project Management dialog
  • Project description can be edited directly from Project Management dialog
  • 'Show on Startup' option has been added to Project Management dialog box
  • Startup Action options group has been added to Options dialog to control Project Management dialog behavior. Available choices are 'Show Project Management dialog', 'Show last opened project' and 'None'
  • Application can now be presented in 3 color schemes: Blue, Silver and Black
  • Advanced button implemented in Project wizard displays additional steps: Files and Object Filter
  • Main window Status bar has been redesigned and now shows numbers of checked rows in addition to server and database names
  • New tooltip balloon has been added to data source bar of main window Status bar
  • Options dialog has been redesigned with new Office 2007 button bar
  • The following connection options have been added to Connection step of Project wizard: 'Connection timeout', 'Execution timeout' and 'Encrypt connection'
  • Project Defaults can now be defined for newly created projects
  • Project options can now be saved as current user defaults settings
  • Project options can now be reset either to current user or to ApexSQL defaults
  • Tooltips with option description and example are shown for Project options
  • New Object Filter that allows setting filter both for particular object type and for all types has been introduced in main window
  • Object Filter allows defining filtering criteria using Filter Editor
  • Filter Editor allows to interactively create filtering expressions using Name and Schema fields
  • Filter Editor allows to filter analysis results based on 'Exclude if' or 'Include if' conditions
  • Filter Editor criteria can use the following comparison operators: 'Equal', 'Not Equal', 'Between', 'Not between', 'Contains', 'Not contains', 'Begins with', 'Ends with', 'Any of' and 'None of' and the following logical operators: 'And', 'And not', 'Or' and 'Or not'
  • Object Filter settings can be exported to or imported from file
  • Object Filter items can be grouped by SQL Object Type or by Category
  • File analysis options have been redesigned for improved usability

Fixes:

  • Application doesn’t detect dependencies on Tables from SELECT statements inside Stored Procedures
  • Column is shown multiple times in Children grid when it’s referenced using different case
  • Spatial indexes are displayed as unknown dependencies in Dependency Viewer's Object Browser
  • Object selection in main grid gets broken after active database is changed
  • Column dependencies are sorted in the reverse order in main grid
  • Application doesn’t detect dependencies on identically named objects belonging to different schemas
  • Application doesn’t detect dependencies on Tables from Triggers belonging to different schemas
  • Application doesn’t detect dependencies on Assemblies from Stored Procedures
  • Application doesn’t detect dependencies on Tables from ENABLE TRIGGER statements inside Stored Procedures
  • Application doesn’t detect dependencies on Tables from DROP STATISTICS statements inside Stored Procedures

Changes:

  • Reference Graph has been deprecated
  • Regular Help button has been replaced with question mark button in title bar on all dialogs and windows
  • The following options have been moved to Project Setting form from Drops Generation wizard Transactions Optional Script Elements
  • Backup Original Database options have been moved from Options | General to Output options step of Clean script generation wizard
  • Importing/exporting of selection profiles has been deprecated from Object Filter step of Dependency Analysis wizard
  • SQL Server object counts have been deprecated from Status Bar

Release: 2008.03.0133
Date: October 12, 2009
Description: Minor fix release

Fixes:

  • Parsing exception: Parse error: 99" error is thrown on first after main grid refresh open of Dependency Viewer
  • View DDL form doesn’t have object name in the title
  • Column dependencies aren’t displayed in Parents and Children grids in case the table/view is referenced via fully qualified name (database.owner.table)
  • "Path cannot be empty string" error is thrown after upgrading from 2005 to 2008 version of the application
  • Application doesn’t release memory after main grid refresh
  • Previously opened projects don’t appear in project history list of Manage Projects form
  • Changing "Show system databases" option on Choose Datasource step of Dependency Analysis wizard doesn't enable Save button
  • External references to spatial columns aren't shown in Dependency Viewer
  • System.OutOfMemoryException exception is thrown for large databases (>30 GB)
  • Reset button doesn't work in Dependency Analysis wizard
  • System.ArgumentException exception is thrown if project opening is cancelled
  • Unknown objects can't be deselected in Object Explorer of Dependency Viewer
  • Zooming with mouse wheel in Dependency Viewer results in black background instead of the resized diagram
  • View DDL form is opened on double click even when no object is selected in main grid
  • "Object type 'ak' is unknown" error is thrown on analysis of AdventureWorks database with any external databases
  • External refrences aren't marked as such in Parents and Children grids
  • Brackets enclosing server name are doubled for external references in Dependencies pane
  • System.InvalidOperationException exception is thrown when databases from different servers are analyzed consecutively
  • System.InvalidOperationException exception is thrown on deselecting objects in Drops Generation wizard with active "check" column filter
  • Application analyzes only *.cs files from Visual Studio projects/solutions regardless activate filters
  • Application doesn’t detect dependencies on tables from other tables' triggers
  • Object_types CLI switch doesn’t affect dependency diagrams
  • CLR functions aren't recognized in Dependency Viewer's Object Browser
  • Search_settings, /report_options, /script_options and /backup CLI switches don't contain information about their default values in console help output
  • [^] regular expression doesn't exclude objects on Object Filter step of Dependency Analysis wizard
  • Application doesn’t display a warning for non-existing folders specified for "Use this Directory" option of Output Options step of Drops Generation wizard
  • System.ArgumentException exception is thrown on attempt to analyze database with SQL Server authentication and empty password
  • Added backup device isn't deleted after drop script execution
  • Backups are created with .dat extension instead of .bak
  • XML exports are always saved to default folder with default instead of user specified ones

Release: 2008.02.0132
Date: April 1, 2009
Description: Minor fix release

Changes:

  • Offline help file is no longer provided and ApexSQL Clean will now directly access online help from the default system browser

Known limitations:

  • Some of Common Table Expression not supported - Example: Common Table Expression (CTE) used inside View

Release: 2008.01.0130
Date: December 1, 2008
Description: Major fix, major feature release

Enhancements:

  • Improved database parsing speed over 190% for databases with over 500 objects
  • New user interface that includes easier-to-use Project Dialog
  • Additional column level dependencies are now located. Computed columns are not located as column level dependencies
  • Services are now located as additional dependency types for ROUTE objects
  • Improvement of memory consumption and better memory management in Dependency Viewer dialog. Fixed possible application glitches related to huge memory consumption and memory consumption is lower then before up to 35%
  • CLI output in verbose mode is adjusted and enhanced to show more information about analysis process. During analysis process all steps of execution are shown with full info of analyzed objects
  • Enhanced grid filtering by adding auto complete feature to drop down list
  • In Dependencies Viewer form, filter is expanded and new filter button for Unknown objects added
  • New MSSQL2008 support. Clean is now capable of finding dependencies between following objects: - Table types are supported - Geography, Geometry, xml, hierarchy and new datetime types are supported - Filtered indexes and improved FullText indexes are now checked for dependencies - Dependencies between procedures and functions that use new table types are recognized
  • Clean now opens .axcl file type

Fixes:

  • Exception when applying Drops generation Wizard against paused SQL Server
  • Error when Analyze process invoked against paused SQL Server
  • Error saying SQL Server is still paused even if it is not
  • Exception when SQL Server is paused during Analyze process
  • Wrong help page displayed from Comments field dialog
  • Dependency Viewer Central pane is unreadable if zoom sat to 2% and Dependency Viewer reopened
  • SQL Server 2005 specific filters can be make visible when working with SQL Server 2000 databases
  • Analyze process progress info dialog can be maximized by double-clicking caption bar
  • Server Selection Procedure help file page button captions are outdated. Changes made in version 126 are omitted
  • Drops Generation Wizard, General Options help page is outdated ("General options" label)
  • Managing Script Help page cannot be displayed
  • When clicking on a column, the object list appears to filter down to only objects in the original database that reference the column
  • Saved project's name displaying empty in existing projects grid
  • Column References incomplete if column referenced from other databases
  • DB create script contains more than one CREATE statement error

Changes:

  • HTML report file after generation (Report.html) is now stored in My Documents\ApexSQL\ApexSQLClean folder instead of Application folder
  • Dependencies pane now can be closed and opened via corresponding menu item in Main form’s Main menu -> View group
  • Project window is now resizable with appropriate sign in the form's bottom right corner
  • Default Folder for projects is changed to be MyDocuments/ApexSQL/ApexSQLClean2008 instead of application folder

Known limitations:

  • Some of Common Table Expression not supported - Example: Common Table Expression (CTE) used inside View

Release: 2005.09.0127
Date: October 18, 2007
Description: Minor fix release

Enhancements:

  • CLI switch descriptions and output
  • Added project name and dirty status notification into status bar
  • EXCEPT and INTERSECT subqueries dependency analysis is now functional on all query related methods (views, procedures, functions, expressions)

Fixes:

  • User types having references are shown as unreferenced under SQL Server 2000
  • Generating incorrect drop script for aggregates from SQL Server 2005 databases
  • Missing queue schema when generating drop script for on-queue event notifications
  • Missing references for scripting with different casing in case insensitive databases
  • Missing references for event notifications over queues in some cases
  • Some objects reported unreferenced in case sensitive databases
  • Incorrect syntax for dropping user types from SQL Server 2000 database
  • Deleting patterns by keyboard in object filtering steps of project wizard is not working
  • Multiple GUI fixes on main overview window
  • Dependencies Type box disabled in Dependency Viewer when viewing dependencies for all objects
  • Dependency Viewer exception related to connection time expiry
  • System objects appearing in Dependency Viewer
  • Relations between Assemblies and Datatypes do not show in Dependency Viewer
  • Analysis exception on identically named user defined functions with system functions
  • Freeze bug for complex stored procedures analysis
  • Bug with null reference exception being thrown while processing BEGIN DIALOG ... ON CONTRACT statement with variable
  • Bug with ALTER TABLE processing FOREIGN KEY constraint
  • Bug with null reference exception when parsing CREATE PROCEDURE with empty server identifier (this is allowed)
  • Bug with "NotImplementedException" being thrown on some inner joins containing FULLTEXT keyword

Changes:

  • Moved "Show System Databases" option from Options to Project Wizard Login step

Release: 2005.08.0126
Date: July 19, 2007
Description: Medium fix release

Enhancements:

  • CLI warning that switches /object_name (/n) and /object_schema (/os) must be used together
  • Warning when trying to use ApexSQLClean.exe for processing from CLI
  • More details about current dependency view in the caption of the dependency view window (server name and database name / object type and object name)
  • Status bar now displays server version in brackets next to the server name and database compatibility level in brackets next to database name
  • CLI switch /exclude - excludes specific objects from processing; objects can be specified via bitwise type followed by ":" and a regular expression (TypeConstant:Expr ... TypeConstant:Expr ...); /exclude can be combined with /include in which case it will take priority over any objects matched by both switches
  • Grids' selector column (checkbox) can now also be filtered as any other column
  • All grids which are grouped by Type now have corresponding object type representation icon before the type name
  • Outlook Button Bar on the left of the Main Form is now movable as any other tool strip
  • External databases can be selected using space - the same as in other grids where rows can be checked
  • Help file improved
  • Several new direct F1 links to the help file from some controls when focused
  • Performance improvements for inner/pivoted join expansion parsing (on all inner SELECT methods)

Fixes:

  • Tab stop issue in Drop Generation Wizard
  • No details on CLI help for switch /comment_delimiters (/cd)
  • CLI incorrect warning message when a switch must be used with another switch
  • Drop Generation Wizard output generates a warning message when saving a script to default file name
  • SqlException when refreshing the main grid while chosen SQL Server or database is unavailable
  • Inability to increase size after decreasing it for the column 'Name' in 'External Database Selection' grid for Project Wizard
  • Inability to save column setup in Project History Grid on the first Project Wizard step
  • Incorrect display of database object names in reference to "Show default owner/schema qualification" option
  • Warning message when trying to browse by context menu to an object which is filtered out in Main Grid
  • Inability to parse from CLI any secondary comment delimiters that start with forward slash; they can be parsed now by using an escape character "/" - when specifying a comment delimiter starting with "/" it should instead begin with "//"
  • Several label captions
  • Several button captions
  • Exception when trying to open an empty Print Preview from Dependency Browser
  • Menu caption in Dependency Viewer
  • Wrongly enabled and/or visible context menu commands in Main Grid, Parents Grid, Dependency Tree...
  • Wrongly enabled toolbar buttons on the Main form
  • GUI too large and not showing several items in Project Wizard and Dependency Viewer Options when Windows font resolution is set to 120dpi
  • Two different "Object reference not set to an instance of an object" exceptions during database analysis
  • Description for /include CLI switch
  • Incorrect naming of group rows in grids
  • 80 or lower compatible databases on the SQL 2005 Server were treated as SQL 2000 databases, missing SQL 2005 object types in several places
  • Not working File Save dialog extension filter in Dependency Viewer's export image
  • Exception and inability to load multiple Event Notification objects with the same name over different Queues / DBs
  • Several grammar and text changes
  • CLI commands /include and /exclude are now really using regular expressions as said in help and not wildcards
  • Object names cut in Dependency Viewer sometimes when displayed within a Diamond shape
  • Project wizard project list correctly fills out the Name column / sets the Name for the newly created projects
  • Exception when loading permissions from corrupted databases
  • Issue with checking before drop for schema-based objects
  • Issue with checking before drop for for credentials
  • Issue with checking before drop for role members
  • Issue with checking for existence for extended properties
  • Issue with checking before drop for role members for SQL Server 2005
  • Issue with triggers order scripting for triggers with quote in name
  • Issue with FK and references loading under SQL 2005 server when 2 same name FK from 2 same name tables but with different schemas references to another one table
  • Issue with Filegroups reloading under SQL 2005 Server
  • Issue with NotEnoughRightsException exception
  • Issues with checking for Extended properties existence under 2000 server
  • Issues with checking for indexes existence before drop
  • Issues with checking for foreign keys / references existence
  • Bug that parser does not see Assembly object as child for CLR dependent objects
  • Bug that parser doesn't pick object from schema dependencies
  • Bug when parser does not consider schema dependencies in ordering
  • Bug with cache usage on two different databases
  • Bug with role dependent users/logins not displaying in the dependencies
  • Bug when parser doesn't find dependencies for some view constructs (using EXCEPT keyword)
  • RULE objects to be schema dependant
  • Distinguish RULE objects from different schemas
  • Bug when parser doesn't find dependencies for some view constructs (using INTERSECT keyword)
  • Bug for functions having non-quoted system function names
  • Bug which froze parser (related to inner/pivoted joined view expansion)
  • Bug on using IDENTITY or ROWGUID or STAR colum reference in the search condition sub-statement (null reference exception)

Changes:

  • Minor GUI visual appearance for some parts of Project Wizard and Program Options
  • Project Wizard's Next and Back buttons now skip over the "Options" step as it is the same as "Options -> General"
  • Drop Generation Wizard begins from the "Options -> General" tab and its Next and Back buttons won't go to the "Options" tab as it is the same
  • First editable control is focused on in each of the Wizards' steps
  • Next button is now default button in each of the Wizards (activated when pressing Enter key)
  • "Name" column in Main Grid, Drop Generation Wizard's Object Selection Grid and Dependency Viewer's Object Browser Grid is now filtered by regular expressions instead of wildcards
  • After first project start, default number of recent projects to be shown in File menu is 7
  • Default column setup in Project History Grid on the first Project Wizard step
  • For items with missing schema there is no more asterisk sign in Object Browser in Dependency Viewer
  • Show System Databases now separated from the main option in the External Database selection as new checkbox field; main Show System Databases option now affects only main database selection dropdown list
  • First focused item on the HTML Report / XML Export is now first checkbox field and not the Help button
  • File analysis patterns are now regular expressions and not wildcards
  • "Location" column in Dependency Viewer object browser is now filtered using regular expressions and not wildcards
  • Clicking on grids' selector column (checkbox) function of check / uncheck all rows is replaced by sorting by checked / unchecked rows
  • Object filtering by patterns is now changed so that patterns are using regular expressions instead of wildcards
  • AutoCreatedLocal system route SQL Server 2005 object is now filtered out as system object
  • Split Search Options in the project wizard so they can be distinguished between File Analysis options and Database Analysis options
  • Changed dropping order for tables and views subobjects
  • Cache back end implementation performance rewrite (cache split between servers/databases to different directories)
  • Added new parser unified parsing path for per object and whole DB parsing

Known issues:

  • Incorrect syntax is used for dropping user types from SQL Server 2000 dbs
  • User types having references are shown as un-referenced for SQL Server 2000 dbs (e.g. pubs)

Release: 2005.07.0122
Date: November 20, 2006
Description: Minor fix release, minor feature release

Enhancements:

  • CLI switch /external_databases - specifies list of databases for analysis of external references (format: /external_databases:db1 db2 db3 ...)
  • CLI switch /comment_delimiters - specifies list of comment delimiters associated with the client program for file analysis (format: /comment_delimiters:start_delimiter1:end_delimiter1 single_line_delimiter2 start_delimiter3:end_delimeter3...)
  • CLI switch /search_settings - specifies search settings (WholeWordSearch, IgnoreTrigger, CaseSensitive)
  • CLI switch /report_options - specifies xml export or html report options (IncludeChildren, IncludeParent, IncludeOwner, etc)
  • CLI switch /include - includes specific objects in processing, objects can be specified via regular expressions (TypeConstant:Expr ... TypeConstant:Expr ...)
  • CLI switch /script_options - specifies optional script elements (IncludeHeader, IncludeComments, IncludePrint, IncludeTransactionHandling)
  • CLI switch /filename_patterns - specifies list of patterns for file searching
  • CLI switch /backup specifies - user's backup path or one of the following options: Default - sets default value, None - sets value to none
  • Option 'Show default owner/schema Qualification in common interface labels' in Options form
  • Option 'Maximum Items Shown in File Menu' in Options form
  • Option 'Save To' in Drop Generation Wizard that allows saving generated scripts to wanted location

Fixes:

  • Improper structure of xml export
  • Handling IO error on opening deleted application file from grids in main form

Changes:

  • CLI switch /file_dir - several directories can be specified (/file_dir:dir1 dir2 dir3 ...)