From 467c4e84e5ac6982a58ef1e870c4a8c9177171f4 Mon Sep 17 00:00:00 2001 From: epriestley Date: Tue, 26 Apr 2016 11:19:03 -0700 Subject: [PATCH] Add an edge table to the `search` database Summary: Fixes T10778. This is a result of T10262: when we save a form configuration and adjust the policy, we try to scramble attached file secrets. There aren't going to be any attached files, but there's also no edge table, so we fail. We could skip this code, but we'll likely need an edge table here sooner or later so it's probably simpler in the long run to just add an empty one. Test Plan: - Ran `bin/storage upgrade`, got a clean bill of health. - Saved a form configuration after making a policy edit, no more `edge` exception. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10778 Differential Revision: https://secure.phabricator.com/D15803 --- .../sql/autopatches/20160426.searchedge.sql | 16 ++++++++++++++++ src/__phutil_library_map__.php | 2 ++ .../storage/PhabricatorSearchSchemaSpec.php | 10 ++++++++++ 3 files changed, 28 insertions(+) create mode 100644 resources/sql/autopatches/20160426.searchedge.sql create mode 100644 src/applications/search/storage/PhabricatorSearchSchemaSpec.php diff --git a/resources/sql/autopatches/20160426.searchedge.sql b/resources/sql/autopatches/20160426.searchedge.sql new file mode 100644 index 0000000000..630f9759ae --- /dev/null +++ b/resources/sql/autopatches/20160426.searchedge.sql @@ -0,0 +1,16 @@ +CREATE TABLE {$NAMESPACE}_search.edge ( + src VARBINARY(64) NOT NULL, + type INT UNSIGNED NOT NULL, + dst VARBINARY(64) NOT NULL, + dateCreated INT UNSIGNED NOT NULL, + seq INT UNSIGNED NOT NULL, + dataID INT UNSIGNED, + PRIMARY KEY (src, type, dst), + KEY `src` (src, type, dateCreated, seq), + UNIQUE KEY `key_dst` (dst, type, src) +) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT}; + +CREATE TABLE {$NAMESPACE}_search.edgedata ( + id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + data LONGTEXT NOT NULL COLLATE {$COLLATE_TEXT} +) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT}; diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index cb7520e3a1..953e5a4eb8 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -3306,6 +3306,7 @@ phutil_register_library_map(array( 'PhabricatorSearchPreferencesSettingsPanel' => 'applications/settings/panel/PhabricatorSearchPreferencesSettingsPanel.php', 'PhabricatorSearchRelationship' => 'applications/search/constants/PhabricatorSearchRelationship.php', 'PhabricatorSearchResultView' => 'applications/search/view/PhabricatorSearchResultView.php', + 'PhabricatorSearchSchemaSpec' => 'applications/search/storage/PhabricatorSearchSchemaSpec.php', 'PhabricatorSearchSelectController' => 'applications/search/controller/PhabricatorSearchSelectController.php', 'PhabricatorSearchSelectField' => 'applications/search/field/PhabricatorSearchSelectField.php', 'PhabricatorSearchStringListField' => 'applications/search/field/PhabricatorSearchStringListField.php', @@ -7982,6 +7983,7 @@ phutil_register_library_map(array( 'PhabricatorSearchPreferencesSettingsPanel' => 'PhabricatorSettingsPanel', 'PhabricatorSearchRelationship' => 'Phobject', 'PhabricatorSearchResultView' => 'AphrontView', + 'PhabricatorSearchSchemaSpec' => 'PhabricatorConfigSchemaSpec', 'PhabricatorSearchSelectController' => 'PhabricatorSearchBaseController', 'PhabricatorSearchSelectField' => 'PhabricatorSearchField', 'PhabricatorSearchStringListField' => 'PhabricatorSearchField', diff --git a/src/applications/search/storage/PhabricatorSearchSchemaSpec.php b/src/applications/search/storage/PhabricatorSearchSchemaSpec.php new file mode 100644 index 0000000000..4e9e739016 --- /dev/null +++ b/src/applications/search/storage/PhabricatorSearchSchemaSpec.php @@ -0,0 +1,10 @@ +buildEdgeSchemata(new PhabricatorProfilePanelConfiguration()); + } + +} -- 2.51.2