Successive deletes produce redundant entries in the _SyncRemovedObject
table.
var SongEntity = persistence.define( 'Song',
{
number:"INT",
artist:"TEXT",
title:"TEXT",
duration:"INT",
});
SongEntity.index(['number'], {unique:true});
SongEntity.enableSync( 'server/synchronize.php?entity=Song' );
persistence.schemaSync( function()
{
for( var i = 0; i < 4; ++i )
{
var songEntity = new SongEntity({ ... });
persistence.add( songEntity ).flush( function()
{
persistence.remove( songEntity ).flush();
});
}
});
CREATE TABLE IF NOT EXISTS `Song` (`number` INT, `artist` TEXT,
`title` TEXT, `duration` INT, `_lastChange` BIGINT, `id` VARCHAR(32)
PRIMARY KEY) null
persistence.store.websql.js:78CREATE UNIQUE INDEX IF NOT EXISTS
`Song__number` ON `Song` (`number`) null
persistence.store.websql.js:78CREATE TABLE IF NOT EXISTS
`_SyncRemovedObject` (`entity` VARCHAR(255), `objectId` VARCHAR(32),
`id` VARCHAR(32) PRIMARY KEY) null
persistence.store.websql.js:78CREATE TABLE IF NOT EXISTS `_Sync`
(`entity` VARCHAR(255), `localDate` BIGINT, `serverDate` BIGINT,
`serverPushDate` BIGINT, `id` VARCHAR(32) PRIMARY KEY) null
persistence.store.websql.js:78SELECT `root`.id AS Song_id,
`root`.`number` AS `Song_number`, `root`.`artist` AS `Song_artist`,
`root`.`title` AS `Song_title`, `root`.`duration` AS `Song_duration`,
`root`.`_lastChange` AS `Song__lastChange` FROM `Song` AS `root`
WHERE 1=1 ORDER BY `Song_artist` ASC, `Song_title` ASC []
One record removed first time, one _SyncRemovedObject record created:
persistence.store.websql.js:78INSERT INTO `Song` (`_lastChange`,
`number`, `artist`, `title`, `duration`, id) VALUES (?, ?, ?, ?, ?, ?)
[1326310366172, 0, "", "", 0, "C26F48BB016F46CB8B7DC618DDDD0AA6"]
persistence.store.websql.js:78DELETE FROM `Song` WHERE id =
'6B7496D2C97C41C2AAEF69E0CDBD406C' null
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"6B7496D2C97C41C2AAEF69E0CDBD406C",
"EAD416C0FB9446DC8059211501C09BE6"]
One record removed second time, two _SyncRemovedObject records created:
persistence.store.websql.js:78INSERT INTO `Song` (`_lastChange`,
`number`, `artist`, `title`, `duration`, id) VALUES (?, ?, ?, ?, ?, ?)
[1326310369167, 0, "", "", 0, "712CDFFE8A13430083FBE81A0A747CA7"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"6B7496D2C97C41C2AAEF69E0CDBD406C",
"01EEC8F8FD7C40B28A1411A68B18C261"]
persistence.store.websql.js:78DELETE FROM `Song` WHERE id =
'8399A07307C14CA3BD03440D0C5E0885' null
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"6B7496D2C97C41C2AAEF69E0CDBD406C",
"B539AD905DE7444C813E7D5D24648AEE"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"8399A07307C14CA3BD03440D0C5E0885",
"3E13FD0DC41E4B51930D117239BEAD6A"]
One record removed third time, three _SyncRemovedObject records created:
persistence.store.websql.js:78INSERT INTO `Song` (`_lastChange`,
`number`, `artist`, `title`, `duration`, id) VALUES (?, ?, ?, ?, ?, ?)
[1326310371783, 0, "", "", 0, "AA62B15DF9184F578C767718650E49CA"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"6B7496D2C97C41C2AAEF69E0CDBD406C",
"9756633B10C7459A8043C1A109AC2A1D"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"8399A07307C14CA3BD03440D0C5E0885",
"27B18BC25F6346A983088B1BC6D5E48A"]
persistence.store.websql.js:78DELETE FROM `Song` WHERE id =
'85090A8ACA834991973F960D0F1260C4' null
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"6B7496D2C97C41C2AAEF69E0CDBD406C",
"113C466AE36D4C8C87266830CFB79938"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"8399A07307C14CA3BD03440D0C5E0885",
"DE309C861070402F92BBB826C026F5F2"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"85090A8ACA834991973F960D0F1260C4",
"FF886DECF8B3467D955D5891D7AC0E83"]
One record removed fourth time, four _SyncRemovedObject records created:
persistence.store.websql.js:78INSERT INTO `Song` (`_lastChange`,
`number`, `artist`, `title`, `duration`, id) VALUES (?, ?, ?, ?, ?, ?)
[1326310374808, 0, "", "", 0, "F03B48F5CCF54849AA48225FA6F6726B"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"6B7496D2C97C41C2AAEF69E0CDBD406C",
"AD7CA02039CD4D44885E060BEE84A831"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"8399A07307C14CA3BD03440D0C5E0885",
"667F1EB1979C401190A7DAFA397608D0"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"85090A8ACA834991973F960D0F1260C4",
"A4FC3E8A7BA4439B937B8492BBD0F947"]
persistence.store.websql.js:78DELETE FROM `Song` WHERE id =
'CE9994918FAD4AFF87ED70D53344270C' null
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"6B7496D2C97C41C2AAEF69E0CDBD406C",
"30FF2E3B9ACB4B1B823D06F87A23A627"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"8399A07307C14CA3BD03440D0C5E0885",
"38B3DF8EEBE94270825547C7CB4DF513"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"85090A8ACA834991973F960D0F1260C4",
"1C65BF43CDFF428B92580DA73F18EE12"]
persistence.store.websql.js:78INSERT INTO `_SyncRemovedObject`
(`entity`, `objectId`, id) VALUES (?, ?, ?) ["Song",
"CE9994918FAD4AFF87ED70D53344270C",
"5D27169751214472820C4E1ED793F974"]