Changeset View
Changeset View
Standalone View
Standalone View
src/infrastructure/query/PhabricatorQuery.php
Show All 9 Lines | |||||
/* -( Formatting Query Clauses )------------------------------------------- */ | /* -( Formatting Query Clauses )------------------------------------------- */ | ||||
/** | /** | ||||
* @task format | * @task format | ||||
*/ | */ | ||||
protected function formatWhereClause(array $parts) { | protected function formatWhereClause( | ||||
$parts = $this->flattenSubclause($parts); | AphrontDatabaseConnection $conn, | ||||
if (!$parts) { | array $parts) { | ||||
return ''; | |||||
} | |||||
return 'WHERE '.$this->formatWhereSubclause($parts); | |||||
} | |||||
/** | |||||
* @task format | |||||
*/ | |||||
protected function formatWhereSubclause(array $parts) { | |||||
$parts = $this->flattenSubclause($parts); | $parts = $this->flattenSubclause($parts); | ||||
if (!$parts) { | if (!$parts) { | ||||
return null; | return qsprintf($conn, ''); | ||||
} | } | ||||
return '('.implode(') AND (', $parts).')'; | return qsprintf($conn, 'WHERE %LA', $parts); | ||||
} | } | ||||
/** | /** | ||||
* @task format | * @task format | ||||
*/ | */ | ||||
protected function formatSelectClause( | protected function formatSelectClause( | ||||
AphrontDatabaseConnection $conn, | AphrontDatabaseConnection $conn, | ||||
array $parts) { | array $parts) { | ||||
$parts = $this->flattenSubclause($parts); | $parts = $this->flattenSubclause($parts); | ||||
if (!$parts) { | if (!$parts) { | ||||
throw new Exception(pht('Can not build empty SELECT clause!')); | throw new Exception(pht('Can not build empty SELECT clause!')); | ||||
} | } | ||||
return qsprintf($conn, 'SELECT %LQ', $parts); | return qsprintf($conn, 'SELECT %LQ', $parts); | ||||
} | } | ||||
/** | /** | ||||
* @task format | * @task format | ||||
*/ | */ | ||||
protected function formatJoinClause(array $parts) { | protected function formatJoinClause( | ||||
$parts = $this->flattenSubclause($parts); | AphrontDatabaseConnection $conn, | ||||
if (!$parts) { | array $parts) { | ||||
return ''; | |||||
} | |||||
return implode(' ', $parts); | |||||
} | |||||
/** | |||||
* @task format | |||||
*/ | |||||
protected function formatHavingClause(array $parts) { | |||||
$parts = $this->flattenSubclause($parts); | $parts = $this->flattenSubclause($parts); | ||||
if (!$parts) { | if (!$parts) { | ||||
return ''; | return qsprintf($conn, ''); | ||||
} | } | ||||
return 'HAVING '.$this->formatHavingSubclause($parts); | return qsprintf($conn, '%LJ', $parts); | ||||
} | } | ||||
/** | /** | ||||
* @task format | * @task format | ||||
*/ | */ | ||||
protected function formatHavingSubclause(array $parts) { | protected function formatHavingClause( | ||||
AphrontDatabaseConnection $conn, | |||||
array $parts) { | |||||
$parts = $this->flattenSubclause($parts); | $parts = $this->flattenSubclause($parts); | ||||
if (!$parts) { | if (!$parts) { | ||||
return null; | return qsprintf($conn, ''); | ||||
} | } | ||||
return '('.implode(') AND (', $parts).')'; | return qsprintf($conn, 'HAVING %LA', $parts); | ||||
} | } | ||||
/** | /** | ||||
* @task format | * @task format | ||||
*/ | */ | ||||
private function flattenSubclause(array $parts) { | private function flattenSubclause(array $parts) { | ||||
$result = array(); | $result = array(); | ||||
Show All 13 Lines |