From: Michael Wallner Date: Wed, 20 May 2015 15:42:36 +0000 (+0200) Subject: Merge branch 'async' X-Git-Tag: v2.1.0~1 X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fpq-gateway;a=commitdiff_plain;h=0861b6cd0d8f86add1a068fd3d9740428c8418cd;hp=c05be811151dbbd5a9b35e886db081bee8338581 Merge branch 'async' --- diff --git a/lib/pq/Gateway/Table.php b/lib/pq/Gateway/Table.php index e365e37..2789963 100644 --- a/lib/pq/Gateway/Table.php +++ b/lib/pq/Gateway/Table.php @@ -405,14 +405,26 @@ class Table implements \SplSubject if (!($relation instanceof Table\Reference)) { $relation = static::resolve($relation)->getRelation($this->getName()); } - $query->write("JOIN", $relation->foreignTable)->write("ON"); - foreach ($relation as $key => $ref) { - $query->criteria( - array( - "{$relation->referencedTable}.{$ref}=" => - new QueryExpr("{$relation->foreignTable}.{$key}") - ) - ); + if ($this->getName() === $relation->foreignTable) { + $query->write("JOIN", $relation->referencedTable)->write("ON"); + foreach ($relation as $key => $ref) { + $query->criteria( + array( + "{$relation->referencedTable}.{$ref}=" => + new QueryExpr("{$relation->foreignTable}.{$key}") + ) + ); + } + } else { + $query->write("JOIN", $relation->foreignTable)->write("ON"); + foreach ($relation as $key => $ref) { + $query->criteria( + array( + "{$relation->referencedTable}.{$ref}=" => + new QueryExpr("{$relation->foreignTable}.{$key}") + ) + ); + } } } if ($where) { diff --git a/tests/setup.inc b/tests/setup.inc index ec2236b..bdee9d3 100644 --- a/tests/setup.inc +++ b/tests/setup.inc @@ -3,7 +3,7 @@ ini_set("date.timezone", "UTC"); ini_set("error_reporting", E_ALL); -const PQ_TEST_DSN = ""; +define("PQ_TEST_DSN", getenv("PQ_TEST_DSN")); const PQ_TEST_SETUP_SQL = <<