Page MenuHomePhabricator

D10519.diff
No OneTemporary

D10519.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -570,6 +570,7 @@
'DoorkeeperRemarkupRule' => 'applications/doorkeeper/remarkup/DoorkeeperRemarkupRule.php',
'DoorkeeperRemarkupRuleAsana' => 'applications/doorkeeper/remarkup/DoorkeeperRemarkupRuleAsana.php',
'DoorkeeperRemarkupRuleJIRA' => 'applications/doorkeeper/remarkup/DoorkeeperRemarkupRuleJIRA.php',
+ 'DoorkeeperSchemaSpec' => 'applications/doorkeeper/storage/DoorkeeperSchemaSpec.php',
'DoorkeeperTagView' => 'applications/doorkeeper/view/DoorkeeperTagView.php',
'DoorkeeperTagsController' => 'applications/doorkeeper/controller/DoorkeeperTagsController.php',
'DrydockAllocatorWorker' => 'applications/drydock/worker/DrydockAllocatorWorker.php',
@@ -636,6 +637,7 @@
'DrydockResourceViewController' => 'applications/drydock/controller/DrydockResourceViewController.php',
'DrydockSFTPFilesystemInterface' => 'applications/drydock/interface/filesystem/DrydockSFTPFilesystemInterface.php',
'DrydockSSHCommandInterface' => 'applications/drydock/interface/command/DrydockSSHCommandInterface.php',
+ 'DrydockSchemaSpec' => 'applications/drydock/storage/DrydockSchemaSpec.php',
'DrydockWebrootInterface' => 'applications/drydock/interface/webroot/DrydockWebrootInterface.php',
'DrydockWorkingCopyBlueprintImplementation' => 'applications/drydock/blueprint/DrydockWorkingCopyBlueprintImplementation.php',
'FeedConduitAPIMethod' => 'applications/feed/conduit/FeedConduitAPIMethod.php',
@@ -1514,6 +1516,7 @@
'PhabricatorDoorkeeperApplication' => 'applications/doorkeeper/application/PhabricatorDoorkeeperApplication.php',
'PhabricatorDraft' => 'applications/draft/storage/PhabricatorDraft.php',
'PhabricatorDraftDAO' => 'applications/draft/storage/PhabricatorDraftDAO.php',
+ 'PhabricatorDraftSchemaSpec' => 'applications/draft/storage/PhabricatorDraftSchemaSpec.php',
'PhabricatorDrydockApplication' => 'applications/drydock/application/PhabricatorDrydockApplication.php',
'PhabricatorEdgeConfig' => 'infrastructure/edges/constants/PhabricatorEdgeConfig.php',
'PhabricatorEdgeConstants' => 'infrastructure/edges/constants/PhabricatorEdgeConstants.php',
@@ -1574,6 +1577,7 @@
'PhabricatorFeedManagementWorkflow' => 'applications/feed/management/PhabricatorFeedManagementWorkflow.php',
'PhabricatorFeedPublicStreamController' => 'applications/feed/controller/PhabricatorFeedPublicStreamController.php',
'PhabricatorFeedQuery' => 'applications/feed/query/PhabricatorFeedQuery.php',
+ 'PhabricatorFeedSchemaSpec' => 'applications/feed/storage/PhabricatorFeedSchemaSpec.php',
'PhabricatorFeedSearchEngine' => 'applications/feed/query/PhabricatorFeedSearchEngine.php',
'PhabricatorFeedStory' => 'applications/feed/story/PhabricatorFeedStory.php',
'PhabricatorFeedStoryAggregate' => 'applications/feed/story/PhabricatorFeedStoryAggregate.php',
@@ -3373,6 +3377,7 @@
'DoorkeeperRemarkupRule' => 'PhutilRemarkupRule',
'DoorkeeperRemarkupRuleAsana' => 'DoorkeeperRemarkupRule',
'DoorkeeperRemarkupRuleJIRA' => 'DoorkeeperRemarkupRule',
+ 'DoorkeeperSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'DoorkeeperTagView' => 'AphrontView',
'DoorkeeperTagsController' => 'PhabricatorController',
'DrydockAllocatorWorker' => 'PhabricatorWorker',
@@ -3451,6 +3456,7 @@
'DrydockResourceViewController' => 'DrydockResourceController',
'DrydockSFTPFilesystemInterface' => 'DrydockFilesystemInterface',
'DrydockSSHCommandInterface' => 'DrydockCommandInterface',
+ 'DrydockSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'DrydockWebrootInterface' => 'DrydockInterface',
'DrydockWorkingCopyBlueprintImplementation' => 'DrydockBlueprintImplementation',
'FeedConduitAPIMethod' => 'ConduitAPIMethod',
@@ -4430,6 +4436,7 @@
'PhabricatorDoorkeeperApplication' => 'PhabricatorApplication',
'PhabricatorDraft' => 'PhabricatorDraftDAO',
'PhabricatorDraftDAO' => 'PhabricatorLiskDAO',
+ 'PhabricatorDraftSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'PhabricatorDrydockApplication' => 'PhabricatorApplication',
'PhabricatorEdgeConfig' => 'PhabricatorEdgeConstants',
'PhabricatorEdgeCycleException' => 'Exception',
@@ -4486,6 +4493,7 @@
'PhabricatorFeedManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorFeedPublicStreamController' => 'PhabricatorFeedController',
'PhabricatorFeedQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
+ 'PhabricatorFeedSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'PhabricatorFeedSearchEngine' => 'PhabricatorApplicationSearchEngine',
'PhabricatorFeedStory' => array(
'PhabricatorPolicyInterface',
diff --git a/src/applications/auth/storage/PhabricatorAuthProviderConfig.php b/src/applications/auth/storage/PhabricatorAuthProviderConfig.php
--- a/src/applications/auth/storage/PhabricatorAuthProviderConfig.php
+++ b/src/applications/auth/storage/PhabricatorAuthProviderConfig.php
@@ -31,6 +31,9 @@
),
self::CONFIG_COLUMN_SCHEMA => array(
'isEnabled' => 'bool',
+ 'providerClass' => 'text128',
+ 'providerType' => 'text64',
+ 'providerDomain' => 'text128',
'shouldAllowLogin' => 'bool',
'shouldAllowRegistration' => 'bool',
'shouldAllowLink' => 'bool',
diff --git a/src/applications/config/controller/PhabricatorConfigDatabaseController.php b/src/applications/config/controller/PhabricatorConfigDatabaseController.php
--- a/src/applications/config/controller/PhabricatorConfigDatabaseController.php
+++ b/src/applications/config/controller/PhabricatorConfigDatabaseController.php
@@ -688,6 +688,9 @@
case PhabricatorConfigStorageSchema::STATUS_OKAY:
$icon = 'fa-check-circle green';
break;
+ case PhabricatorConfigStorageSchema::STATUS_NOTE:
+ $icon = 'fa-info-circle blue';
+ break;
case PhabricatorConfigStorageSchema::STATUS_WARN:
$icon = 'fa-exclamation-circle yellow';
break;
@@ -735,6 +738,10 @@
$status = PhabricatorConfigStorageSchema::getIssueStatus($issue);
switch ($status) {
+ case PhabricatorConfigStorageSchema::STATUS_NOTE:
+ $icon = PHUIStatusItemView::ICON_INFO;
+ $color = 'blue';
+ break;
case PhabricatorConfigStorageSchema::STATUS_WARN:
$icon = PHUIStatusItemView::ICON_WARNING;
$color = 'yellow';
diff --git a/src/applications/config/schema/PhabricatorConfigSchemaSpec.php b/src/applications/config/schema/PhabricatorConfigSchemaSpec.php
--- a/src/applications/config/schema/PhabricatorConfigSchemaSpec.php
+++ b/src/applications/config/schema/PhabricatorConfigSchemaSpec.php
@@ -74,6 +74,10 @@
$table = $this->newTable($table_name);
foreach ($columns as $name => $type) {
+ if ($type === null) {
+ continue;
+ }
+
$details = $this->getDetailsForDataType($type);
list($column_type, $charset, $collation, $nullable) = $details;
diff --git a/src/applications/config/schema/PhabricatorConfigStorageSchema.php b/src/applications/config/schema/PhabricatorConfigStorageSchema.php
--- a/src/applications/config/schema/PhabricatorConfigStorageSchema.php
+++ b/src/applications/config/schema/PhabricatorConfigStorageSchema.php
@@ -9,10 +9,12 @@
const ISSUE_COLUMNTYPE = 'columntype';
const ISSUE_NULLABLE = 'nullable';
const ISSUE_KEYCOLUMNS = 'keycolumns';
+ const ISSUE_SUBNOTE = 'subnote';
const ISSUE_SUBWARN = 'subwarn';
const ISSUE_SUBFAIL = 'subfail';
const STATUS_OKAY = 'okay';
+ const STATUS_NOTE = 'note';
const STATUS_WARN = 'warn';
const STATUS_FAIL = 'fail';
@@ -55,6 +57,9 @@
foreach ($this->getSubschemata() as $sub) {
switch ($sub->getStatus()) {
+ case self::STATUS_NOTE:
+ $issues[self::ISSUE_SUBNOTE] = self::ISSUE_SUBNOTE;
+ break;
case self::STATUS_WARN:
$issues[self::ISSUE_SUBWARN] = self::ISSUE_SUBWARN;
break;
@@ -104,6 +109,8 @@
return pht('Wrong Nullable Setting');
case self::ISSUE_KEYCOLUMNS:
return pht('Key on Wrong Columns');
+ case self::ISSUE_SUBNOTE:
+ return pht('Subschemata Have Notices');
case self::ISSUE_SUBWARN:
return pht('Subschemata Have Warnings');
case self::ISSUE_SUBFAIL:
@@ -129,6 +136,8 @@
return pht('This schema has the wrong nullable setting.');
case self::ISSUE_KEYCOLUMNS:
return pht('This schema is on the wrong columns.');
+ case self::ISSUE_SUBNOTE:
+ return pht('Subschemata have setup notices.');
case self::ISSUE_SUBWARN:
return pht('Subschemata have setup warnings.');
case self::ISSUE_SUBFAIL:
@@ -144,13 +153,15 @@
case self::ISSUE_SUBFAIL:
return self::STATUS_FAIL;
case self::ISSUE_SURPLUS:
- case self::ISSUE_CHARSET:
- case self::ISSUE_COLLATION:
case self::ISSUE_COLUMNTYPE:
case self::ISSUE_SUBWARN:
case self::ISSUE_KEYCOLUMNS:
case self::ISSUE_NULLABLE:
return self::STATUS_WARN;
+ case self::ISSUE_SUBNOTE:
+ case self::ISSUE_CHARSET:
+ case self::ISSUE_COLLATION:
+ return self::STATUS_NOTE;
default:
throw new Exception(pht('Unknown schema issue "%s"!', $issue));
}
@@ -159,8 +170,10 @@
public static function getStatusSeverity($status) {
switch ($status) {
case self::STATUS_FAIL:
- return 2;
+ return 3;
case self::STATUS_WARN:
+ return 2;
+ case self::STATUS_NOTE:
return 1;
case self::STATUS_OKAY:
return 0;
diff --git a/src/applications/dashboard/storage/PhabricatorDashboard.php b/src/applications/dashboard/storage/PhabricatorDashboard.php
--- a/src/applications/dashboard/storage/PhabricatorDashboard.php
+++ b/src/applications/dashboard/storage/PhabricatorDashboard.php
@@ -39,7 +39,11 @@
return array(
self::CONFIG_AUX_PHID => true,
self::CONFIG_SERIALIZATION => array(
- 'layoutConfig' => self::SERIALIZATION_JSON),
+ 'layoutConfig' => self::SERIALIZATION_JSON,
+ ),
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'name' => 'text255',
+ ),
) + parent::getConfiguration();
}
diff --git a/src/applications/dashboard/storage/PhabricatorDashboardInstall.php b/src/applications/dashboard/storage/PhabricatorDashboardInstall.php
--- a/src/applications/dashboard/storage/PhabricatorDashboardInstall.php
+++ b/src/applications/dashboard/storage/PhabricatorDashboardInstall.php
@@ -14,6 +14,19 @@
protected $applicationClass;
protected $dashboardPHID;
+ public function getConfiguration() {
+ return array(
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'applicationClass' => 'text64',
+ ),
+ self::CONFIG_KEY_SCHEMA => array(
+ 'objectPHID' => array(
+ 'columns' => array('objectPHID', 'applicationClass'),
+ ),
+ ),
+ ) + parent::getConfiguration();
+ }
+
public static function getDashboard(
PhabricatorUser $viewer,
$object_phid,
diff --git a/src/applications/dashboard/storage/PhabricatorDashboardPanel.php b/src/applications/dashboard/storage/PhabricatorDashboardPanel.php
--- a/src/applications/dashboard/storage/PhabricatorDashboardPanel.php
+++ b/src/applications/dashboard/storage/PhabricatorDashboardPanel.php
@@ -43,6 +43,11 @@
self::CONFIG_SERIALIZATION => array(
'properties' => self::SERIALIZATION_JSON,
),
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'name' => 'text255',
+ 'panelType' => 'text64',
+ 'isArchived' => 'bool',
+ ),
) + parent::getConfiguration();
}
diff --git a/src/applications/doorkeeper/storage/DoorkeeperExternalObject.php b/src/applications/doorkeeper/storage/DoorkeeperExternalObject.php
--- a/src/applications/doorkeeper/storage/DoorkeeperExternalObject.php
+++ b/src/applications/doorkeeper/storage/DoorkeeperExternalObject.php
@@ -19,6 +19,20 @@
self::CONFIG_SERIALIZATION => array(
'properties' => self::SERIALIZATION_JSON,
),
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'objectKey' => 'bytes12',
+ 'applicationType' => 'text32',
+ 'applicationDomain' => 'text32',
+ 'objectType' => 'text32',
+ 'objectID' => 'text64',
+ 'objectURI' => 'text128?',
+ 'importerPHID' => 'phid?',
+ ),
+ self::CONFIG_KEY_SCHEMA => array(
+ 'key_object' => array(
+ 'columns' => array('objectKey'),
+ ),
+ ),
) + parent::getConfiguration();
}
diff --git a/src/applications/doorkeeper/storage/DoorkeeperSchemaSpec.php b/src/applications/doorkeeper/storage/DoorkeeperSchemaSpec.php
new file mode 100644
--- /dev/null
+++ b/src/applications/doorkeeper/storage/DoorkeeperSchemaSpec.php
@@ -0,0 +1,12 @@
+<?php
+
+final class DoorkeeperSchemaSpec
+ extends PhabricatorConfigSchemaSpec {
+
+ public function buildSchemata() {
+ $this->buildLiskSchemata('DoorkeeperDAO');
+
+ $this->buildEdgeSchemata(new DoorkeeperExternalObject());
+ }
+
+}
diff --git a/src/applications/draft/storage/PhabricatorDraft.php b/src/applications/draft/storage/PhabricatorDraft.php
--- a/src/applications/draft/storage/PhabricatorDraft.php
+++ b/src/applications/draft/storage/PhabricatorDraft.php
@@ -14,6 +14,15 @@
self::CONFIG_SERIALIZATION => array(
'metadata' => self::SERIALIZATION_JSON,
),
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'draftKey' => 'text64',
+ 'draft' => 'text',
+ ),
+ self::CONFIG_KEY_SCHEMA => array(
+ 'authorPHID' => array(
+ 'columns' => array('authorPHID', 'draftKey'),
+ ),
+ ),
) + parent::getConfiguration();
}
diff --git a/src/applications/draft/storage/PhabricatorDraftSchemaSpec.php b/src/applications/draft/storage/PhabricatorDraftSchemaSpec.php
new file mode 100644
--- /dev/null
+++ b/src/applications/draft/storage/PhabricatorDraftSchemaSpec.php
@@ -0,0 +1,10 @@
+<?php
+
+final class PhabricatorDraftSchemaSpec
+ extends PhabricatorConfigSchemaSpec {
+
+ public function buildSchemata() {
+ $this->buildLiskSchemata('PhabricatorDraftDAO');
+ }
+
+}
diff --git a/src/applications/drydock/storage/DrydockBlueprint.php b/src/applications/drydock/storage/DrydockBlueprint.php
--- a/src/applications/drydock/storage/DrydockBlueprint.php
+++ b/src/applications/drydock/storage/DrydockBlueprint.php
@@ -36,7 +36,11 @@
self::CONFIG_AUX_PHID => true,
self::CONFIG_SERIALIZATION => array(
'details' => self::SERIALIZATION_JSON,
- )
+ ),
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'className' => 'text255',
+ 'blueprintName' => 'text255',
+ ),
) + parent::getConfiguration();
}
diff --git a/src/applications/drydock/storage/DrydockLease.php b/src/applications/drydock/storage/DrydockLease.php
--- a/src/applications/drydock/storage/DrydockLease.php
+++ b/src/applications/drydock/storage/DrydockLease.php
@@ -43,6 +43,20 @@
self::CONFIG_SERIALIZATION => array(
'attributes' => self::SERIALIZATION_JSON,
),
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'status' => 'uint32',
+ 'until' => 'epoch?',
+ 'resourceType' => 'text128',
+ 'taskID' => 'id?',
+ 'ownerPHID' => 'phid?',
+ 'resourceID' => 'id?',
+ ),
+ self::CONFIG_KEY_SCHEMA => array(
+ 'key_phid' => null,
+ 'phid' => array(
+ 'columns' => array('phid'),
+ ),
+ ),
) + parent::getConfiguration();
}
diff --git a/src/applications/drydock/storage/DrydockLog.php b/src/applications/drydock/storage/DrydockLog.php
--- a/src/applications/drydock/storage/DrydockLog.php
+++ b/src/applications/drydock/storage/DrydockLog.php
@@ -14,6 +14,11 @@
public function getConfiguration() {
return array(
self::CONFIG_TIMESTAMPS => false,
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'resourceID' => 'id?',
+ 'leaseID' => 'id?',
+ 'message' => 'text',
+ ),
) + parent::getConfiguration();
}
diff --git a/src/applications/drydock/storage/DrydockResource.php b/src/applications/drydock/storage/DrydockResource.php
--- a/src/applications/drydock/storage/DrydockResource.php
+++ b/src/applications/drydock/storage/DrydockResource.php
@@ -23,6 +23,18 @@
'attributes' => self::SERIALIZATION_JSON,
'capabilities' => self::SERIALIZATION_JSON,
),
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'name' => 'text255',
+ 'ownerPHID' => 'phid?',
+ 'status' => 'uint32',
+ 'type' => 'text64',
+ ),
+ self::CONFIG_KEY_SCHEMA => array(
+ 'key_phid' => null,
+ 'phid' => array(
+ 'columns' => array('phid'),
+ ),
+ ),
) + parent::getConfiguration();
}
diff --git a/src/applications/drydock/storage/DrydockSchemaSpec.php b/src/applications/drydock/storage/DrydockSchemaSpec.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/storage/DrydockSchemaSpec.php
@@ -0,0 +1,14 @@
+<?php
+
+final class DrydockSchemaSpec
+ extends PhabricatorConfigSchemaSpec {
+
+ public function buildSchemata() {
+ $this->buildLiskSchemata('DrydockDAO');
+
+ $this->buildTransactionSchema(
+ new DrydockBlueprintTransaction());
+
+ }
+
+}
diff --git a/src/applications/feed/storage/PhabricatorFeedSchemaSpec.php b/src/applications/feed/storage/PhabricatorFeedSchemaSpec.php
new file mode 100644
--- /dev/null
+++ b/src/applications/feed/storage/PhabricatorFeedSchemaSpec.php
@@ -0,0 +1,10 @@
+<?php
+
+final class PhabricatorFeedSchemaSpec
+ extends PhabricatorConfigSchemaSpec {
+
+ public function buildSchemata() {
+ $this->buildLiskSchemata('PhabricatorFeedDAO');
+ }
+
+}
diff --git a/src/applications/feed/storage/PhabricatorFeedStoryData.php b/src/applications/feed/storage/PhabricatorFeedStoryData.php
--- a/src/applications/feed/storage/PhabricatorFeedStoryData.php
+++ b/src/applications/feed/storage/PhabricatorFeedStoryData.php
@@ -15,6 +15,19 @@
self::CONFIG_SERIALIZATION => array(
'storyData' => self::SERIALIZATION_JSON,
),
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'chronologicalKey' => 'uint64',
+ 'storyType' => 'text64',
+ ),
+ self::CONFIG_KEY_SCHEMA => array(
+ 'key_phid' => null,
+ 'phid' => array(
+ 'columns' => array('phid'),
+ ),
+ 'chronologicalKey' => array(
+ 'columns' => array('chronologicalKey'),
+ ),
+ ),
) + parent::getConfiguration();
}
diff --git a/src/applications/feed/storage/PhabricatorFeedStoryReference.php b/src/applications/feed/storage/PhabricatorFeedStoryReference.php
--- a/src/applications/feed/storage/PhabricatorFeedStoryReference.php
+++ b/src/applications/feed/storage/PhabricatorFeedStoryReference.php
@@ -9,6 +9,16 @@
return array(
self::CONFIG_IDS => self::IDS_MANUAL,
self::CONFIG_TIMESTAMPS => false,
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'chronologicalKey' => 'uint64',
+ 'id' => null,
+ ),
+ self::CONFIG_KEY_SCHEMA => array(
+ 'PRIMARY' => null,
+ 'objectPHID' => array(
+ 'columns' => array('objectPHID', 'chronologicalKey'),
+ ),
+ ),
) + parent::getConfiguration();
}
diff --git a/src/applications/notification/storage/PhabricatorFeedStoryNotification.php b/src/applications/notification/storage/PhabricatorFeedStoryNotification.php
--- a/src/applications/notification/storage/PhabricatorFeedStoryNotification.php
+++ b/src/applications/notification/storage/PhabricatorFeedStoryNotification.php
@@ -11,6 +11,17 @@
return array(
self::CONFIG_IDS => self::IDS_MANUAL,
self::CONFIG_TIMESTAMPS => false,
+ self::CONFIG_COLUMN_SCHEMA => array(
+ 'chronologicalKey' => 'uint64',
+ 'hasViewed' => 'bool',
+ 'id' => null,
+ ),
+ self::CONFIG_KEY_SCHEMA => array(
+ 'PRIMARY' => null,
+ 'userPHID' => array(
+ 'columns' => array('userPHID', 'chronologicalKey'),
+ ),
+ ),
) + parent::getConfiguration();
}
diff --git a/src/infrastructure/storage/lisk/LiskDAO.php b/src/infrastructure/storage/lisk/LiskDAO.php
--- a/src/infrastructure/storage/lisk/LiskDAO.php
+++ b/src/infrastructure/storage/lisk/LiskDAO.php
@@ -1750,9 +1750,8 @@
$map = array();
foreach ($this->getAllLiskProperties() as $property) {
// First, use types specified explicitly in the table configuration.
- $type = idx($custom_map, $property);
- if ($type) {
- $map[$property] = $type;
+ if (array_key_exists($property, $custom_map)) {
+ $map[$property] = $custom_map[$property];
continue;
}
@@ -1786,7 +1785,7 @@
}
// We don't know the type of this column.
- $map[$property] = null;
+ $map[$property] = '<unknown>';
}
return $map;

File Metadata

Mime Type
text/plain
Expires
May 12 2024, 3:56 AM (4 w, 5 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6288493
Default Alt Text
D10519.diff (20 KB)

Event Timeline