SQL Examiner Suite 2022 change log
The change log below contains a complete list of all fixes and improvements in each public build of the SQL Examiner Suite 2022
All improvements and fixes are marked with a mark showing in which program the changes were made:
- SQLESQL Examiner (schema comparison and synchronization tool)
- SQLDESQL Data Examiner (data comparison and synchronization tool)
- SQLESBoth SQL Examiner and SQL Data Examiner
126.96.36.199 - April 29th, 2022
- SQLESQLES-989: In rare cases,
ArgumentExceptionwith "Item has already been added" message occurs when the program compares
SEQUENCEobjects in PostgreSQL databases.
- SQLDESQLES-991: In some cases, specified by the user query synchronization settings that prohibited the deletion and updating of data in specific Oracle tables were ignored by the program, which could lead to unplanned data changes.
188.8.131.52 - April 26th, 2022
- SQLESQLES-986: In some cases, when MS SQL tables differ in the names of indexes or constraints, the program generates an incorrect synchronization script (incorrect order of statements), which leads to synchronization errors.
- SQLDESQLES-984: CLI code refactoring to eliminate program freezes when running multiple program instances at once. In addition, the console now exits faster when an exception occur. Added comparison pipeline state logging, enabled by the /debug option.
184.108.40.206 - April 22nd, 2022
- SQLDESQLES-981: In some cases, in cross-platform comparisons
InvalidOperationExceptionoccurs when string columns are used as comparison key.
220.127.116.11 - April 14th, 2022
- SQLESQLES-974: In rare cases,
NullReferenceExceptionoccurs when program loads
POLICYobjects from a PostgreSQL database during a comparison.
- SQLESQLES-982: In rare cases,
OdbcExceptionwith error message 'Unknown error 1142' occurs when program loads
PERMISSIONobjects from a MySQL database during a comparison.
18.104.22.168 - April 5th, 2022
- SQLDESQLES-980: In rare cases, when string columns are used as comparison key, identical records in PostgreSQL databases are considered as different (appear on the Only in Source and Only in Target tabs).
22.214.171.124 - March 29th, 2022
- SQLESSQLES-944: Added search phrase highlighting when displaying search results on Creation Script tab in the SQL Examiner and in Preview Pane in the SQL Data Examiner.
- SQLESQLES-920: The program does not generate synchronization scripts for encrypted text objects in the SQL Server database, even if the option Decrypt and compare encrypted text objects is enabled.
- SQLESQLES-960: In rare cases,
NotImplementedExceptionoccurs when a user clicks Run button on the last step of Script Database wizard.
- SQLESQLES-965: In rare cases,
NullReferenceExceptionoccurs when generating a report for cross-platform comparison.
- SQLESQLES-967: If during synchronization it is necessary to recreate a table in which new columns were added with a DEFAULT that uses a function that is not in the target database, the program generates an incorrect synchronization script.
- SQLDESQLES-824: In some cases,
Exceptionoccurs after editing a query in the Edit Query window when user switches from the Queries tab to the Comparison Keys tab.
- SQLDESQLES-950: In rare cases, when an exception occurs during data comparison, the program displays the error message, but does not offer to send an error report, although it should.
- SQLDESQLES-951: In some cases, when using the /debug option, some debug info is not written to log files.
- SQLDESQLES-953: The program mistakenly offers to send the Automated Error Report when "ERROR  ERROR: canceling statement due to statement timeout;" occurs when PostgreSQL databases are compared.
- SQLESSQLES-822: In very rare cases,
InvalidOperationExceptionoccurs when user manually runs Check for Update.
- SQLESSQLES-911: When running the program on a system with different scales on different displays, the size of windows on closing was not saved correctly, and the next time a window was opened on a display with a different scale, the window size was restored incorrectly.
- SQLESSQLES-952: In some cases,
ArgumentNullExceptionoccurs when user starts Task Scheduler wizard.
- SQLESSQLES-958: In some cases,
ArgumentExceptionwith error message 'The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)' fallback 'System.Text.DecoderReplacementFallback' occurs when a user selects a SQL Server backup file as a comparison source.
- SQLESSQLES-961: In very rare cases,
NullReferenceExceptionoccurs when user starts New Project wizard (caused by an error in error handling when loading information about installed ORACLE instances from Windows Registry).
- SQLESSQLES-962: If the program was launched with the /debug parameter and a connection error occurred when connecting to a database, then it was processed incorrectly and led to a
126.96.36.199 - March 3rd, 2022
- SQLESQLES-942: In rare cases, the Ignore permission option for PostgreSQL database objects is not properly applied, and the program treats the objects as different when they are the same.
- SQLESQLES-947: When custom mapping is configured for PostgreSQL schemas with different names,
SCHEMAobjects are not paired, which leads to incorrect comparison and incorrect generation of synchronization scripts.
- SQLESQLES-948: In some cases, the program incorrectly processes
DEFAULTobjects in SQL Server databases, which leads to incorrect displaying while a preview and generating an incorrect synchronization script.
188.8.131.52 - February 25th, 2022
- SQLESQLES-796: In rare cases,
NotImplementedExceptionoccurs while generating a synchronization script for PostgreSQL tables.
- SQLESQLES-938: Sometimes the program does not detect differences in names of some objects when comparing SQL Server databases, causing name differences not to be synchronized. The following objects are affected:
XML SCHEMA COLLECTION,
SEARCH PROPERTY LIST.
- SQLESQLES-940: When
FULLTEXT STOPLIST, and
SEARCH PROPERTY LISTobjects in a source and a target SQL Server databases differ in names, the program generates an incorrect synchronization script (wrong order of the SDL statements).
- SQLDESQLES-943: In some cases, when synchronizing data using the CLI tool, the program terminates unexpectedly without reporting any errors.
184.108.40.206 - February 16th, 2022
- SQLESQLES-934: In some cases,
NotImplementedExceptionoccurs while generating a synchronization script for MSSQL tables.
- SQLESQLES-935: Under certain conditions, when the program loads metadata from a live MySQL database, precision and scale for float-point columns can be processed incorrectly, which leads to incorrect scripts on the Generate and Synchronize tabs.
220.127.116.11 - February 11th, 2022
- SQLDESQLES-925: In rare cases, Skip and Stop buttons do not stop comparison but cause the program to hang. (reopen)
18.104.22.168 - February 4th, 2022
- SQLDESQLES-925: In rare cases, Skip and Stop buttons do not stop comparison but cause the program to hang.
- SQLDESQLES-926: In rare cases, the program takes too long to update the Object List if previously a comparison was interrupted by the Skip or Stop button.
- SQLDESQLES-928: In rare cases, when an error occurs during comparison, the program does not display the error message, and the comparison hangs.
22.214.171.124 - February 1st, 2022
- SQLESQLES-908: The program trims line breaks at the beginning of text objects when loaded SQL Server database snapshots; consequently, when comparing such snapshot with a live database, it displays non-existing differences on the Creation Script tab. (reopen)
- SQLESQLES-913: In some cases, when a user opens a comparison from the Recent Comparisons list with the Customize the selected comparison option enabled,
- SQLESQLES-914: Under certain conditions, when the program compares text objects in SQL Server databases, the Ignore tabs, spaces, etc. is not taken into account, which leads to incorrect comparison results. (MSSQL)
- SQLESQLES-915: In some cases, text objects metadata is being loaded incorrectly. (MSSQL)
- SQLESQLES-916: In some cases,
EXTENDED PROPERTYmetadata is being loaded incorrectly from a snapshot. (MSSQL)
- SQLESQLES-917: The program always displays indexes on the Creation Script tab as different, no matter whether there is a difference. (MSSQL)
126.96.36.199 - January 25th, 2022
- SQLESSQLES-876: Now program collects more debug info when an error occurs during comparison or synchronization.
- SQLESQLES-823: In rare cases,
InvalidCastExceptionoccurs while generating a synchronization script for PostgreSQL text objects.
- SQLESQLES-905: Under certain conditions, column renaming settings are not saved correctly in a project file, which leads to losing some settings when the program loads the project later.
- SQLESQLES-908: The program trims line breaks at the beginning of text objects when loaded SQL Server database snapshots; consequently, when comparing such snapshot with a live database, it displays non-existing differences on the Creation Script tab.
- SQLDESQLES-909: In rare cases,
NullReferenceExceptionoccurs when the program builds an index while comparing data.
- SQLDESQLES-910: In rare cases,
InvalidOperationExceptionoccurs when the program builds an index on char data type key columns while comparing data in cross-platform comparisons.
- SQLESSQLES-869: Under certain conditions, the program does not delete all created temporary files on close.
- SQLESSQLES-887: Under certain conditions,
InvalidOperationExceptionoccurs during project load when user mapping was applied in the project.REOPENED
- SQLESSQLES-902: In some cases,
ArgumentOutOfRangeExceptionoccurs when user switches to the Advanced tab in the Options window.
- SQLESSQLES-906: In rare cases,
ArgumentExceptionoccurs when the program loads metadata from a database.
188.8.131.52 - December 30th, 2021
- SQLESQLES-891: We refactored the Script Database... and Update Database Scripts... wizards and significantly reduced the time for configuring the scripting engine.
- SQLESSQLES-900: We added an ability to specify an encoding to use when querying MariaDB to workaround an issue with MySQL Connector/NET. See the article for more details.
- SQLESQLES-895: In some cases,
NotImplementedExceptionoccurs while the program generates a synchronization script for PostgreSQL tables.
- SQLESQLES-897: When comparing any source with the SQL Server scripts folder as a target, if the source and target differed only in extended properties, then nothing was updated when trying to update the scripts in the target folder.
- SQLESQLES-899: In some cases, user-defined schema mappings were not correctly applied when comparing PostgreSQL databases.
- SQLDESQLES-889: Sometimes
IOExceptionoccurs when a user multiple times changed settings of the row filter "show only rows that differ in data in the selected columns".
- SQLDESQLES-894: Under certain conditions,
ArgumentExceptionoccurs when comparing data in SQL Azure or SQL Compact.
- SQLDESQLES-896: Sometimes, upon an attempt to select a table in the Object List which was compared with errors,
184.108.40.206 - December 22nd, 2021
- SQLESQLES-893: We updated an icon used in the Object Tree for SQL Server's temporal tables to distinguish them from regular tables clearly.
- SQLESQLES-892: The program generates an incorrect synchronization script for a
DEFAULTconstraint with the boolean data type when a PostgreSQL database (source) is compared with a SQL Server database (target).
- SQLESQLES-893: In some cases, the program generates an incorrect synchronization script for SQL Server's temporal tables (DDL statements are in the incorrect order and sometimes use wrong object names).
220.127.116.11 - December 13th, 2021
- SQLESQLES-884: In rare cases,
NullReferenceExceptionoccurs during cross-platform schema comparison.
- SQLESQLES-887: Under certain conditions,
InvalidOperationExceptionoccurs during project load when user mapping was applied in the project.
18.104.22.168 - December 6th, 2021
- SQLESQLES-881: In some cases,
NullReferenceExceptionoccurs when a user compares Oracle databases and selects a table in the Object Tree if there are differences in columns with comments.
- SQLESQLES-882: In cross-platform comparisons, when database creation scripts are used as both source and target, a synchronization script is generated as for source database type instead of the target database.
- SQLESQLES-885: In rare cases
ArgumentOutOfRangeExceptionoccurs when program generates synchronization script for SQL Server databases.
- SQLDESQLES-875: In some cases,
NullReferenceExceptionoccurs during cross-platform comparison when key column(s) are char, and there are NULLs in some rows in these columns.
- SQLDESQLES-880: Sometimes, the program proposes to send an automated error report even if an exception was handled (for example when database connection timeout occurs).
22.214.171.124 - November 30th, 2021
- SQLDESQLES-879: The program saves the Preview script before synchronization setting in the Synchronization wizard between runs.
- SQLDESQLES-874: Under certain conditions,
NullReferencesExceptionoccurs while loading data in cross-platform comparisons if key specified char key columns. (reopen)
126.96.36.199 - November 26th, 2021
- SQLDESQLES-877: Added an ability to specify a Row Matching Mode for cross-platform comparisons by an internal variable in Windows Registry. This is a temporary solution until this option is implemented in GUI and CLI.
188.8.131.52 - November 26th, 2021
- SQLESQLES-872: In some cases, a
MySqlExceptionoccurs during loading
CHECK CONSTRAINTmetadata from a MySQL database.
- SQLDESQLES-870: In some cases, a
NullReferencesExceptionoccurs when the program generates a synchronization script for SQL Server when the Disable UNIQUE constraints and unique indexes option is enabled.
- SQLDESQLES-874: Under certain conditions,
NullReferencesExceptionoccurs while loading data in cross-platform comparisons if key specified char key columns.
- SQLESSQLES-871: In rare cases, the
MissingMethodExceptionoccurs when a program starts.
184.108.40.206 - November 24th, 2021
- SQLDESQLES-868: In specific cases, in cross-platform comparisons, rows in a source and target table were incorrectly matched when the char data type column (or multiple columns) was used as the comparison key. As a result, these rows were displayed on the Only in Source and Only in Target tabs instead of the Different tab. We have reworked the comparison engine to ensure maximum compatibility by the cost of little performance degradation.
220.127.116.11 - November 17th, 2021
- SQLDESQLES-867: While synchronizing queries, on rare occasions,
NullReferenceExeptionoccur when in a target database, the size of a field of a char data type is less than in a source database
18.104.22.168 - November 16th, 2021
Initial public version of the SQL Examiner Suite 2018. You can see the list of changes and improvements in the 2022 version in the Release Notes.