From 1b0bb222736e8de268352f958bdf9a4ddb31500b Mon Sep 17 00:00:00 2001 From: zadam Date: Tue, 15 Dec 2020 15:30:46 +0100 Subject: [PATCH] drop isDeleted index --- db/migrations/0178__drop_isDeleted_index.sql | 1 + db/schema.sql | 145 +++++++++--------- src/services/app_info.js | 2 +- src/services/note_cache/entities/attribute.js | 5 - 4 files changed, 71 insertions(+), 82 deletions(-) create mode 100644 db/migrations/0178__drop_isDeleted_index.sql diff --git a/db/migrations/0178__drop_isDeleted_index.sql b/db/migrations/0178__drop_isDeleted_index.sql new file mode 100644 index 000000000..1c940b45a --- /dev/null +++ b/db/migrations/0178__drop_isDeleted_index.sql @@ -0,0 +1 @@ +DROP INDEX IDX_notes_isDeleted; diff --git a/db/schema.sql b/db/schema.sql index 42dbf81fe..656dc488e 100644 --- a/db/schema.sql +++ b/db/schema.sql @@ -5,27 +5,7 @@ CREATE TABLE IF NOT EXISTS "api_tokens" utcDateCreated TEXT NOT NULL, isDeleted INT NOT NULL DEFAULT 0, hash TEXT DEFAULT "" NOT NULL); -CREATE TABLE IF NOT EXISTS "options" -( - name TEXT not null PRIMARY KEY, - value TEXT, - isSynced INTEGER default 0 not null, - hash TEXT default "" not null, - utcDateCreated TEXT not null, - utcDateModified TEXT NOT NULL -); -CREATE TABLE recent_notes -( - noteId TEXT not null primary key, - notePath TEXT not null, - hash TEXT default "" not null, - utcDateCreated TEXT not null, - isDeleted INT -); -CREATE TABLE IF NOT EXISTS "note_revision_contents" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY, - `content` TEXT, - hash TEXT DEFAULT '' NOT NULL, - `utcDateModified` TEXT NOT NULL); + CREATE TABLE IF NOT EXISTS "branches" ( `branchId` TEXT NOT NULL, `noteId` TEXT NOT NULL, @@ -37,36 +17,16 @@ CREATE TABLE IF NOT EXISTS "branches" ( `deleteId` TEXT DEFAULT NULL, `utcDateModified` TEXT NOT NULL, utcDateCreated TEXT NOT NULL, - hash TEXT DEFAULT "" NOT NULL, PRIMARY KEY(`branchId`)); -CREATE TABLE IF NOT EXISTS "attributes" -( - attributeId TEXT not null primary key, - noteId TEXT not null, - type TEXT not null, - name TEXT not null, - value TEXT default '' not null, - position INT default 0 not null, - utcDateCreated TEXT not null, - utcDateModified TEXT not null, - isDeleted INT not null, - `deleteId` TEXT DEFAULT NULL, - hash TEXT default "" not null, - isInheritable int DEFAULT 0 NULL); -CREATE TABLE IF NOT EXISTS "entity_changes" ( - `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - `entityName` TEXT NOT NULL, - `entityId` TEXT NOT NULL, - `sourceId` TEXT NOT NULL, - `isSynced` INTEGER default 0 not null, - `utcChangedDate` TEXT NOT NULL); +CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (`noteId`,`parentNoteId`); +CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId); + CREATE TABLE IF NOT EXISTS "notes" ( `noteId` TEXT NOT NULL, `title` TEXT NOT NULL DEFAULT "note", `isProtected` INT NOT NULL DEFAULT 0, `type` TEXT NOT NULL DEFAULT 'text', `mime` TEXT NOT NULL DEFAULT 'text/html', - `hash` TEXT DEFAULT "" NOT NULL, `isDeleted` INT NOT NULL DEFAULT 0, `deleteId` TEXT DEFAULT NULL, `isErased` INT NOT NULL DEFAULT 0, @@ -75,8 +35,23 @@ CREATE TABLE IF NOT EXISTS "notes" ( `utcDateCreated` TEXT NOT NULL, `utcDateModified` TEXT NOT NULL, PRIMARY KEY(`noteId`)); +CREATE INDEX `IDX_notes_title` ON `notes` (`title`); +CREATE INDEX `IDX_notes_type` ON `notes` (`type`); +CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`); +CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`); +CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`); +CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`); +CREATE TABLE IF NOT EXISTS "note_contents" ( + `noteId` TEXT NOT NULL, + `content` TEXT NULL DEFAULT NULL, + `dateModified` TEXT NOT NULL, + `utcDateModified` TEXT NOT NULL, + PRIMARY KEY(`noteId`) +); CREATE TABLE IF NOT EXISTS "note_revisions" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY, `noteId` TEXT NOT NULL, + type TEXT DEFAULT '' NOT NULL, + mime TEXT DEFAULT '' NOT NULL, `title` TEXT, `isErased` INT NOT NULL DEFAULT 0, `isProtected` INT NOT NULL DEFAULT 0, @@ -84,42 +59,60 @@ CREATE TABLE IF NOT EXISTS "note_revisions" (`noteRevisionId` TEXT NOT NULL PRIM `utcDateCreated` TEXT NOT NULL, `utcDateModified` TEXT NOT NULL, `dateLastEdited` TEXT NOT NULL, - `dateCreated` TEXT NOT NULL, - type TEXT DEFAULT '' NOT NULL, - mime TEXT DEFAULT '' NOT NULL, - hash TEXT DEFAULT '' NOT NULL); -CREATE TABLE IF NOT EXISTS "note_contents" ( - `noteId` TEXT NOT NULL, - `content` TEXT NULL DEFAULT NULL, - `hash` TEXT DEFAULT "" NOT NULL, - `dateModified` TEXT NOT NULL, - `utcDateModified` TEXT NOT NULL, - PRIMARY KEY(`noteId`) + `dateCreated` TEXT NOT NULL); + +CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`); +CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`); +CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`); +CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`); +CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`); + +CREATE TABLE IF NOT EXISTS "note_revision_contents" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY, + `content` TEXT, + `utcDateModified` TEXT NOT NULL); +CREATE TABLE IF NOT EXISTS "options" +( + name TEXT not null PRIMARY KEY, + value TEXT, + isSynced INTEGER default 0 not null, + utcDateCreated TEXT not null, + utcDateModified TEXT NOT NULL ); -CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (`noteId`,`parentNoteId`); -CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId); +CREATE TABLE IF NOT EXISTS "recent_notes" +( + noteId TEXT not null primary key, + notePath TEXT not null, + utcDateCreated TEXT not null, + isDeleted INT NOT NULL DEFAULT 0 +); +CREATE TABLE IF NOT EXISTS "entity_changes" ( + `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + `entityName` TEXT NOT NULL, + `entityId` TEXT NOT NULL, + `hash` TEXT NOT NULL, + `sourceId` TEXT NOT NULL, + `isErased` INT NOT NULL, + `utcDateChanged` TEXT NOT NULL, + `isSynced` INTEGER NOT NULL); +CREATE UNIQUE INDEX `IDX_entityChanges_entityName_entityId` ON "entity_changes" ( + `entityName`, + `entityId` + ); +CREATE TABLE IF NOT EXISTS "attributes" +( + attributeId TEXT not null primary key, + noteId TEXT not null, + type TEXT not null, + name TEXT not null, + value TEXT default '' not null, + position INT default 0 not null, + utcDateModified TEXT not null, + isDeleted INT not null, + `deleteId` TEXT DEFAULT NULL, + isInheritable int DEFAULT 0 NULL); CREATE INDEX IDX_attributes_name_value on attributes (name, value); CREATE INDEX IDX_attributes_noteId_index on attributes (noteId); CREATE INDEX IDX_attributes_value_index on attributes (value); -CREATE UNIQUE INDEX `IDX_entityChanges_entityName_entityId` ON "entity_changes" ( - `entityName`, - `entityId` - ); -CREATE INDEX `IDX_entityChanges_utcChangedDate` ON "entity_changes" ( - `utcChangedDate` - ); -CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`); -CREATE INDEX `IDX_notes_title` ON `notes` (`title`); -CREATE INDEX `IDX_notes_type` ON `notes` (`type`); -CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`); -CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`); -CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`); -CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`); -CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`); -CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`); -CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`); -CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`); -CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`); diff --git a/src/services/app_info.js b/src/services/app_info.js index 0d4398947..688b49c51 100644 --- a/src/services/app_info.js +++ b/src/services/app_info.js @@ -4,7 +4,7 @@ const build = require('./build'); const packageJson = require('../../package'); const {TRILIUM_DATA_DIR} = require('./data_dir'); -const APP_DB_VERSION = 177; +const APP_DB_VERSION = 178; const SYNC_VERSION = 18; const CLIPPER_PROTOCOL_VERSION = "1.0"; diff --git a/src/services/note_cache/entities/attribute.js b/src/services/note_cache/entities/attribute.js index b4e524eab..3b4d68ca7 100644 --- a/src/services/note_cache/entities/attribute.js +++ b/src/services/note_cache/entities/attribute.js @@ -16,11 +16,6 @@ class Attribute { this.name = row.name; /** @param {int} */ this.position = row.position; - - if (typeof row.value !== 'string') { - row.value = JSON.stringify(row.value); - } - /** @param {string} */ this.value = row.value; /** @param {boolean} */