|
|
Database Comparer Version History
|
|
|
Fixed Bugs:
- TableDataComparer DateTime datatype fix.
Implemented Features:
- FB3+ GRANT... USAGE ON... was implemented.
Fixed Bugs:
- FB2.5 and earlier fix: the "Column unknown. FNC.RDB$OWNER_NAME" on extracting Grants;
- FB3+ fixes: Sub-Routines were removed from comparing.
Fixed Bugs:
Fixed Bugs:
- FB3 fix: GRANTs for FUNCTIONs.
Fixed Bugs:
- FB3 fix: GRANT EXECUTE procedure TO procedure.
Fixed Bugs:
- The "Copy Profile" interface was fixed;
- FB 2.5 fix: WITH... SELECT... for MERGE statement.
Implemented Features:
- The "Update Generator Values" (IB/FB) function was improved.
Fixed Bugs:
- Comparing Object Grants was fixed.
Implemented Features:
- User interface changes: Now, the DB comparing function runs on the Profiles page.
Fixed Bugs:
- FB 2.1+ fixes: WITH [RECURSIVE] ... SELECT in Expression.
Implemented Features:
- The Main window interface was redesigned and improved;
- The app configuration file "profile.cfg" was moved to "%APPDATA%\Database Comparer\profile.cfg".
Fixed Bugs:
- MSSQLParser, MSSQLExec (VCL): the script loading from a file was fixed;
- TableDataComparer: the code page for the Unicode output file (Result.SQL) was fixed;
- MSSQL 2014+ fixes: CHECK constraint in table-DDL, AV on parse script with finished GO at end without CrLf (short text);
- MSSQL 2014+, 2016+ fixes: CREATE FULLTEXT CATALOG, DataTypes: datetime2, smalldatetime, datetimeoffset, etc.;
- FB 3+ fixes: DATEADD(WEEK,...) MERGE, EXTRACT(MILLISECOND...);
- PostgreSQL 12.1 support: extracting domains with check constraints and parsing labels were fixed.
Implemented Features:
- The CROSS APPLY statement for the SELECT command was added;
Fixed Bugs:
- The database comparer cannot parse the "rows 1" statement in triggers - fixed;
Fixed Bugs:
- FB3: Procedure dependencies fix;
- Extract function arguments fix;
- FB3: CONTAINING fix;
- FB3: OVER-clause with ROW_NUMBER(), RANK(), DENSE_RANK() - fixed;
- FB3: UDF fixes. CSTRING datatype, MODULE_NAME, ENTRY_POINT keywords - fixed;
- FB 2.1+: CREATE COLLATION - fixed;
- FB3: FUNCTION (...) RETURNS param DETERMIMISTIC - fixed;
- FB: Computed field with datatype (erroneous script) - fixed;
- FB3: Local declaration procedure/function into proc/func body - fixed;
- FB3: Default values for proc-params fix (exptact from DB) - fixed.
Implemented Features:
- The CROSS APPLY statement for the SELECT command was added;
- The Packages support was added to the Firebird 3.0 engine;
- The parsing/building of CREATE FUNCTION statement was implemented;
- The DATEADD, DATEDIFF, and OVERLAY functions parsing was introduced for Firebird 3.0;
- The MS SQL Server CTE support was added;
- The default values for the stored procedure parameters was implemented;
- BDE connector was added to the DBC Datapump utility.
Fixed Bugs:
- The database comparer cannot parse the "rows 1" statement in triggers - fixed;
- Crash comparing two oracle 11g2 databases - fixed;
- The Invalid typecast error occurs when extracting the Firebird 3.0 internal functions - fixed;
- The SQL LIST ALL and DISTINCT statements cause the parsing error in Firebird 2.6 - fixed;
- The valid Firebird 2.5 trigger with the script containing the CTE syntax is marked as invalid - fixed;
- The extractor cuts the final ")" from the stored procedure code - fixed;
- The updating of the Database Default Charset failed - fixed;
- The problems with parsing of computed fields of NUMERIC (nn, xx) type were fixed;
- The NOT NULL table columns are not changed to NULL for Firebird 3.0 - fixed;
- The problems with parsing of stored procedure scripts containing the PERCENT and OPTION statements were fixed;
- The comparer doesn't create the global temporary table, but it creates all the indices, primary keys, and foreign keys that belong to GTT - fixed;
- The Connection String alias parameter is not saved - fixed;
- The Access Violation error occurs when parsing MS SQL scripts - fixed.
Implemented Features:
- DataPump tool (is installed together with Database Comparer tool);
- The configuration file is now stored within the AppData directory for Windows 7 and later;
- Common Table Expressions (CTE) support;
- Full Firebird 3.0 support;
- FB: Procedure params: NOT NULL support added;
- Minor fixes and improvements.
Fixed Bugs:
- MSSQL (Transact-SQL) script syntax fixes - http://barry.exp-host.ru/tracker/view.php?id=1189
- TIME datatype with scale: time [ (fractional second scale) ];
- Derived_table parsing, like this: SELECT * FROM (VALUES (1, 2), (3, 4) ) AS MyTable(a, b);
- SET-statement, options sequence fix: SET ANSI_PADDING, ANSI_WARNINGS, ANSI_NULLS, CONCAT_NULL_YIELDS_NULL, ARITHABORT, QUOTED_IDENTIFIER ON;
- CREATE INDEX with WHERE-clause;
- FB3: Disabling of the system table updates for Firebird 3.0 - http://barry.exp-host.ru/tracker/view.php?id=1063
- FB3: Added support for the Generator increments (START WITH... INCREMENT BY...) - http://barry.exp-host.ru/tracker/view.php?id=996
Fixed Bugs:
- FB: Firebird fixes (generator-fields, etc.);
- IB: P.RDB$RELATION_NAME field not found in rdb$procedure_parameters (Interbase XE) - fixed;
- MySQL: MySQL 4.0 "information_schema.routines" doesn't exist - fixed;
- FB: Access violation when loading the update script to the TIBSQLExec component - fixed.
Fixed Bugs:
- FB: Description of procedure params fixes;
- FB: Type of Domain default value fix.
Fixed Bugs:
- FB: Parse Hex-value (0x000...) fix for Int64.
Fixed Bugs:
- FB: Extract metadata from DB fix. TYPE OF for procedure params;
- FB: EXECUTE STATEMENT fix. Optional [DATA SOURCE].
Fixed Bugs:
- PostgreSQL: Extract database metadata fixes;
- PostgreSQL: CREATE FUNCTION, CREATE SEQUENCE fixes;
- MySQL: Table options, index options fix;
- IB/FB: Fix trigers parsing;
- PostgreSQL fixes.
Implemented Features:
- Text encoding added: ANSI, Unicode, UTF-8;
- Minor fixes and improvements.
Implemented Features:
- The .ini file is no longer used. Starting from version 6.1 the Database Comparer setting are stored in the system registry;
- Minor fixes and improvements.
Implemented Features:
- MySQL: PROCEDURE/TRIGGER support added (MySQL v.5.x);
- Oracle: v.11g suppopt added (11.x).
Fixed Bugs:
- FB: EXECUTE STATEMENT <options> fix;
- Interface: DBTree - show diff's fixes;
- Interface: Focus not work on mouse click in error-list after script parsing (if errors found);
- MySQL: PhpMyAdmin script parse fixes;
- Firebird: "...SIMILAR... ESCAPE..." fix;
- Issue: 0000423 (by jamaakubaff): http://barry.exp-host.ru/tracker/view.php?id=423
- MS SQL: SELECT... FOR-clause fix;
- MS SQL fixes;
- TYPE OF COLUMN <table>.<column> declaration fix.
Implemented Features:
- Win64 (x64) version;
- "Delete Folder" command implemented for database-aliases (left panel);
- Full Unicode support.
Fixed Bugs:
- MSSQL: SELECT-directive ...FOR BROWSE/XML fix,
Issue: http://barry.exp-host.ru/tracker/view.php?id=225
- FB: Common Table Expressions (CTE) fix for CREATE/ALTER VIEW statement;
- FB: Common Table Expressions in procedure body fix;
- MSSQL: Default values for function/procedure varibles fix.
Implemented Features:
- TEXT to BLOB SUB_TYPE TEXT conversion was implemented;
- FB21: extracting of stored procedure parameters was improved (DOMAIN, TYPE OF DOMAIN).
- FB2: triggers support was added;
- FB2: UPDATE OR INSERT... MATCHING... RETURNING, TYPE OF <domain>, MERGE-statement;
- FB2: Common Table Expressions were implemented (WITH... SELECT...);
Fixed Bugs:
- TDBComparer: the problem with changing of database type was fixed;
- MSSQL: fields with UNIQUE-constraints were extracted incorrectly - fixed;
- The problem with parsing of "AS" statement was fixed;
Implemented Features:
- MSSQL: stored procedure comparing improvements.
- MSSQL: Default constraints improvements.
- MSSQL: comparing of table-valued functions which return tables was improved.
- MSSQL: Update column position was added.
- MSSQL 2005 improvements: SCHEMA, TYPE, XML SCHEMA COLLECTION, XML INDEX.
- MSSQL 2005: extracting of Descriptions was improved.
Fixed Bugs:
- Oracle: "type of object" fix.
- IB/FB: errors in parsing of "STARTS WITH" and "ALTER EXCEPTION" statements - fixed.
- IB/FB: SET BLOBFILE does not work - fixed.
- IB/FB: CHAR/NCHAR (VARYING) datatype fix.
- MSSQL: OPENDATASOURCE, OPENROWSET, OPENQUERY fix.
- MSSQL: BEGIN TRY/CATCH fix.
- MSSQL: ALTER TABLE ENABLE/DISABLE TRIGGER fix.
- MSSQL: negative IDENTITY values.
- "DUMMY" was excluded from keyword list.
- ASA7: "Extract metadata from DB" fix.
Implemented Features:
- MySQL: "Case sensitive identifiers" option added.
Fixed Bugs:
- DBCVCL: dbcTableDataComparer.pas - Delphi5 compilation fix.
- DBCVCL: Fix for packages: ComparerADOD7.dpk, ComparerMyDACD7.dpk, ComparerIBDACD7.dpk, remove using *.dcp libraries.
- DB2: Parsing fixes: CONNECT, CREATE TABLESPACE, CREATE INDEX, ALTER TABLE...ADD CONSTRAINT.
- Yaffil: Fix for parse function PAD (...FOR...)
Implemented Features:
- IB DAC support was implemented.
- TableDataComparer: Logic related to deleting of records improved.
- News icons added.
Fixed Bugs:
- IB/FB: BLOB SUBTYPE TEXT - charset fix.
- TableDataComparer: Processing of fields of BIGINT type fixed.
- IB/FB: "IB Services" (Backup/Restore/Validate) - library defined by user inside alias was not used, fixed.
- MSSQL: Case sensitive databases fix.
- IB/FB: "Test connect" - library defined by user inside alias was not used, fixed.
- IB/FB: Grants for views fix.
Implemented Features:
Oracle:
- Processing fields of CLOB datatype improved in TableDataComparer.
- GLOBAL TEMPORARY TABLEs support added.
MSSQL:
- Parsing of SELECT TOP <expression> * FROM <table> expressions improved.
ASA:
- Parsing of EVENT statements improved.
ASE:
- Processing of script header improved, comparison of database options added.
Fixed Bugs:
Oracle:
- Parsing fields of VARCHAR2( size ) datatype fixed (size was not extracted properly).
MSSQL:
- Parsing of CREATE DATABASE statement fixed.
- Parsing of IDENTITY (data_type [ , seed , increment ] ) AS column_name fixed.
- Parsing of procedure calls without parameters fixed.
- Table-valued functions being not extracted from databases and update of table-values functions fixed.
ASA:
- Parsing of GRANT statement fixed.
- Parsing of CREATE DOMAIN statement fixed.
- Parsing of GO-terminator fixed (some statements stared with GO... were interpreted as terminator).
- For v 8.x extracting of metadata fixed (related to error "Table SYSCONSTRAINT not found").
ASE:
- Bug related to unknown field "xtype" error in TableDataComparer fixed.
IB/FB:
- Parsing of PLAN options fixed.
- Parsing of ALL keyword as and argument inside aggregate function fixed.
- Parsing of ALTER TRIGGER statement fixed. (ALTER TRIGGER <trigger-name> {ACTIVE/INACTIVE}).
- Parsing of string datatypes inside UDF parameters fixed (size was not extracted properly).
- Interbase v 5.x error "Can't find procedure isc_service_attach in gds32.dll" fixed.
Implemented Features:
- Extract and compare Metadata for Sybase ASE, Postgre SQL, IBM DB2 implemented.
- Oracle: extracting and processing of TYPE's and PACKAGE's added.
- MSSQL: MSSQL 2005 support added.
- MSSQL, Sybase ASE: Full-text parsing implemented allowing to extract metadata from IF conditions and parameters of sp_executesql.
- MySQL: Support for GIS (geographic information system) datatypes added.
- MySQL: Tables creation algorithm improved (constraints, keys).
- TableDataComparer - property IngnoreComputedFields added.
- Sybase ASE: Support of roles, logins, users and rights added.
- Various improvements related to work with Sybase ASE.
- IB/FB: Field datatypes conversion improved (using update of system
tables), controlled by AllowDatatypeConversion option.
- Comparing of scripts and databases for Sybase ASE (initial
implementation).
- MSSQL: Extraction of Defaults from database for MSSQL2000/2005 was
improved.
Fixed Bugs:
- Database alias create/copy routine fixed - server version was not
- displayed correctly (AV if copied).
- Long path to client library causes exception (database alias) - fixed.
- IB/FB: Bug related to creating/deleting of roles when comparing databases - fixed.
- MSSQL: Float datatype fix.
- MSSQL: Parsing of trigger's headers fixed: {FOR / AFTER / INSTEAD OF},
[WITH APPEND], [NOT FOR REPLICATION].
- TableDataComparer: IB/FB Dialect 3 table names fix.
- Oracle: Execute script fix, Extract packages, types from database.
- TableDataComparer: Output format fix for float values.
- PostgreSQL: v.8.0 fix (relation "pg_catalog.pg_authid" not found).
- IB/FB: VARCHAR(1) fix.
- IB/FB: Missing "AS" when parsing triggers - fixed.
- MSSQL: Parsing of GRANT statement fixed.
- MySQL: Parsing of Unique key fixed (length of the key was ignored).
- MySQL: Engine MEMORY/HEAP fixed (identified as separate statements).
- IB/FB: Relations were extracted only for triggers - fixed.
- IB/FB: Identifiers starting with "_" was not quoted.
- IB/FB: UDF calls without return params (type RDB$SET_CONTEXT) - fixed.
- IB/FB: Parsing of CREATE TRIGGER... without [POSITION n] fixed.
Implemented Features:
- A new component for comparing and synchronizing table data was added.
- The following SQL servers support was added: MS SQL, Oracle, MySQL, Sybase.
- TableDataComparer: Sybase support was added.
- Sybase: Extract and compare PUBLICATIONs.
- Sybase(ASA): Extract metadata from DB, compare DB-structures, update DB-structure, execute external script.
- IB/FB: Option "Ignore IBE$... objects" added (ignore objects created by IBExpert).
- Dependencies of grants with the objects are added.
- MSSQL2000 keywords are added. Quoting of identifiers performed only if necessary.
- MSSQL: Remove dependencies for field before ALTER COLUMN.
- Support of CharSet-prefix for strings was added (e.g.: select _unicode_fss 'ABCD' from rdb$database).
- Support of Interbase v 4.0 restored (extract metadata).
- Domains CHECK altering via ALTER DOMAIN DROP CONSTRAINT / ADD CHECK (IB6.0 and up).
- TableDataComparer: comparison of tables with different structure.
Fixed Bugs:
- IB/FB: System CHECK_-triggers for views were extracted with option "WITH CHECK OPTION".
- Extraction of views with “WITH CHECK OPTION” (FB 1.5.2 truncates "OPTION" when saving view body into RDB$VIEW_SOURCE).
- REVOKE performed before assigning of rights (GRANTs) - fixed.
- Temporary dropped indexes (when updating other objects) was not be restored afterwards - fixed.
- EXTERNAL [FILE] parsing.
- NEW/OLD context-variables.
- "GLOBAL"-keyword removed.
- TxxxSQLExec closes connection after ExecuteScript - fixed.
- During updating of domain type the constraints on corresponding fields was not dropped - fixed.
- Temporary dropped constraints (and possible some other DB-objects) was not restored at first comparison pass.
- Updating of Precision, Scale for Decimal/Numeric (domains, table fields).
- Comparing of tables with compare domains option turned off may lead to “Index out of bounds” error - fixed.
Implemented Features:
- Starting from now the Ya / FB extensions of the EXCEPTION command are fully supported.
- The updating of the View objects has been improved.
- The deletion of the Domain objects which are used in Views has been improved.
- Starting from now the database Triggers are modified with the ALTER command instead of using the DROP / CREATE pair (IB6.x and higher).
- The data type conversion is performed using ALTER COLUMN / ALTER DOMAIN commands if it is possible (IB6.x and higher).
- Currently the database object descriptions are included into the resulting update script (using the DESCRIBE command).
- The Numeric / Decimal data type extraction has been improved.
- Starting from now the dbc script parser does not require for the AS specification in the CREATE DOMAIN ctatements: CREATE DOMAIN domain [AS] <datatype>...
Fixed Bugs:
- Cross references for the stored procedures are not used in the comparing process - fixed.
- The new View objects are not created - fixed.
- The inactive triggers look activated within the resulting update script - fixed.
- The ALTER DOMAIN command is generated incorrectly - there are some superflow commands like DEFAULT, NOT NULL etc.
- The table field constraints are not dropped with Alter Domain and Alter Column commands.
- From now on the data conversion for BLOB fields is disabled for both the Alter Domain and Alter Column commands.
- When restoring a database the path to the backup file was given from the "Backup to file..." field instead of using the "Restore from file..." field - fixed.
- The problem with comments like '/*/ comment */' has been fixed.
- The following commands did not work: Tools - Sync Data, Sync Tables - fixed.
- The error occurs when trying to execute an empty Update-script using the "Execute Script" button - fixed.
- The navigating through the UpdateTree control is wrong after storing the Update-script which has disabled operators - fixed.
Implemented Features:
- Extraction of the database triggers has been improved.
- Working with Windows XP themes has been improved.
- The detailed work-flow of the comparison process and build-in services (such
as backup/restore/validate databases) can be saved to the log file.
- Comparing of the database objects descriptions has been improved. The database object differences are displayed using the TDiff component provided by Angus Johnson, http://www.users.on.net/johnson/delphi/
- Support of the BOOLEAN type fields for IB 7.x added.
Fixed Bugs:
- Comparing of the DEFAULT field parameters has been fixed. From now if this parameter is equal to NULL for the specified DOMAIN, the DEFAULT value will be taken from the corresponding field definition.
- Comparing of the CHARACTER SET parameters for calculated string fields was removed.
- Interbase parser error occured when parsing stored procedure or trigger which contain the term ('^') symbol - fixed.
- Grants on system tables were not compared - fixed.
- Grants on View objects were dropped after comparing - fixed.
Implemented Features:
- Object Description feature added. Object descriptions can be generated via the system tables update or using of the IBExpert's DESCRIBE statement. Please see "Compare Options" dialog for more details.
- Support of universal triggers for Yaffil and FireBired 1.5 added.
- Processing of external tables fields located in external files has been improved. The algorithm of update of the external table fields is the same as for regular table fields.
- Explicit COMMITs have been eliminated from the UpdateScript. From now the whole script executed with the SET AUTODDL ON option, which means that changes will be committed after each UpdateScript operator.
- Separate thread with buffering added for log input and output.
- Ability to change length for string type domains added.
- Added "Page Size" option for database restore.
- The command line support added. To learn more about command line parameters and options please run the Database Comparer from the command line with following syntax: DBCOMPARER /?
Fixed Bugs:
- Bug with multibyte charsets string strings (e. g. UNICODE_FSS) comparing fixed. Please note that this problem still exists when comparing SQL scripts and altering size of multibyte charsets string fields.
- Bug with procedure parameter of TIMESTAMP type being converted to DATE type in Dialect 3 fixed.
- Bug with failure to extract metadata if there is no user / password specified for given database alias fixed.
- Bug with missing FOREIGN KEYs in DB-Tree after successful execution of UpdateScript fixed.
- Bug with Target-DB database connection still open after errors occured during metadata update (e.g. foreign key deletion failure) and "Break on error" option was used fixed.
- Bug with multiply refresh of Views descriptions fixed.
- Bug with empty procedure body (when UDF declaration changed) fixed.
- Bug with updating triggers after linked procedure parameters list has been changed fixed.
- Bug with parsing of CHECK constraint without name corrected.
- Bug with parsing of quote-char for EXCEPTIONs fixed.
Implemented Features:
- Two new UpdateScript tree appearences have been added. From now you can group script objects in two ways: by Operations/Objects and by Objecs/Opreations.
- Both the Enable Statement and Disable Statement operations are available for each branch of the UpdateScript tree. This feature provides you an easy way to filter different statements for given database object. E.g., creating a new procedure, deleting old tables and so on.
- The "Live Update" feature has been implemented. Every time you run Database Comparer it checks via Internet for last program version available on the website.
- Sub node counts displaying has been added within the UpdateScript tree (StatementsTree mode).
- Most Database Compare options, such as current database alias (Backup/Restore page), Compare mode and so on are stored on exit from application.
Fixed Bugs:
- Option "Break on Error" fixed.
- Disabled within the UpdateScript tree SQL statements are saved to Result.SQL fixed.
Note: you can also disable/enable statements with pressing SPACE key, this way the focus will be moved to the next statement (operator) within the UpdateScript tree. Pressing ENTER key you will switch to edit mode.
- Script operators will be double quoted only if the "SQL Dialect 3" option specified and operator has a new format.
- Fixed script parsing error on INSERT statement. From now such statements will be ignored.
- Added PRIMARY KEY script definition parsing.
Example: create table tbl_name(id integer not null PRIMARY KEY, ...)
- The COMMIT statement within the script now can be in two forms: "COMMIT WORK;" and "COMMIT;"
- Alias edit window: only database name is extracted and used for Alias name by default.
- Handling of the Large Fonts improved.
Implemented Features:
- Database Comparer now uses Database Comparer VCL v. 1.0.
- From now you can compare one database with another database or database with SQL/DDL script or even two SQL/DDL scripts!
- Step-by-step execution of Update script added.
- Recording a log for errors occurred during Update script execution.
- All TtreeView replaced with TvirtualStringTree that lead to drastic speed increase and better memory management.
- Enhanced algorithm for table filed domain replacement. This also help better handle situations when View based on such tables need to be rebuild.
- Removed repeatable procedure body altering when links need to be deleted.
- Added ROLE option to alias connection properties dialog.
- DB-Tree panel now displays links “Domain”-“Table Field” and “Domain”-“View Field”.
|
|