From 277da4363194bd652918b100b93fdb0a85f9f689 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Thu, 22 Feb 2018 20:52:39 -0800 Subject: provide DB compatibility for poll and voting implementations across several platforms --- install/schema_mysql.sql | 6 ++++++ install/schema_postgres.sql | 6 ++++++ 2 files changed, 12 insertions(+) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 36cd2539b..e1a63c1e3 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -964,11 +964,13 @@ CREATE TABLE IF NOT EXISTS `photo` ( CREATE TABLE IF NOT EXISTS `poll` ( `poll_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `poll_guid` varchar(191) NOT NULL, `poll_channel` int(10) unsigned NOT NULL DEFAULT 0 , `poll_desc` text NOT NULL, `poll_flags` int(11) NOT NULL DEFAULT 0 , `poll_votes` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`poll_id`), + KEY `poll_guid` (`poll_guid`), KEY `poll_channel` (`poll_channel`), KEY `poll_flags` (`poll_flags`), KEY `poll_votes` (`poll_votes`) @@ -976,11 +978,13 @@ CREATE TABLE IF NOT EXISTS `poll` ( CREATE TABLE IF NOT EXISTS `poll_elm` ( `pelm_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `pelm_guid` varchar(191) NOT NULL, `pelm_poll` int(10) unsigned NOT NULL DEFAULT 0 , `pelm_desc` text NOT NULL, `pelm_flags` int(11) NOT NULL DEFAULT 0 , `pelm_result` float NOT NULL DEFAULT 0 , PRIMARY KEY (`pelm_id`), + KEY `pelm_guid` (`pelm_guid`), KEY `pelm_poll` (`pelm_poll`), KEY `pelm_result` (`pelm_result`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; @@ -1258,12 +1262,14 @@ CREATE TABLE IF NOT EXISTS `verify` ( CREATE TABLE IF NOT EXISTS `vote` ( `vote_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `vote_guid` varchar(191) NOT NULL, `vote_poll` int(11) NOT NULL DEFAULT 0 , `vote_element` int(11) NOT NULL DEFAULT 0 , `vote_result` text NOT NULL, `vote_xchan` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`vote_id`), UNIQUE KEY `vote_vote` (`vote_poll`,`vote_element`,`vote_xchan`), + KEY `vote_guid` (`vote_guid`), KEY `vote_poll` (`vote_poll`), KEY `vote_element` (`vote_element`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index 082817a60..84b6a554a 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -942,6 +942,7 @@ create index "photo_os_storage" on photo ("os_storage"); CREATE TABLE "poll" ( "poll_id" serial NOT NULL, + "poll_guid" text NOT NULL, "poll_channel" bigint NOT NULL DEFAULT '0', "poll_desc" text NOT NULL, "poll_flags" bigint NOT NULL DEFAULT '0', @@ -949,17 +950,20 @@ CREATE TABLE "poll" ( PRIMARY KEY ("poll_id") ); +create index "poll_guid" on poll ("poll_guid"); create index "poll_channel" on poll ("poll_channel"); create index "poll_flags" on poll ("poll_flags"); create index "poll_votes" on poll ("poll_votes"); CREATE TABLE "poll_elm" ( "pelm_id" serial NOT NULL, + "pelm_guid" text NOT NULL, "pelm_poll" bigint NOT NULL DEFAULT '0', "pelm_desc" text NOT NULL, "pelm_flags" bigint NOT NULL DEFAULT '0', "pelm_result" float NOT NULL DEFAULT '0', PRIMARY KEY ("pelm_id") ); +create index "pelm_guid" on poll_elm ("pelm_guid"); create index "pelm_poll" on poll_elm ("pelm_poll"); create index "pelm_result" on poll_elm ("pelm_result"); @@ -1227,6 +1231,7 @@ create index "verify_meta" on verify ("meta"); create index "verify_created" on verify ("created"); CREATE TABLE "vote" ( "vote_id" serial NOT NULL, + "vote_guid" text NOT NULL, "vote_poll" bigint NOT NULL DEFAULT '0', "vote_element" bigint NOT NULL DEFAULT '0', "vote_result" text NOT NULL, @@ -1234,6 +1239,7 @@ CREATE TABLE "vote" ( PRIMARY KEY ("vote_id"), UNIQUE ("vote_poll","vote_element","vote_xchan") ); +create index "vote_guid" on vote ("vote_guid"); create index "vote_poll" on vote ("vote_poll"); create index "vote_element" on vote ("vote_element"); CREATE TABLE "xchan" ( -- cgit v1.2.3 From 51c0e5a988ce3bae025040ab7fa77852eaa3e70d Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Mon, 26 Feb 2018 09:58:42 +0100 Subject: another DB upgrade to address some long running maintenance queries --- install/schema_mysql.sql | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index e1a63c1e3..76e6032fc 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -657,6 +657,7 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `uid_item_wall` (`uid`, `item_wall`), KEY `uid_item_starred` (`uid`, `item_starred`), KEY `uid_item_retained` (`uid`, `item_retained`), + KEY `uid_item_private` (`uid`, `item_private`), KEY `aid` (`aid`), KEY `owner_xchan` (`owner_xchan`), KEY `author_xchan` (`author_xchan`), @@ -667,7 +668,6 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `commented` (`commented`), KEY `verb` (`verb`), KEY `obj_type` (`obj_type`), - KEY `item_private` (`item_private`), KEY `llink` (`llink`), KEY `expires` (`expires`), KEY `revision` (`revision`), @@ -681,6 +681,7 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `comments_closed` (`comments_closed`), KEY `changed` (`changed`), KEY `item_origin` (`item_origin`), + KEY `item_wall` (`item_wall`), KEY `item_unseen` (`item_unseen`), KEY `item_uplink` (`item_uplink`), KEY `item_notshown` (`item_notshown`), @@ -692,7 +693,8 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `item_verified` (`item_verified`), KEY `item_rss` (`item_rss`), KEY `item_consensus` (`item_consensus`), - KEY `item_deleted_pending_remove_changed` (`item_deleted`, `item_pending_remove`, `changed`) + KEY `item_deleted_pending_remove_changed` (`item_deleted`, `item_pending_remove`, `changed`), + KEY `item_pending_remove_changed` (`item_pending_remove`, `changed`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `item_id` ( -- cgit v1.2.3 From 6593dff9f5b07c76037fa0afc7357089306195c4 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Wed, 28 Feb 2018 10:21:22 +0100 Subject: missed one index in the last update --- install/schema_mysql.sql | 1 + 1 file changed, 1 insertion(+) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 76e6032fc..5cd04467d 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -658,6 +658,7 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `uid_item_starred` (`uid`, `item_starred`), KEY `uid_item_retained` (`uid`, `item_retained`), KEY `uid_item_private` (`uid`, `item_private`), + KEY `uid_resource_type` (`uid`, `resource_type`), KEY `aid` (`aid`), KEY `owner_xchan` (`owner_xchan`), KEY `author_xchan` (`author_xchan`), -- cgit v1.2.3 From f0f58dade886d88fc178b78c04e1a4067ddfda04 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Tue, 6 Mar 2018 15:31:45 -0800 Subject: federated polls: add poll_author which will be necessary for Diaspora federation --- install/schema_mysql.sql | 2 ++ install/schema_postgres.sql | 2 ++ 2 files changed, 4 insertions(+) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 5cd04467d..9d60d9eb2 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -969,12 +969,14 @@ CREATE TABLE IF NOT EXISTS `poll` ( `poll_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `poll_guid` varchar(191) NOT NULL, `poll_channel` int(10) unsigned NOT NULL DEFAULT 0 , + `poll_author` varchar(191) NOT NULL, `poll_desc` text NOT NULL, `poll_flags` int(11) NOT NULL DEFAULT 0 , `poll_votes` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`poll_id`), KEY `poll_guid` (`poll_guid`), KEY `poll_channel` (`poll_channel`), + KEY `poll_author` (`poll_author`), KEY `poll_flags` (`poll_flags`), KEY `poll_votes` (`poll_votes`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index 84b6a554a..d8bbd89f4 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -944,6 +944,7 @@ CREATE TABLE "poll" ( "poll_id" serial NOT NULL, "poll_guid" text NOT NULL, "poll_channel" bigint NOT NULL DEFAULT '0', + "poll_author" text NOT NULL, "poll_desc" text NOT NULL, "poll_flags" bigint NOT NULL DEFAULT '0', "poll_votes" bigint NOT NULL DEFAULT '0', @@ -952,6 +953,7 @@ CREATE TABLE "poll" ( ); create index "poll_guid" on poll ("poll_guid"); create index "poll_channel" on poll ("poll_channel"); +create index "poll_author" on poll ("poll_author"); create index "poll_flags" on poll ("poll_flags"); create index "poll_votes" on poll ("poll_votes"); CREATE TABLE "poll_elm" ( -- cgit v1.2.3 From a454aad124f999e59e8bffb625c103b975aef107 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Wed, 7 Mar 2018 15:39:14 -0800 Subject: federated polls: GNU-Social requires us to preserve the original order of the poll answers for use in making a vote, unlike diaspora (which selects by guid) and activitypub (which selects by non-localisable text). --- install/schema_mysql.sql | 4 +++- install/schema_postgres.sql | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 9d60d9eb2..62cf6a5f2 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -988,10 +988,12 @@ CREATE TABLE IF NOT EXISTS `poll_elm` ( `pelm_desc` text NOT NULL, `pelm_flags` int(11) NOT NULL DEFAULT 0 , `pelm_result` float NOT NULL DEFAULT 0 , + `pelm_order` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`pelm_id`), KEY `pelm_guid` (`pelm_guid`), KEY `pelm_poll` (`pelm_poll`), - KEY `pelm_result` (`pelm_result`) + KEY `pelm_result` (`pelm_result`), + KEY `pelm_order` (`pelm_order`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profdef` ( diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index d8bbd89f4..a4f6e9253 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -963,11 +963,13 @@ CREATE TABLE "poll_elm" ( "pelm_desc" text NOT NULL, "pelm_flags" bigint NOT NULL DEFAULT '0', "pelm_result" float NOT NULL DEFAULT '0', + "pelm_order" numeric(6) NOT NULL DEFAULT '0', PRIMARY KEY ("pelm_id") ); create index "pelm_guid" on poll_elm ("pelm_guid"); create index "pelm_poll" on poll_elm ("pelm_poll"); create index "pelm_result" on poll_elm ("pelm_result"); +create index "pelm_order" on poll_elm ("pelm_order"); CREATE TABLE "profdef" ( "id" serial NOT NULL, -- cgit v1.2.3 From 9c02c66ed3838c753f4d50354716abdf0dcc2a6d Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Fri, 9 Mar 2018 09:17:57 +0100 Subject: remove redundant comma --- install/schema_mysql.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 62cf6a5f2..1f396ee0e 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -993,7 +993,7 @@ CREATE TABLE IF NOT EXISTS `poll_elm` ( KEY `pelm_guid` (`pelm_guid`), KEY `pelm_poll` (`pelm_poll`), KEY `pelm_result` (`pelm_result`), - KEY `pelm_order` (`pelm_order`), + KEY `pelm_order` (`pelm_order`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profdef` ( -- cgit v1.2.3 From ade11568f9dc094b124a442914d107cd3235f6e8 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Sun, 11 Mar 2018 13:53:15 +0100 Subject: update mysql schema --- install/schema_mysql.sql | 3 --- 1 file changed, 3 deletions(-) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 1f396ee0e..0d098d661 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -659,13 +659,10 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `uid_item_retained` (`uid`, `item_retained`), KEY `uid_item_private` (`uid`, `item_private`), KEY `uid_resource_type` (`uid`, `resource_type`), - KEY `aid` (`aid`), KEY `owner_xchan` (`owner_xchan`), KEY `author_xchan` (`author_xchan`), KEY `resource_id` (`resource_id`), KEY `resource_type` (`resource_type`), - KEY `item_restrict` (`item_restrict`), - KEY `item_flags` (`item_flags`), KEY `commented` (`commented`), KEY `verb` (`verb`), KEY `obj_type` (`obj_type`), -- cgit v1.2.3