1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-21 04:50:55 +01:00

Give ConpherenceThreadQuery a primary table alias

Summary: Fixes T11113. On the 2nd+ page, we could end up with an ambiguous `id` WHERE clause because we don't define a primary table alias on this query. Define one.

Test Plan:
Changed SearchEngine to return pages of size 5, searched for my threads, toggled to second page, no exception.

Used DarkConsole to examine that second-page query, saw that it had `thread.id` explicitly instead of `id` implicitly.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T11113

Differential Revision: https://secure.phabricator.com/D16080
This commit is contained in:
epriestley 2016-06-08 07:33:53 -07:00
parent c71f92a1eb
commit a653d4d9b3

View file

@ -100,7 +100,7 @@ final class ConpherenceThreadQuery
$data = queryfx_all( $data = queryfx_all(
$conn_r, $conn_r,
'SELECT conpherence_thread.* FROM %T conpherence_thread %Q %Q %Q %Q %Q', 'SELECT thread.* FROM %T thread %Q %Q %Q %Q %Q',
$table->getTableName(), $table->getTableName(),
$this->buildJoinClause($conn_r), $this->buildJoinClause($conn_r),
$this->buildWhereClause($conn_r), $this->buildWhereClause($conn_r),
@ -144,7 +144,7 @@ final class ConpherenceThreadQuery
protected function buildGroupClause(AphrontDatabaseConnection $conn_r) { protected function buildGroupClause(AphrontDatabaseConnection $conn_r) {
if ($this->participantPHIDs !== null || strlen($this->fulltext)) { if ($this->participantPHIDs !== null || strlen($this->fulltext)) {
return 'GROUP BY conpherence_thread.id'; return 'GROUP BY thread.id';
} else { } else {
return $this->buildApplicationSearchGroupClause($conn_r); return $this->buildApplicationSearchGroupClause($conn_r);
} }
@ -156,14 +156,14 @@ final class ConpherenceThreadQuery
if ($this->participantPHIDs !== null) { if ($this->participantPHIDs !== null) {
$joins[] = qsprintf( $joins[] = qsprintf(
$conn_r, $conn_r,
'JOIN %T p ON p.conpherencePHID = conpherence_thread.phid', 'JOIN %T p ON p.conpherencePHID = thread.phid',
id(new ConpherenceParticipant())->getTableName()); id(new ConpherenceParticipant())->getTableName());
} }
if (strlen($this->fulltext)) { if (strlen($this->fulltext)) {
$joins[] = qsprintf( $joins[] = qsprintf(
$conn_r, $conn_r,
'JOIN %T idx ON idx.threadPHID = conpherence_thread.phid', 'JOIN %T idx ON idx.threadPHID = thread.phid',
id(new ConpherenceIndex())->getTableName()); id(new ConpherenceIndex())->getTableName());
} }
@ -179,14 +179,14 @@ final class ConpherenceThreadQuery
if ($this->ids !== null) { if ($this->ids !== null) {
$where[] = qsprintf( $where[] = qsprintf(
$conn_r, $conn_r,
'conpherence_thread.id IN (%Ld)', 'thread.id IN (%Ld)',
$this->ids); $this->ids);
} }
if ($this->phids !== null) { if ($this->phids !== null) {
$where[] = qsprintf( $where[] = qsprintf(
$conn_r, $conn_r,
'conpherence_thread.phid IN (%Ls)', 'thread.phid IN (%Ls)',
$this->phids); $this->phids);
} }
@ -438,4 +438,8 @@ final class ConpherenceThreadQuery
return 'PhabricatorConpherenceApplication'; return 'PhabricatorConpherenceApplication';
} }
protected function getPrimaryTableAlias() {
return 'thread';
}
} }