View Issue Details

IDProjectCategoryView StatusLast Update
0000866Database Comparer VCLGeneralpublic2019-04-18 19:46
Reportershirokov Assigned Tobarry  
PriorityhighSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Fixed in Version6.2.0.1657 
Summary0000866: The default from the Domain is not allowed (type of domain problem)
DescriptionThe latest version of Database Comparer VCL

The comparer generates invalid update script:

* Server version: LI-V6.3.3.26778 Firebird 2.5
 SQLDialect: 3. ODS: 11.2. Forced writes: On. Sweep inteval: 20000.
 Page size: 8192. Cache pages: 2048 (16384 Kb). Read-only: False. */
SET NAMES UTF8;

SET SQL DIALECT 3;

CONNECT '192.168.1.2:/DB/SPCompTest2.fdb' USER 'SYSDBA' PASSWORD 'XXXXXXX';

/* Create Domains... */
CREATE DOMAIN "D_SampleDomain" AS VARCHAR(20) DEFAULT 'My';

/* Alter Procedure... */
/* Alter (SP_A) */
SET TERM ^ ;

ALTER PROCEDURE SP_A(
I1 TYPE OF "D_SampleDomain" = 'My', <--- The default from the Domain is not allowed !!!!!!!!!!!!!!!!!!!!!! :-( Please correct this BUG
I2 VARCHAR(100))
 AS
begin
 execute procedure "SP_B"( :I2 );
end
^

SET TERM ; ^

DESCRIBE PARAMETER I1 PROCEDURE SP_A
'IP1';

DESCRIBE PARAMETER I2 PROCEDURE SP_A
'IP2';

DESCRIBE PARAMETER I1 PROCEDURE SP_A
'IP1';

DESCRIBE PARAMETER I1 PROCEDURE SP_B
'IP1';

DESCRIBE PARAMETER I1 PROCEDURE SP_A
'IP1';

DESCRIBE PARAMETER I1 PROCEDURE SP_B
'IP1';
Steps To ReproduceCreate both master and target FB 2.5 databases by using of the scripts below and compare two databases:

################################
Use that as MasterDB

CREATE DOMAIN "D_SampleDomain" AS
 VARCHAR(20)
 DEFAULT 'My'
 COLLATE UTF8;
SET TERM ^^ ;

CREATE PROCEDURE SP_A (
 I1 TYPE OF "D_SampleDomain",
 I2 VarChar(100)) AS
BEGIN
 SUSPEND;
END ^^
COMMENT ON PARAMETER SP_A.I1 IS 'IP1' ^^
COMMENT ON PARAMETER SP_A.I2 IS 'IP2' ^^
CREATE PROCEDURE SP_B (
 I1 VarChar(60)) AS
BEGIN
 SUSPEND;
END ^^
COMMENT ON PARAMETER SP_B.I1 IS 'IP1' ^^
SET TERM ; ^^
SET TERM ^^ ;


ALTER PROCEDURE SP_A (
 I1 TYPE OF "D_SampleDomain",
 I2 VarChar(100)) AS

begin
 execute procedure "SP_B"( :I2 );
end ^^
ALTER PROCEDURE SP_B (
 I1 VarChar(60)) AS

begin
 /* code */
end ^^
SET TERM ; ^^


####################################
Use that as DestinationDB

SET TERM ^^ ;

CREATE PROCEDURE SP_A (
 I1 VarChar(100)) AS
BEGIN
 SUSPEND;
END ^^
COMMENT ON PARAMETER SP_A.I1 IS 'Test' ^^
CREATE PROCEDURE SP_B (
 I1 VarChar(60)) AS
BEGIN
 SUSPEND;
END ^^
SET TERM ; ^^
SET TERM ^^ ;

ALTER PROCEDURE SP_A (
 I1 VarChar(100)) AS

begin
 execute procedure "SP_B"( :I1 );
end ^^
ALTER PROCEDURE SP_B (
 I1 VarChar(60)) AS

begin
 /* code */
end ^^
SET TERM ; ^^
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2015-09-14 19:39 shirokov New Issue
2015-09-23 00:03 barry Status new => resolved
2015-09-23 00:03 barry Fixed in Version => 6.2.0.1657
2015-09-23 00:03 barry Resolution open => fixed
2015-09-23 00:03 barry Assigned To => barry
2019-04-18 19:46 barry Status resolved => closed