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
8.0.0.164 - April 5th, 2023
Fixes
- SQLESSQLES-1369: The previously hidden option "Round float types..." has been made enabled for all users.
8.0.0.163 - March 23th, 2023
Fixes
- SQLDESQLES-1324: In some cases, the program synchronizes only a few tables marked for synchronization, the rest is skipped and not synchronized.
- SQLDESQLES-1326: If the target database in a comparison from the Recent Comparison list has been replaced with a new (<New>) database, the comparison settings are completely reset and should be restored manually.
- SQLDESQLES-1351: In some cases when comparing Oracle and HANA databases,
Unable to cast...
exceptions occur. - SQLDESQLES-1331: If a user made a comparison with a new (<New>) target database and then created a database copy during synchronization, only the comparison with the database copy will be available in the Recent Comparison list. The comparison with the new (<New>) target database cannot be repeated.
- SQLESSQLES-1349:
FileNotFoundException
occurs when starting SQL Examiner or SQL Data Examiner redistributable command-line tools. - SQLESSQLES-1350: The custom name of a database backup is replaced with the default template-based name in the command line parameter /BackupTargetDB.
8.0.0.162 - March 15th, 2023
Fixes
- SQLESQLES-1338: In some cases, when synchronizing unique indexes in MySQL databases, the program generates an incorrect synchronization script (excessive statements).
- SQLESQLES-1329: If procedures or functions in a PostgreSQL database use arrays of user-defined types, the program generates an incorrect synchronization script.
- SQLDESQLES-1340: When generating a Database Variance Report the Custom ODBC Data Source connection string used as a database name can contain a password.
- SQLDESQLES-1339: Fixed a typo in Database Variance Reports (
Identical rows
).
8.0.0.161 - March 13th, 2023
Fixes
- SQLDESQLES-1328: When the program works in debug mode and collects logs, debug logging can be extremely slow.
8.0.0.160 - March 10th, 2023
Fixes
- SQLDESQLES-1305: Added the ability not to retrieve indexes when reading metadata via ODBC which eliminated excessive delays in some cases.
8.0.0.159 - March 9th, 2023
Fixes
- SQLESQLES-1303: Syntax errors while parsing PostgreSQL creation scripts.
- SQLDESQLES-1305: Additional hidden settings have been added to fine-tune the program's work with ODBC sources.
- SQLDESQLES-1305: Added additional logging of program work with ODBC data sources.
- SQLDESQLES-1311: In some cases
NullReferencesException
occurs when synchronizing data in Oracle databases and the program crashes.
8.0.0.158 - March 6th, 2023
Fixes
- SQLESQLES-1307: In some cases,
NotImplementedException
occurs when synchronizing SQL Server temporal tables between a database snapshot (source) and a live database (target). - SQLESQLES-1308: In some cases, when synchronizing SQL Server temporal tables in a database snapshot (source) and a live database (target), the program generates an incorrect synchronization script (wrong order of statements).
- SQLDESQLES-1305: In some cases,
ArgumentException
occurs when loading data from a HANA database using Custom ODBC Data Source.
8.0.0.157 - March 3th, 2023
Fixes
- SQLESQLES-1294: In some cases, when synchronizing views in PostgreSQL databases, the program generates an incorrect synchronization script.
- SQLESQLES-1299: In some cases, after starting a comparison the Edit project window freezes and, finally, closes.
- SQLDESQLES-1272: Faster loading of metadata from HANA database via ODBC.
8.0.0.156 - February 15th, 2023
Fixes
- SQLESQLES-1286: In some cases, when parsing PostgreSQL creation scripts, an error with the "Incorrect syntax near 'main'" message occurs.
- SQLDESQLES-1287: In some cases, when loading the schema,
ArgumentException
with the "[Spep 10, db] cannot change status from 1 to 1" error message occurs in the New Data Comparison wizard.
8.0.0.155 - February 10th, 2023
Fixes
- SQLESQLES-1277: In some cases, when parsing PostgreSQL creation scripts, the error "Incorrect syntax near '::'" occurs in the New Schema Comparison wizard.
- SQLESQLES-1285: In some cases, when parsing PostgreSQL creation scripts, the error "Cannot create trigger 'triggerName' as its schema is different from the schema of the target table or view." occurs in the New Schema Comparison wizard.
- SQLESSQLES-1265: In some cases, when trying to connect to a MySQL database, the error "Object cannot be cast from DBNull to other types" occurs in the New Comparison wizard and the program doesn't offer to send an error report. (reopen)
8.0.0.154 - January 25th, 2023
Fixes
- SQLESQLES-1266: In some cases, the program applies the /exclude parameter to ExtendedProperty objects in an SQL Server database incorrectly. As a result, the synchronization script contains statements for objects that should have been excluded.
- SQLESSQLES-1265: In some cases, when trying to connect to a MySQL database, the error "Object cannot be cast from DBNull to other types" occurs in the New Comparison wizard and the program doesn't offer to send an error report.
8.0.0.153 - January 19th, 2023
Fixes
- SQLESSQLES-1264: If an error occurs while connecting to the MySQL server, the program shows the wrong error message "Unable to cast object of type 'System.Data.ConnectionState' to type 'System.String'" instead of the actual error.
8.0.0.152 - December 26th, 2022
Fixes
- SQLDESQLES-1250: In some cases, the program compares floating-point values incorrectly, therefore the records are displayed in a wrong tab.
8.0.0.151 - December 22nd, 2022
Fixes
- SQLESQLES-1235: In some cases,
OracleException
with the "ORA-00942: table or view does not exist" error message occurs in the New Schema Comparison wizard while loading roles metadata from an Oracle database. - SQLESQLES-1248: In some cases,
NullReferencesException
occurs in the New Schema Comparison wizard when analyzing connections between PostgreSQL database objects.
8.0.0.150 - December 9th, 2022
Fixes
- SQLESQLES-1157: In some cases, if an error occurs in the New Schema Comparison wizard while loading database metadata, the program freezes after a user clicks OK in the error message box. (reopen)
- SQLESQLES-1211: In some cases, the program skips some objects when comparing indexes and triggers in Oracle databases.
- SQLESQLES-1233: In some cases, when comparing user-defined types in Oracle databases,
OracleException
occurs with the "ORA-31603: object 'SYS_YOID00000XXXXX$' of type TYPE not found in schema 'SCHEMANAME'" error message. (reopen) - SQLESQLES-1237: In some cases,
NotImplementedException
occurs when synchronizing SQL Server and PostgreSQL databases when a user clicks the Next button on the Configure Advanced Settings step or tries to preview the synchronization script. - SQLDESQLES-1241:
OdbcException
with the "ERROR [42P01] ERROR: relation 'schema.tablename' does not exist" error message occurs when a user opens a PostgreSQL comparison project with queries referencing a removed table. - SQLDESQLES-1158: Under certain conditions,
NullReferenceException
occurs while re-comparing data. - SQLESSQLES-1236: In some cases,
NullReferenceException
occurs when a user runs the CLI Wizard from the Edit Task window (Scheduled Tasks).
8.0.0.149 - November 30th, 2022
Fixes
- SQLESQLES-1233: In some cases, when comparing user-defined types in Oracle databases,
OracleException
occurs with the "ORA-31603: object 'SYS_YOID00000XXXXX$' of type TYPE not found in schema 'SCHEMANAME'" error message. - SQLESQLES-1234: In some cases, when comparing indexes in Oracle databases,
NullReferencesException
occurs. - SQLDESQLES-1220: In some cases, when synchronizing SQL Server databases, the "Incorrect syntax near 'ON'." error occurs.
- SQLDESQLES-1223: In some cases, when synchronizing geometry values between SQL Server databases, the "Could not find method 'STGEOMFROMTEXT' for type 'Microsoft.SqlServer.Types.SqlGeometry' in assembly 'Microsoft.SqlServer.Types'" error occurs.
- SQLDESQLES-1226: If a table is skipped during comparison, it should be omitted only in the current session, but the table doesn't appear in the comparison after the project has been reopened.
- SQLESSQLES-1232: In some cases,
NullReferenceException
appears in the New Comparison wizard if at least one of the chosen data sources is a MySQL database and the program can not find the driver.
8.0.0.148 - November 22nd, 2022
Fixes
- SQLESQLES-1214: In some cases, the CLI tool applies the /exclude parameter incorrectly, as a result, some objects are included into synchronization.
8.0.0.147 - November 21st, 2022
Fixes
- SQLESQLES-1210: In some cases,
ArgumentException
occurs when comparing user privilege metadata in Oracle databases. - SQLESSQLES-1216: In some cases, the "AADSTS1002016: You are using TLS version 1.0, 1.1 and/or 3DES cipher which are deprecated to improve the security posture of Azure AD." error occurs in the New Comparison wizard when connecting to an Azure SQL database.
8.0.0.146 - November 16th, 2022
Improvements
- SQLESQLES-1152: After optimization the program loads indexes metadata from an Oracle database up to 10 times faster.
- SQLDESQLES-1161: Now it is possible to configure all previously unavailable report options in the CLI Wizard.
Fixes
- SQLESQLES-1207: In some cases,
OracleException
with "ORA-31600: invalid input value TYPE BODY for parameter OBJECT_TYPE in function GET_DDL" error message occurs in the New Schema Comparison wizard when loading user-defined types metadata. - SQLESQLES-1213: In some cases, the "ERROR: syntax error at or near "."" error occurs during synchronization of PostgreSQL databases if 'SCHEMA' objects have different privileges.
- SQLDESQLES-1146: In some cases, when comparing data in SQL Server databases,
InvalidOperationException
occurs with the "There is already an open DataReader associated with this Command which must be closed first." error message. (reopen) - SQLESSQLES-1206: In some cases,
UnauthorizedAccessException
occurs with the "Access denied" message after changes in the Edit Task window have been confirmed.
8.0.0.145 - November 7th, 2022
Fixes
- SQLESQLES-1151: In some cases, if a table has to be recreated when synchronizing Oracle databases, the program generates an incorrect synchronization script.
- SQLESQLES-1172: In some cases, the /include, /exclude, /IgnoreDifference parameters were applied incorrectly in CLI.
- SQLESQLES-1182: In some cases, if the Ignore schemas option is applied, the program generates an incorrect synchronization script for extended properties objects in an SQL Server database.
- SQLESQLES-1186: The
OdbcException
with the message "ERROR [42804]: UNION types text and "char" cannot be matched." occurs in the New Schema Comparison wizard when loading user privilege metadata from a PostgreSQL 15 database. - SQLESQLES-1205: In some cases, the program displays incorrect creation and synchronization scripts for FOREIGN KEY objects in a PostgreSQL 15 database.
- SQLDESQLES-1181: In some cases,
FormatException
orArgumentException
occur if an incorrect connection string was specified for a Custom ODBC Data Source or Custom OLE DB Provider. - SQLESSQLES-1203: In some cases, the program cannot find the installed MySQL Connector/NET driver and suggests installing it again.
8.0.0.144 - October 26th, 2022
Fixes
- SQLESQLES-1113: Under certain conditions, while comparing Oracle or PostgreSQL databases using custom schema mapping, the program generates an incorrect synchronization script with wrong schema names.
- SQLESQLES-1133: In some cases, the "Unable to connect to the source control server." error occurs when connecting to the remote Git repository, although the connection settings are correct.
- SQLESQLES-1142: In some cases, when using the NullInsertWarningMode option in CLI, the program generates an incorrect synchronization script.
- SQLESQLES-1157: In some cases, if an error occurs in the New Schema Comparison wizard while loading database metadata, the program freezes after a user clicks OK in the error message box.
- SQLESQLES-1159: In some cases, the
NullReferenceException
occurs in the New Schema Comparison wizard while loading user-defined data types metadata from an Oracle database. - SQLDESQLES-1062: In some cases, the key column checkboxes in the Column mapping window can be checked only on the second attempt.
- SQLDESQLES-1147: In some cases, when comparing data in PostgreSQL databases,
OdbcException
occurs with the "ERROR [42883] ERROR: could not identify an ordering operator for type 'typename'" error message. - SQLDESQLES-1158: In some cases,
NullReferenceException
occurs while data is being recompared. - SQLDESQLES-1168: Top hyperlinks in the Database Variance Report Wizard report are not working, if the Create a separate file for each table option was enabled when a report was generated.
- SQLDESQLES-1173: In some cases,
NullReferenceException
occurs when a user runs the CLI Wizard from the Edit Task window (Scheduled Tasks). - SQLDESQLES-1176: The program doesn't compare data in SQL Server DATETIME columns and TIMESTAMP columns in Oracle, PostgreSQL and MySQL databases, when connecting to these databases as to Custom ODBC Data Source.
- SQLESSQLES-1164: When connecting to an Oracle database using Connection Type "Basic" and Login name "SYS" in the New Comparison wizard, the "ORA-28009: connection as SYS should be as SYSDBA or SYSOPER" error occurs.
8.0.0.143 - September 23rd, 2022
Fixes
- SQLDESQLES-1125: In some cases, when comparing data in PostgreSQL databases,
OdbcException
occurs with the "ERROR HY010 The cursor is open." error message. - SQLDESQLES-1143: In some cases, when comparing data in SQL Server databases, the "A severe error occurred on the current command. The results, if any, should be discarded" error occurs.
- SQLDESQLES-1146: In some cases, when comparing data in SQL Server databases,
InvalidOperationException
occurs with the "There is already an open DataReader associated with this Command which must be closed first." error message.
8.0.0.142 - September 14th, 2022
Fixes
- SQLESQLES-1131: In some cases, the program generates an incorrect synchronization script for temporal tables in SQL Server databases. Consequently, the
DATA_COMPRESSION
option value is incorrect after synchronization. - SQLESQLES-1132: The program generates an incorrect synchronization script when a graph table should be dropped and created during synchronization.
- SQLESQLES-1134: In some cases, the program freezes while generating a synchronization script for user functions with recursive calls.
- SQLESQLES-1137: In some cases, while parsing text objects, the program links objects mentioned in comments and therefore adds excessive statements when synchronizing the text objects.
- SQLDESQLES-1136: In some cases, the Fix current/last sequence values when applicable option works incorrectly for Oracle databases.
- SQLDESQLES-1138: In some cases, when comparing values with different data types,
FormatException
occurs with the "Input string was not in a correct format." error message. - SQLESSQLES-1139: The program downloads updates but doesn't start installation when a user checks for updates manually.
8.0.0.141 - September 9th, 2022
Improvements
- SQLESQLES-1118: Oracle database metadata loads up to 10x faster. (reopen)
8.0.0.140 - September 6th, 2022
Improvements
- SQLESQLES-1118: Oracle database metadata loads up to 10x faster.
Fixes
- SQLESQLES-1122: In some cases,
ArgumentException
occurs when loadingCOLUMN
object metadata from Oracle databases.
8.0.0.139 - August 26th, 2022
Fixes
- SQLESQLES-1114: In some cases,
NullReferenceException
occurs when comparingSECURITY POLICY
objects in SQL Server databases. - SQLESQLES-1119: In some cases, when comparing SQL Server and PostgreSQL databases, objects with a same name from different schemas are mapped although they shouldn't.
- SQLDESQLES-1109: When synchronizing PostgreSQL databases, if a new table is created with columns of type
array
, the table is created incorrectly, which leads to an error when inserting data into this table. - SQLDESQLES-1120: In some cases,
NullReferenceException
occurs when user switched between data tabs. - SQLDESQLES-1121: Under certain conditions, an attempt to swap source and target databases in the Edit Project window doesn't actually swap databases when a user closes the window.
- SQLESSQLES-1107: In some cases, the program doesn't offer to install Oracle client software when the software is not installed, displaying the "System.Data.OracleClient requires Oracle client software version 8.1.7 or greater" instead.
8.0.0.138 - August 16th, 2022
Fixes
- SQLESQLES-1074: Under certain conditions, when an SQL Server database contains temporal tables, Script Database wizard doesn't script history table objects.
- SQLESQLES-1073: Under certain conditions, when comparing temporal tables in SQL Server databases, the program displays history table objects as equal, although they are different.
- SQLESQLES-1100: In some cases, when synchronizing indexes in PostgreSQL databases, the program generates an incorrect synchronization script (wrong order of statements), which can cause the "ERROR: function does not exist" error. (reopen)
- SQLDESQLES-1077: In some cases, toolbar buttons are hidden on the Different Records tab.
- SQLDESQLES-1098: In some cases, while comparing floating-point values in cross-platform comparisons,
InvalidCastException
occurs. - SQLDESQLES-1108: In rare cases
ArgumentNullException
occurs after swapping source and target in the Edit Project window.
8.0.0.137 - August 11th, 2022
Fixes
- SQLESQLES-1099: When comparing Oracle databases, the program displays columns with
DEFAULT NULL
and withoutDEFAULT
values as different, despite there is no difference. - SQLDESQLES-1091: In some cases, the Fix current/last sequence values when applicable option in the synchronization wizard is available even if it is not supported by the target database.
- SQLDESQLES-1097: When a user refreshes table list in the Edit Project window, the program marks all tables for comparison, although only updating of the list is expected.
- SQLDESQLES-1104: In some cases, switching between Duplicate columns mode and Duplicate rows mode doesn't work until the program is restarted.
- SQLDESQLES-1106: In some cases, when a user refreshes table list in the Edit Project window, the program does not automatically detect a comparison key when it's possible.
8.0.0.136 - August 5th, 2022
Fixes
- SQLESQLES-1100: In some cases, when synchronizing indexes in PostgreSQL databases, the program generates an incorrect synchronization script (wrong order of statements), which can cause the "ERROR: function does not exist" error.
- SQLDESQLES-860: Under certain conditions, while comparing floating-point values in cross-platform comparisons, identical values are displayed as different. (reopen)
- SQLDESQLES-1092: In some cases, while comparing floating-point values in cross-platform comparisons,
OverflowException
occurs. (reopen) - SQLDESQLES-1102: In some cases, when the program synchronizes floating-point values between Oracle and SQL Server databases, the "The number 'value' is out of the range for numeric representation (maximum precision 38)." error occurs.
- SQLDESQLES-1103: In some cases, when the program synchronizes floating-point values between SQL Server and Oracle databases, the "ORA-01426: numeric overflow" error occurs.
- SQLDESQLES-1105: Under certain conditions, when when specifying a query to compare query results, the program falsely reports a syntax error if a query contains
ROW_NUMBER() OVER (PARTITION BY ...)
function.
8.0.0.135 - July 29th, 2022
Fixes
- SQLESQLES-1094: In some cases, while synchronizing tables with triggers in PostgreSQL databases, the program puts synchronization commands in a wrong order, which can cause the "ERROR: function does not exist" error.
- SQLDESQLES-1092: In some cases, while comparing floating-point values in cross-platform comparisons,
OverflowException
occurs.
8.0.0.134 - July 26th, 2022
Improvements
- SQLDESQLES-1035: The Precede string constants with N prefix in synchronization script option moved from the Options tab of the Edit Project window to the Configure Advanced Settings tab of the syncronization wizard.
Fixes
- SQLESQLES-1072: In some cases, the "ERROR: function "your_function" already exists with the same argument types" error occurs when synchronizing
FUNCTION
orPROCEDURE
objects in PostgreSQL databases. - SQLESQLES-1080: In some cases, when synchronizing
TABLE
orSEQUENCE
objects in PostgreSQL databases, the program puts synchronization commands in a wrong order, consequently, the "ERROR: relation "sequencename" does not exist" error occurs. - SQLDESQLES-1058: The Case of keywords option is applied incorrectly to some keywords when generating synchronization script. As a result, the case of the keywords differs from the one specified by the option.
8.0.0.133 - July 20th, 2022
Fixes
- SQLDESQLES-1079: Under certain conditions,
NotSupportedException
occurs with "Unsupported Oracle data type 101 encountered" message when the program loads data from an Oracle table which containsBINARY_DOUBLE
orBINARY_FLOAT
columns.
8.0.0.132 - July 14th, 2022
Fixes
- SQLESQLES-1030: In some cases, the program displays wrong comparison status for database options if compared databases have different names.
- SQLESQLES-1044: Under certain conditions, program generates an incorrect synchronization script for temporal tables in SQL Server databases when these tables differ in columns and these columns are part of a
PRIMARY KEY
constraint or are specified as period columns in theADD PERIOD FOR SYSTEM_TIME
. - SQLESQLES-1070: In some cases, when
FUNCTION
илиPROCEDURE
objects in PostgreSQL databases are differ in privileges, the program generates incorrect 'GRANT' and 'REVOKE' commands, which leads to the "ERROR: function FunctionName does not exist" error. - SQLESSQLES-1067: The program does not remember size of a closed dialog window if the window was closed with Cancel button.
8.0.0.131 - July 7th, 2022
Fixes
- SQLDESQLES-984: CLI code refactoring to eliminate program freezes when running multiple program instances at once. (reopen)
- SQLDESQLES-1022: When compared with <New> database the program allows to run synchronization wizard even if no tables or records are selected to synchronize.
- SQLDESQLES-1057: Minor issues in HiDPI mode in the CLI Wizard on the Additional synchronization settings step.
- SQLDESQLES-1059: In rare cases,
NullReferenceException
occurs in the Add Custom Mapping window when setting up a new comparison. - SQLDESQLES-1060: The program offers to send an error report when the "Invalid operation. The connection is closed." error occurs, although this is a regular situation, which is corrected by changing the timeouts.
8.0.0.130 - July 1st, 2022
Improvements
- SQLDESQLES-1026: Added the Fix current/last sequence values when applicable synchronization option for PostgreSQL and Oracle databases.
Fixes
- SQLESQLES-1045: Under certain conditions, the program generates incorrect synchronization script for PostgreSQL databases which leads to the "ERROR: sequence must have same owner as table it is linked to" error during syncnhronization.
- SQLESQLES-1050: Under certain conditions, the program generates incorrect synchronization script for tables in PostgreSQL databases which differ in
DEFAULT
columns, which leads to "ERROR: relation SequenceName does not exist" error during syncnhronization. - SQLDESQLES-1036: In rare cases,
InvalidOperationException
occurs when user closes the Script Data wizard after viewing SQL script on the View the Synchronization Script step. - SQLDESQLES-1047: In some cases, the program incorrectly compares
money
andnumeric(9,4)
data types in SQL Server and PostgreSQL databases in cross-platform comparisons; as result some identical rows can be displayed on the Different Records tab. - SQLDESQLES-1052: In some cases,
NullReferenceException
occurs when user uncheck some tables in the Export to CSV wizard. - SQLESSQLES-1053: In some cases, the program incorrectly finds path to the Oracle drivers what causes the inability to connect to an Oracle database.
8.0.0.129 - June 28th, 2022
Fixes
- SQLESSQLES-1032: The Show history hyperlink is not highlighted in task list in the Task Scheduler wizard.
- SQLESSQLES-1034: Incorrect Last Run Time is displayed in task list for а newly created task.
8.0.0.128 - June 10th, 2022
Fixes
- SQLESQLES-1025: In some cases, when the Use CREATE OR REPLACE option is enabled, the program generates an incorrect synchronization script for
FUNCTION
objects in PostgreSQL databases. - SQLDESQLES-1027: In rare cases, when a string columns are used as comparison key, the Perform case-sensitive comparison of strings option can be mistakenly applied which leads to incorrect comparison results.
8.0.0.127 - June 3rd, 2022
Fixes
- SQLESQLES-987: In rare cases, click on the column renaming info banner leads to
NullReferenceException
. - SQLESQLES-1001: In some cases, when MySQL tables are being synchronized, the program shows warning that a newly added column does not have a DEFAULT constraint, even though it does.
- SQLESQLES-1018: In some cases the program incorrectly compares
DEFAULT
constraints and column data types when compares MySQL and MariaDB databases, consequently tables in the Object Tree shown as different even though they are not different. - SQLESQLES-1023: Under certain conditions, when there are such differences in SQL Server databases, which require DROP and CREATE of the table during synchronization,
NullReferencesException
occurs when user tries to preview synchronization script. - SQLDESQLES-778: In rare cases,
ArgumentException
occurs when user changes some settings in the Edit Project window and clicks "Finish". - SQLDESQLES-1017: The program does not allow comparison of data stored in columns with
xml
data type between SQL Server and PostgreSQL databases.
8.0.0.126 - May 27th, 2022
Fixes
- SQLESQLES-1009: In rare cases, when SQL Server tables are differ in columns and constraints, incorrect syncronization script is being generated which deletes columns which should remain intact.
- SQLESQLES-1016: When program loads database schema from a SQL Server backup file, some dependencies between database objects can be missed, which can lead to unsuccessful synchronization.
8.0.0.125 - May 25th, 2022
Improvements
- SQLESQLES-692 Added horizontal scrolling for long lines than don't fit in the Current Line pane in the main program window.
Fixes
- SQLESQLES-989: In rare cases,
ArgumentException
with "Item has already been added" message occurs when the program comparesSEQUENCE
objects in PostgreSQL databases. (reopen) - SQLESQLES-1003: If during the synchronization of tables in CLI, the table is recreated and an error occurs during the transfer of data from the old to the new one, the program does not consider this error critical, which leads to the loss of data.
- SQLESQLES-1004: In some cases, when a SQL Server table containing columns with timestamp or rowversion data types is recreated during data synchronization, then the INSERT INTO script may be generated incorrectly.
- SQLESQLES-1011: In rare cases, the program does not extract some of the PostgreSQL database objects, due to which some of the compared objects are not matched in a pair and displayed as existing only in the source and only in the target database, although these objects are in both databases.
- SQLESQLES-1014: In some cases, the program incorrectly retrieves metadata of PostgreSQL DB TRIGGER objects, due to which the creation scripts for these objects are displayed incorrectly, and errors may occur during synchronization.
- SQLDESQLES-984: CLI code refactoring to eliminate program freezes when running multiple program instances at once. (reopen)
- SQLDESQLES-1012: In some cases, when string columns and columns of another data types are used as comparison key,
NotSupportedException
occurs.
8.0.0.124 - May 17th, 2022
Improvements
- SQLDESQLES-922: When selecting
as a target database, show table creation warnings only when creation is likely leads to any issues. - SQLDESQLES-923: When selecting
as a target database, allow user to select for synchronization (creation in the target database) even those tables that do not have data.
Fixes
- SQLESQLES-996: In rare cases, when user selects an object in the Object Tree,
IndexOutOfRangeException
occurs. - SQLDESQLES-990: In some cases,
OverflowException
occurs when comparing columns of decimal data type between SQL Server and PostgreSQL databases. - SQLDESQLES-992: CLI does not report errors found when parsing SQL queries loaded from a project file or config file and silently tries to continue working.
- SQLDESQLES-993: In some cases, when unescaped column names that match certain keywords are used in a query to SQL Server tables, the program reports an error when editing the query in the New Query window, although the query is correct.
- SQLDESQLES-994: In some cases, the program does not handle critical exceptions that occur in database drivers when extracting data; consequently, the program does not report errors and crashes.
- SQLESSQLES-999: The link to download the SQL Compact drivers offered by the program in the New Project wizard is incorrect.
8.0.0.123 - May 5th, 2022
Fixes
- SQLDESQLES-980: In rare cases, when string columns are used as comparison key, identical records in databases are considered as different (appear on the Only in Source and Only in Target tabs). (reopen)
8.0.0.122 - April 29th, 2022
Fixes
- SQLESQLES-989: In rare cases,
ArgumentException
with "Item has already been added" message occurs when the program comparesSEQUENCE
objects 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.
8.0.0.121 - April 26th, 2022
Fixes
- 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.
8.0.0.120 - April 22nd, 2022
Fixes
- SQLDESQLES-981: In some cases, in cross-platform comparisons
InvalidOperationException
occurs when string columns are used as comparison key.
8.0.0.119 - April 14th, 2022
Fixes
- SQLESQLES-974: In rare cases,
NullReferenceException
occurs when program loadsPOLICY
objects from a PostgreSQL database during a comparison. - SQLESQLES-982: In rare cases,
OdbcException
with error message 'Unknown error 1142' occurs when program loadsPERMISSION
objects from a MySQL database during a comparison.
8.0.0.118 - April 5th, 2022
Fixes
- 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).
8.0.0.117 - March 29th, 2022
Improvements
- 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.
Fixes
- 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,
NotImplementedException
occurs when a user clicks Run button on the last step of Script Database wizard. - SQLESQLES-965: In rare cases,
NullReferenceException
occurs 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,
Exception
occurs 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 [57014] ERROR: canceling statement due to statement timeout;" occurs when PostgreSQL databases are compared.
- SQLESSQLES-822: In very rare cases,
InvalidOperationException
occurs 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,
ArgumentNullException
occurs when user starts Task Scheduler wizard. - SQLESSQLES-958: In some cases,
ArgumentException
with 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,
NullReferenceException
occurs 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
NullReferenceException
.
8.0.0.116 - March 3rd, 2022
Fixes
- 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,
SCHEMA
objects are not paired, which leads to incorrect comparison and incorrect generation of synchronization scripts. - SQLESQLES-948: In some cases, the program incorrectly processes
DEFAULT
objects in SQL Server databases, which leads to incorrect displaying while a preview and generating an incorrect synchronization script.
8.0.0.115 - February 25th, 2022
Fixes
- SQLESQLES-796: In rare cases,
NotImplementedException
occurs 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:
TRIGGER
,SECURITY POLICY
,PARTITION SCHEME
,PARTITION FUNCTION
,SCHEMA
,XML SCHEMA COLLECTION
,GLOBAL DEFAULT
,FULLTEXT CATALOG
,FULLTEXT STOPLIST
,SEARCH PROPERTY LIST
. - SQLESQLES-940: When
FULLTEXT CATALOG
,FULLTEXT STOPLIST
, andSEARCH PROPERTY LIST
objects 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.
8.0.0.114 - February 16th, 2022
Fixes
- SQLESQLES-934: In some cases,
NotImplementedException
occurs 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.
8.0.0.113 - February 11th, 2022
Fixes
- SQLDESQLES-925: In rare cases, Skip and Stop buttons do not stop comparison but cause the program to hang. (reopen)
8.0.0.112 - February 4th, 2022
Fixes
- 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.
8.0.0.111 - February 1st, 2022
Fixes
- 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,
NullReferenceException
occurs. - 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 PROPERTY
metadata 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)
8.0.0.110 - January 25th, 2022
Improvements
- SQLESSQLES-876: Now program collects more debug info when an error occurs during comparison or synchronization.
Fixes
- SQLESQLES-823: In rare cases,
InvalidCastException
occurs 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,
NullReferenceException
occurs when the program builds an index while comparing data. - SQLDESQLES-910: In rare cases,
InvalidOperationException
occurs 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,
InvalidOperationException
occurs during project load when user mapping was applied in the project.REOPENED - SQLESSQLES-902: In some cases,
ArgumentOutOfRangeException
occurs when user switches to the Advanced tab in the Options window. - SQLESSQLES-906: In rare cases,
ArgumentException
occurs when the program loads metadata from a database.
8.0.0.109 - December 30th, 2021
Improvements
- 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.
Fixes
- SQLESQLES-895: In some cases,
NotImplementedException
occurs 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
IOException
occurs 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,
ArgumentException
occurs 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,
NullReferenceException
occurs.
8.0.0.108 - December 22nd, 2021
Improvements
- SQLESQLES-893: We updated an icon used in the Object Tree for SQL Server's temporal tables to distinguish them from regular tables clearly.
Fixes
- SQLESQLES-892: The program generates an incorrect synchronization script for a
DEFAULT
constraint 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).
8.0.0.107 - December 13th, 2021
Fixes
- SQLESQLES-884: In rare cases,
NullReferenceException
occurs during cross-platform schema comparison. - SQLESQLES-887: Under certain conditions,
InvalidOperationException
occurs during project load when user mapping was applied in the project.
8.0.0.106 - December 6th, 2021
Fixes
- SQLESQLES-881: In some cases,
NullReferenceException
occurs 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
ArgumentOutOfRangeException
occurs when program generates synchronization script for SQL Server databases. - SQLDESQLES-875: In some cases,
NullReferenceException
occurs 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).
8.0.0.105 - November 30th, 2021
Improvements
- SQLDESQLES-879: The program saves the Preview script before synchronization setting in the Synchronization wizard between runs.
Fixes
- SQLDESQLES-874: Under certain conditions,
NullReferencesException
occurs while loading data in cross-platform comparisons if key specified char key columns. (reopen)
8.0.0.104 - November 26th, 2021
Fixes
- 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.
8.0.0.103 - November 26th, 2021
Fixes
- SQLESQLES-872: In some cases, a
MySqlException
occurs during loadingCHECK CONSTRAINT
metadata from a MySQL database. - SQLDESQLES-870: In some cases, a
NullReferencesException
occurs 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,
NullReferencesException
occurs while loading data in cross-platform comparisons if key specified char key columns. - SQLESSQLES-871: In rare cases, the
MissingMethodException
occurs when a program starts.
8.0.0.102 - November 24th, 2021
Improvements
- 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.
8.0.0.101 - November 17th, 2021
Fixes
- SQLDESQLES-867: While synchronizing queries, on rare occasions,
NullReferenceExeption
occur when in a target database, the size of a field of a char data type is less than in a source database
8.0.0.100 - November 16th, 2021
Initial public version of the SQL Examiner Suite 2022. You can see the list of changes and improvements in the 2022 version in the Release Notes.