CREATE TABLE IF NOT EXISTS zbitemTags (itemID INT, tagID INT)
;
DELETE FROM zbitemTags
;
INSERT INTO zbitemTags SELECT itemID, tagID 
FROM itemTags 
ORDER BY itemID
;
CREATE TABLE IF NOT EXISTS zbtags (tagID INTEGER, tag TEXT, tagType INT)
;
DELETE FROM zbtags
;
CREATE TABLE IF NOT EXISTS zbcollections (collectionID INTEGER PRIMARY KEY, collectionName TEXT)
;
DELETE FROM zbcollections
;
INSERT INTO zbcollections SELECT collectionID, collectionName 
FROM collections
;
CREATE TABLE IF NOT EXISTS zbattachments (itemID INT, sourceItemID INT, mimeType TEXT, path TEXT)
;
DELETE FROM zbattachments
;
INSERT INTO zbattachments SELECT itemID, ifnull(sourceItemID, itemID), mimeType, path 
FROM itemAttachments 
ORDER BY sourceItemID
;
/* zotero1 */
/* opf */
CREATE TABLE IF NOT EXISTS zbitems (itemID, dateAdded DATETIME, title TEXT,firstName TEXT,lastName TEXT, collectionID INT,optData TEXT)
;
DELETE FROM zbitems
;
INSERT INTO zbitems SELECT i.itemID,i.dateAdded,i.value,
ifnull(cr.firstName,''),ifnull(cr.lastName,'') 
,ci.collectionID,ifnull(io.value,'') 
FROM (items NATURAL JOIN itemData NATURAL JOIN itemDataValues) i 
LEFT OUTER JOIN (SELECT itemID, value FROM itemData NATURAL JOIN itemDataValues WHERE fieldID=12) AS io ON i.itemID = io.itemID 
LEFT OUTER JOIN collectionItems ci 
ON ci.itemID=i.itemID 
LEFT OUTER JOIN (itemCreators NATURAL JOIN creators) cr 
ON i.itemID=cr.itemID 
WHERE i.fieldID=110  
AND i.itemTypeID NOT IN (1,14) ORDER BY i.value
;
INSERT INTO zbitems SELECT i.itemID,i.dateAdded,i.value,
ifnull(cr.firstName,''),ifnull(cr.lastName,'') 
,ci.collectionID,ifnull(io.value,'') 
FROM (items NATURAL JOIN itemData NATURAL JOIN itemDataValues) i 
LEFT OUTER JOIN (SELECT itemID, value FROM itemData NATURAL JOIN itemDataValues WHERE fieldID=12) AS io ON i.itemID = io.itemID 
LEFT OUTER JOIN collectionItems ci 
ON ci.itemID=i.itemID 
LEFT OUTER JOIN (itemCreators NATURAL JOIN creators) cr 
ON i.itemID=cr.itemID 
WHERE i.fieldID=110  
AND i.itemTypeID = 14 
AND i.itemID IN(
SELECT itemID FROM itemAttachments ia 
WHERE ia.sourceItemID IS NULL) 
ORDER BY i.value
;
INSERT INTO zbtags SELECT tagID, tag, tagType 
FROM tags
;
/* opf */
/* noopf */
CREATE TABLE IF NOT EXISTS zbitems (itemID, dateAdded DATETIME, title TEXT,firstName TEXT,lastName TEXT, collectionID INT)
;
DELETE FROM zbitems
;
INSERT INTO zbitems SELECT i.itemID,i.dateAdded,i.value,
ifnull(cr.firstName,''),ifnull(cr.lastName,'') 
,ci.collectionID 
FROM (items NATURAL JOIN itemData NATURAL JOIN itemDataValues) i 
LEFT OUTER JOIN collectionItems ci 
ON ci.itemID=i.itemID 
LEFT OUTER JOIN (itemCreators NATURAL JOIN creators) cr 
ON i.itemID=cr.itemID 
WHERE i.fieldID=110  
AND i.itemTypeID NOT IN (1,14) ORDER BY value
;
INSERT INTO zbitems SELECT i.itemID,i.dateAdded,i.value,
ifnull(cr.firstName,''),ifnull(cr.lastName,'') 
,ci.collectionID 
FROM (items NATURAL JOIN itemData NATURAL JOIN itemDataValues) i 
LEFT OUTER JOIN collectionItems ci 
ON ci.itemID=i.itemID 
LEFT OUTER JOIN (itemCreators NATURAL JOIN creators) cr 
ON i.itemID=cr.itemID 
WHERE i.fieldID=110  
AND i.itemTypeID = 14 
AND i.itemID IN(
SELECT itemID FROM itemAttachments ia 
WHERE ia.sourceItemID IS NULL) 
ORDER BY value
;
INSERT INTO zbtags SELECT tagID, tag, tagType 
FROM tags
;
/* noopf */
/* zotero1 */
/* zotero2 */
/* opf */
CREATE TABLE IF NOT EXISTS zbitems (itemID, dateAdded DATETIME, title TEXT,firstName TEXT,lastName TEXT, collectionID INT,optData TEXT)
;
DELETE FROM zbitems
;
INSERT INTO zbitems SELECT i.itemID,i.dateAdded,i.value,
ifnull(cr.firstName,''),ifnull(cr.lastName,'') 
,ci.collectionID,ifnull(io.value,'') 
FROM (items NATURAL JOIN itemData NATURAL JOIN itemDataValues) i 
LEFT OUTER JOIN (SELECT itemID, value FROM itemData NATURAL JOIN itemDataValues WHERE fieldID=12) AS io ON i.itemID = io.itemID 
LEFT OUTER JOIN collectionItems ci 
ON ci.itemID=i.itemID 
LEFT OUTER JOIN (itemCreators NATURAL JOIN creators NATURAL JOIN creatorData) cr 
ON i.itemID=cr.itemID 
WHERE i.fieldID=110  
AND i.itemTypeID NOT IN (1,14) ORDER BY i.value
;
INSERT INTO zbitems SELECT i.itemID,i.dateAdded,i.value,
ifnull(cr.firstName,''),ifnull(cr.lastName,'') 
,ci.collectionID,ifnull(io.value,'') 
FROM (items NATURAL JOIN itemData NATURAL JOIN itemDataValues) i 
LEFT OUTER JOIN (SELECT itemID, value FROM itemData NATURAL JOIN itemDataValues WHERE fieldID=12) AS io ON i.itemID = io.itemID 
LEFT OUTER JOIN collectionItems ci 
ON ci.itemID=i.itemID 
LEFT OUTER JOIN (itemCreators NATURAL JOIN creators NATURAL JOIN creatorData) cr 
ON i.itemID=cr.itemID 
WHERE i.fieldID=110  
AND i.itemTypeID = 14 
AND i.itemID IN(
SELECT itemID FROM itemAttachments ia 
WHERE ia.sourceItemID IS NULL) 
ORDER BY i.value
;
DELETE FROM zbitems 
WHERE itemID IN 
(SELECT itemID FROM deletedItems)
;
CREATE TABLE IF NOT EXISTS zbitemkeys (itemID, key TEXT)
;
DELETE FROM zbitemkeys
;
INSERT INTO zbitemkeys SELECT i.itemID,i.key 
FROM items i 
ORDER BY i.itemID
;
INSERT INTO zbtags SELECT tagID, name, type 
FROM tags
;
/* opf */
/* noopf */
CREATE TABLE IF NOT EXISTS zbitems (itemID, dateAdded DATETIME, title TEXT,firstName TEXT,lastName TEXT, collectionID INT)
;
DELETE FROM zbitems
;
INSERT INTO zbitems SELECT i.itemID,i.dateAdded,i.value,
ifnull(cr.firstName,''),ifnull(cr.lastName,'') 
,ci.collectionID 
FROM (items NATURAL JOIN itemData NATURAL JOIN itemDataValues) i 
LEFT OUTER JOIN collectionItems ci 
ON ci.itemID=i.itemID 
LEFT OUTER JOIN (itemCreators NATURAL JOIN creators NATURAL JOIN creatorData) cr 
ON i.itemID=cr.itemID 
WHERE i.fieldID=110  
AND i.itemTypeID NOT IN (1,14) ORDER BY value
;
INSERT INTO zbitems SELECT i.itemID,i.dateAdded,i.value,
ifnull(cr.firstName,''),ifnull(cr.lastName,'') 
,ci.collectionID 
FROM (items NATURAL JOIN itemData NATURAL JOIN itemDataValues) i 
LEFT OUTER JOIN collectionItems ci 
ON ci.itemID=i.itemID 
LEFT OUTER JOIN (itemCreators NATURAL JOIN creators NATURAL JOIN creatorData) cr 
ON i.itemID=cr.itemID 
WHERE i.fieldID=110  
AND i.itemTypeID = 14 
AND i.itemID IN(
SELECT itemID FROM itemAttachments ia 
WHERE ia.sourceItemID IS NULL) 
ORDER BY value
;
DELETE FROM zbitems 
WHERE itemID IN 
(SELECT itemID FROM deletedItems)
;
CREATE TABLE IF NOT EXISTS zbitemkeys (itemID, key TEXT)
;
DELETE FROM zbitemkeys
;
INSERT INTO zbitemkeys SELECT i.itemID,i.key 
FROM items i 
ORDER BY i.itemID
;
INSERT INTO zbtags SELECT tagID, name, type 
FROM tags
;
/* noopf */
DELETE FROM zbattachments 
WHERE itemID IN 
(SELECT itemID FROM deletedItems)
;
/* zotero2 */
CREATE INDEX IF NOT EXISTS zbitems_id ON zbitems (itemID)
;
CREATE INDEX IF NOT EXISTS zbitemTags_tagID ON zbitemTags (tagID)
;
/* withidx */
CREATE INDEX IF NOT EXISTS zbitems_title ON zbitems (title)
;
CREATE INDEX IF NOT EXISTS zbitems_creator ON zbitems (lastName)
;
CREATE INDEX IF NOT EXISTS zbitemTags_itemID ON zbitemTags (itemID);
/* withidx */
/* withoutidx */
DROP INDEX IF EXISTS zbitems_title
;
DROP INDEX IF EXISTS zbitems_creator
;
DROP INDEX IF EXISTS zbitemTags_itemID;
/* withoutidx */
/* opf */
/* withidx */
CREATE INDEX IF NOT EXISTS zbitems_publ ON zbitems (optData)
;
/* withidx */
/* withoutidx */
DROP INDEX IF EXISTS zbitems_publ
;
/* withoutidx */
/* opf */
