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 | |||||