View Revisions: Issue #6674

Summary 0006674: False conflict change detection on update of Null or Empty values in NVARCHAR(MAX) and VARCHAR(MAX) columns (SQLServer-specific)
Revision 2024-12-11 02:09 by pbelov
Steps To Reproduce Server db=SQL Server (SymQaRoot schema)
Client db=SQL Server (SymQaClient schema)

CREATE TABLE SymQaRoot.dbo.test_nvarchar_max(
    id int NOT NULL
    ,col2 int NULL
    ,col3 nvarchar(max) NULL
    ,CONSTRAINT test_nvarchar_max_pk UNIQUE (id)
);

INSERT INTO SymQaRoot.dbo.test_nvarchar_max VALUES (1, 11, NULL); -- Seed null value for col3

-- Create two conflicting updates (on two different nodes) targeting different columns:
UPDATE SymQaRoot.dbo.test_nvarchar_max SET col2=33 WHERE id=1;
UPDATE SymQaClient.dbo.test_nvarchar_max SET col3='COMMENT_33' WHERE id=1;

-- Observe:
-- Three changes to the col3 column, resulting in:
-- (correct) col3 == COMMENT_33 in symQaRoot.dbo.test_nvarchar_max
-- (incorrect) col3 == empty/null value in the symQaClient.dbo.test_nvarchar_max
-- Note: The col2 is set to 33 on both nodes (correct).

Select 'source' as node, s.* FROM SymQaRoot.dbo.test_nvarchar_max s
UNION ALL
Select 'target' as node, t.* FROM SymQaClient.dbo.test_nvarchar_max t;
Revision 2024-12-11 02:05 by pbelov
Steps To Reproduce Server db=SQL Server (SymQaRoot schema)
Client db=SQL Server (SymQaClient schema)

CREATE TABLE SymQaRoot.dbo.test_nvarchar_max(
    id int NOT NULL
    ,col2 int NULL
    ,col3 nvarchar(max) NULL
    ,CONSTRAINT test_nvarchar_max_pk UNIQUE (id)
);


INSERT INTO SymQaRoot.dbo.test_nvarchar_max VALUES (1, 11, NULL); -- Seed null value for col3


-- Create two conflicting updates - on two different nodes:
UPDATE SymQaRoot.dbo.test_nvarchar_max SET col2=33 WHERE id=1;
UPDATE SymQaClient.dbo.test_nvarchar_max SET col3='COMMENT_33' WHERE id=1;


-- Observe three changes to the col3 column, resulting in
-- (correct) col3 == COMMENT_33 in symQaRoot.dbo.test_nvarchar_max
-- (incorrect) col3 == empty/null value in the symQaClient.dbo.test_nvarchar_max
-- Observe col2 on both nodes is set to 33 (correct);

Select 'source' as node, s.* FROM SymQaRoot.dbo.test_nvarchar_max s
UNION ALL
Select 'target' as node, t.* FROM SymQaClient.dbo.test_nvarchar_max t;
Revision 2024-12-11 01:43 by pbelov
Steps To Reproduce Server db=SQL Server (SymQaRoot schema)
Client db=SQL Server (SymQaClient schema)