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
Description False-positive conflict change detection on update of Null or Empty values in NVARCHAR(MAX) and VARCHAR(MAX) columns (SQLServer-specific)
Affects SymmetricDS bi-directional replication with conflict resolution mode FALLBACK.
Affects LOB columns of the NVARCHAR(MAX) or VARCHAR(MAX) data types on MS SQL Server version 2005 and up.
Whenever an OLD_DATA for batch contains a blank or null value being replaced by a non-blank value, there is an additional (erroneous) change captured and sent as part of conflict resolution fallback, which sends blank value to the node on the opposite side of the group link.
Testing requires:
* MS SQL Server on both source and target nodes
* Bi-directional replication with conflict resolution of Detection Type=USE_PK_DATA, Resolution Type=FALLBACK, Ping Back=SINGLE_ROW
* Set Push interval for 5 seconds to speed-up testing.
* A table with column of NVARCHAR(MAX) or VARCHAR(MAX) data type, which is NOT a part of primary key.
* One more column, of a primitive data type (non-LOB) , which is also NOT a part of primary key.
* Initial value of null of blank string for the column of NVARCHAR(MAX) or VARCHAR(MAX) data type
* Two or more simultaneous and conflicting batches on opposite nodes, with an UPDATE change targeting different columns mentioned above.
Revision 2024-12-11 02:05 by pbelov
Description False-positive conflict change detection on update of Null or Empty values in NVARCHAR(MAX) and VARCHAR(MAX) columns (SQLServer-specific)
Affects SymmetricDS bi-directional replication with conflict resolution mode FALLBACK.
Affects LOB columns of the NVARCHAR(MAX) or VARCHAR(MAX) data types on MS SQL Server version 2005 and up.
Whenever an OLD_DATA for batch contains a blank or null value being replaced by a non-blank value, there is an additional (erroneous) change captures and sent as part of conflict resolution fallback, which sends blank value to the node on the opposite side of the group link.
Testing requires:
* MS SQL Server on both source and target nodes
* Bi-directional replication with conflict resolution of Detection Type=USE_PK_DATA, Resolution Type=FALLBACK, Ping Back=SINGLE_ROW
* Set Push interval for 5 seconds to speed-up testing.
* A table with column of NVARCHAR(MAX) or VARCHAR(MAX) data type, which is NOT a part of primary key.
* One more column, of any data type, which is also NOT a part of primary key.
* Initial value of null of blank string for the column of NVARCHAR(MAX) or VARCHAR(MAX) data type
* Two or more simultaneous and conflicting batches on opposite nodes, with an UPDATE change targeting different columns mentioned above.

Revision 2024-12-11 01:43 by pbelov
Description False-positive conflict change detection on update of Null or Empty values in NVARCHAR(MAX) and VARCHAR(MAX) columns (SQLServer-specific)