mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-18 09:35:20 +02:00
75 lines
2.6 KiB
TypeScript
75 lines
2.6 KiB
TypeScript
|
import sqlStringToLines from '../sqlStringToLines';
|
||
|
import { SqlQuery } from '../types';
|
||
|
|
||
|
export default (): (SqlQuery|string)[] => {
|
||
|
const queries: (SqlQuery|string)[] = [];
|
||
|
|
||
|
queries.push('ALTER TABLE `resources` ADD COLUMN `ocr_text` TEXT NOT NULL DEFAULT ""');
|
||
|
queries.push('ALTER TABLE `resources` ADD COLUMN `ocr_details` TEXT NOT NULL DEFAULT ""');
|
||
|
queries.push('ALTER TABLE `resources` ADD COLUMN `ocr_status` INT NOT NULL DEFAULT 0');
|
||
|
queries.push('ALTER TABLE `resources` ADD COLUMN `ocr_error` TEXT NOT NULL DEFAULT ""');
|
||
|
|
||
|
const itemsNormalized = `
|
||
|
CREATE TABLE items_normalized (
|
||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
title TEXT NOT NULL DEFAULT "",
|
||
|
body TEXT NOT NULL DEFAULT "",
|
||
|
item_id TEXT NOT NULL,
|
||
|
item_type INT NOT NULL,
|
||
|
user_updated_time INT NOT NULL DEFAULT 0,
|
||
|
reserved1 INT NULL,
|
||
|
reserved2 INT NULL,
|
||
|
reserved3 INT NULL,
|
||
|
reserved4 INT NULL,
|
||
|
reserved5 INT NULL,
|
||
|
reserved6 INT NULL
|
||
|
);
|
||
|
`;
|
||
|
|
||
|
queries.push(sqlStringToLines(itemsNormalized)[0]);
|
||
|
|
||
|
queries.push('CREATE INDEX items_normalized_id ON items_normalized (id)');
|
||
|
queries.push('CREATE INDEX items_normalized_item_id ON items_normalized (item_id)');
|
||
|
queries.push('CREATE INDEX items_normalized_item_type ON items_normalized (item_type)');
|
||
|
|
||
|
const tableFields = 'id, title, body, item_id, item_type, user_updated_time, reserved1, reserved2, reserved3, reserved4, reserved5, reserved6';
|
||
|
|
||
|
const newVirtualTableSql = `
|
||
|
CREATE VIRTUAL TABLE items_fts USING fts4(
|
||
|
content="items_normalized",
|
||
|
notindexed="id",
|
||
|
notindexed="item_id",
|
||
|
notindexed="item_type",
|
||
|
notindexed="user_updated_time",
|
||
|
notindexed="reserved1",
|
||
|
notindexed="reserved2",
|
||
|
notindexed="reserved3",
|
||
|
notindexed="reserved4",
|
||
|
notindexed="reserved5",
|
||
|
notindexed="reserved6",
|
||
|
${tableFields}
|
||
|
);`
|
||
|
;
|
||
|
|
||
|
queries.push(sqlStringToLines(newVirtualTableSql)[0]);
|
||
|
|
||
|
queries.push(`
|
||
|
CREATE TRIGGER items_fts_before_update BEFORE UPDATE ON items_normalized BEGIN
|
||
|
DELETE FROM items_fts WHERE docid=old.rowid;
|
||
|
END;`);
|
||
|
queries.push(`
|
||
|
CREATE TRIGGER items_fts_before_delete BEFORE DELETE ON items_normalized BEGIN
|
||
|
DELETE FROM items_fts WHERE docid=old.rowid;
|
||
|
END;`);
|
||
|
queries.push(`
|
||
|
CREATE TRIGGER items_after_update AFTER UPDATE ON items_normalized BEGIN
|
||
|
INSERT INTO items_fts(docid, ${tableFields}) SELECT rowid, ${tableFields} FROM items_normalized WHERE new.rowid = items_normalized.rowid;
|
||
|
END;`);
|
||
|
queries.push(`
|
||
|
CREATE TRIGGER items_after_insert AFTER INSERT ON items_normalized BEGIN
|
||
|
INSERT INTO items_fts(docid, ${tableFields}) SELECT rowid, ${tableFields} FROM items_normalized WHERE new.rowid = items_normalized.rowid;
|
||
|
END;`);
|
||
|
|
||
|
return queries;
|
||
|
};
|