Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/storage/DifferentialRevision.php
Show First 20 Lines • Show All 1,016 Lines • ▼ Show 20 Lines | $this->openTransaction(); | ||||
$diffs = id(new DifferentialDiffQuery()) | $diffs = id(new DifferentialDiffQuery()) | ||||
->setViewer($viewer) | ->setViewer($viewer) | ||||
->withRevisionIDs(array($this->getID())) | ->withRevisionIDs(array($this->getID())) | ||||
->execute(); | ->execute(); | ||||
foreach ($diffs as $diff) { | foreach ($diffs as $diff) { | ||||
$engine->destroyObject($diff); | $engine->destroyObject($diff); | ||||
} | } | ||||
$conn_w = $this->establishConnection('w'); | id(new DifferentialAffectedPathEngine()) | ||||
->setRevision($this) | |||||
// we have to do paths a little differently as they do not have | ->destroyAffectedPaths(); | ||||
// an id or phid column for delete() to act on | |||||
$dummy_path = new DifferentialAffectedPath(); | |||||
queryfx( | |||||
$conn_w, | |||||
'DELETE FROM %T WHERE revisionID = %d', | |||||
$dummy_path->getTableName(), | |||||
$this->getID()); | |||||
$viewstate_query = id(new DifferentialViewStateQuery()) | $viewstate_query = id(new DifferentialViewStateQuery()) | ||||
->setViewer($viewer) | ->setViewer($viewer) | ||||
->withObjectPHIDs(array($this->getPHID())); | ->withObjectPHIDs(array($this->getPHID())); | ||||
$viewstates = new PhabricatorQueryIterator($viewstate_query); | $viewstates = new PhabricatorQueryIterator($viewstate_query); | ||||
foreach ($viewstates as $viewstate) { | foreach ($viewstates as $viewstate) { | ||||
$viewstate->delete(); | $viewstate->delete(); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 124 Lines • Show Last 20 Lines |