View Revisions: Issue #1497

Summary 0001497: Missing primary key with Stream Lobs causes initial load to fail
Revision 2013-12-19 17:53 by elong
Description If a primary is missing from the table, and the table includes LOB and/or float data type columns, updates will not be captured and synced on SQL Server.

When no primary is defined, SymmetricDS will use all columns as a synthetic primary key, which is used for joining inserted and deleted virtual tables in the trigger to find new and old values. Joining on columns like LOB and float will not result in an equal comparison, so they should be excluded.
Revision 2014-01-02 21:13 by mhanes
Description If a primary is missing from the table, and the table includes LOB and/or float data type columns, initial loads on postgres and sqlserver (and possible others) will fail since the captured value for teh blob is null. Thus, the wheres clause tries to retreive the blob with a wheres clause that also says blob-col=null, so it retrieves nothing.
Revision 2013-12-19 17:53 by elong
Steps To Reproduce 1. Setup two-way sync with two SQL Server databases
2. Create a table with no primary and columns including float and clob
3. Setup a Trigger for the table
4. Update a row in the table

Expected: the data should be captured and synced.

Actual: the data is not capture.

--Alternate--

4. Perform an initial load

Expected: table should load, including LOB columns

Actual: table loads, but LOB columns are null
Revision 2014-01-02 21:13 by mhanes
Steps To Reproduce 1. Setup sync with two SQL Server databases
2. Create a table with no primary and columns including blob
3. Setup a Trigger for the table
4. Initial load the table with Stream lobs for the table set.

Expected: the data should be loaded with the blob data

Actual: the data rows are loaded, but blob data is null.