X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fpq-gateway;a=blobdiff_plain;f=lib%2Fpq%2FGateway%2FTable%2FRelations.php;fp=lib%2Fpq%2FGateway%2FTable%2FRelations.php;h=b96ae661a8b12bd1a256d4775535163c0a25dfed;hp=700f3fcad524829daf7b009632ac6f669ea8a75a;hb=d3a497c12f60567cbb20ea626fd909f94955ebac;hpb=51f1ba99cc3bd04f06db34c145952494779a6e48 diff --git a/lib/pq/Gateway/Table/Relations.php b/lib/pq/Gateway/Table/Relations.php index 700f3fc..b96ae66 100644 --- a/lib/pq/Gateway/Table/Relations.php +++ b/lib/pq/Gateway/Table/Relations.php @@ -4,36 +4,41 @@ namespace pq\Gateway\Table; use \pq\Gateway\Table; -/* - * case when att1.attname like '%\_'||att2.attname then - substring(att1.attname from '^.*(?=_'||att2.attname||'$)') - else - att1.attname - end - */ const RELATION_SQL = <<getQueryExecutor()->execute( new \pq\Query\Writer(RELATION_SQL, array($table->getName())), function($result) use($table, $cache) { - $rel = $result->map([3,0], null, \pq\Result::FETCH_ASSOC); - foreach ($rel as $table => $reference) { - foreach ($reference as $name => $ref) { - $this->references[$table][$name] = new Reference($ref); + $rel = $result->map([1,2], null, \pq\Result::FETCH_ASSOC); + foreach ($rel as $ref) { + foreach ($ref as $table => $key) { + $reference = new Reference($key); + $this->references[$table][$reference->name] = $reference; } } $cache->set("$table:relations", $this->references); @@ -110,9 +116,9 @@ class Relations implements \Countable, \IteratorAggregate /** * Implements \IteratorAggregate - * @return \RecursiveArrayIterator + * @return \ArrayIterator */ function getIterator() { - return new \RecursiveArrayIterator($this->references); + return new \ArrayIterator($this->references); } }