View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005992 | SymmetricDS | Bug | public | 2023-09-28 16:00 | 2023-12-12 19:33 |
Reporter | emiller | Assigned To | emiller | ||
Priority | normal | ||||
Status | closed | Resolution | fixed | ||
Product Version | 3.14.0 | ||||
Target Version | 3.14.10 | Fixed in Version | 3.14.10 | ||
Summary | 0005992: Conflict resolver does not handle unique index violations correctly when a unique index ignores null values | ||||
Description | When there are multiple unique indexes on a table and at least one of them ignores null values, the conflict resolver can end up deleting rows that should not be deleted. The steps to reproduce below explain how this issue can occur. To prevent this from happening, add a startup parameter that determines whether SymmetricDS should delete rows that seem to be causing a unique index violation when the duplicate values are null. By default, SymmetricDS should not delete these rows. | ||||
Steps To Reproduce | 1. Create a table with two unique indexes, one of which ignores null values. One way of ignoring null values is via a filter condition on a SQL Server table. 2. Configure one-way replication for this table. 3. On the target node, insert a few rows that have null values for the column with the unique index that ignores null values. 4. On the source node, insert a row that has a null value for that same column and a value that will cause a unique index violation on a different column when synced to the target node. 5. See that all of the rows inserted during step 3 are incorrectly deleted. | ||||
Tags | No tags attached. | ||||
SymmetricDS: 3.14 f86b687a 2023-09-28 18:51:20 evan-miller-jumpmind Details Diff |
0005992: Added parameter to adjust how the conflict resolver handles null values when resolving a unique index violation |
Affected Issues 0005992 |
|
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/common/ParameterConstants.java | Diff File | ||
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/load/AbstractDataLoaderFactory.java | Diff File | ||
mod - symmetric-core/src/main/resources/symmetric-default.properties | Diff File | ||
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DatabaseWriterSettings.java | Diff File | ||
mod - symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriterConflictResolver.java | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2023-09-28 16:00 | emiller | New Issue | |
2023-09-28 16:00 | emiller | Status | new => assigned |
2023-09-28 16:00 | emiller | Assigned To | => emiller |
2023-09-28 18:52 | emiller | Status | assigned => resolved |
2023-09-28 18:52 | emiller | Resolution | open => fixed |
2023-09-28 18:52 | emiller | Fixed in Version | => 3.14.10 |
2023-09-28 19:00 | Changeset attached | => SymmetricDS 3.14 f86b687a | |
2023-10-27 20:06 | admin | Status | resolved => closed |
2023-12-12 19:33 | emiller | Issue cloned: 0006155 | |
2023-12-12 19:33 | emiller | Relationship added | related to 0006155 |