diff --git a/lib/Doctrine/Association/Self.php b/lib/Doctrine/Association/Self.php deleted file mode 100644 index a6af700f1..000000000 --- a/lib/Doctrine/Association/Self.php +++ /dev/null @@ -1,90 +0,0 @@ -. - */ - -class Doctrine_Association_Self extends Doctrine_Association { - /** - * getRelationDql - * - * @param integer $count - * @return string - */ - public function getRelationDql($count, $context = 'record') { - switch($context): - case "record": - $sub = "SELECT ".$this->foreign. - " FROM ".$this->associationTable->getTableName(). - " WHERE ".$this->local. - " = ?"; - $sub2 = "SELECT ".$this->local. - " FROM ".$this->associationTable->getTableName(). - " WHERE ".$this->foreign. - " = ?"; - - - $dql = "FROM ".$this->table->getComponentName(); - $dql .= ".".$this->associationTable->getComponentName(); - $dql .= " WHERE ".$this->table->getComponentName().".".$this->table->getIdentifier()." IN ($sub)"; - $dql .= " || ".$this->table->getComponentName().".".$this->table->getIdentifier()." IN ($sub2)"; - break; - case "collection": - $sub = substr(str_repeat("?, ", $count),0,-2); - $dql = "FROM ".$this->associationTable->getComponentName().".".$this->table->getComponentName(); - $dql .= " WHERE ".$this->associationTable->getComponentName().".".$this->local." IN ($sub)"; - endswitch; - - return $dql; - } - - - public function fetchRelatedFor(Doctrine_Record $record) { - $id = $record->getIncremented(); - - $q = new Doctrine_RawSql(); - - $assocTable = $this->getAssociationFactory()->getTableName(); - $tableName = $record->getTable()->getTableName(); - $identifier = $record->getTable()->getIdentifier(); - - $sub = "SELECT ".$this->getForeign(). - " FROM ".$assocTable. - " WHERE ".$this->getLocal(). - " = ?"; - - $sub2 = "SELECT ".$this->getLocal(). - " FROM ".$assocTable. - " WHERE ".$this->getForeign(). - " = ?"; - - $q->select('{'.$tableName.'.*}, {'.$assocTable.'.*}') - ->from($tableName.' INNER JOIN '.$assocTable.' ON '. - $tableName.'.'.$identifier.' = '.$assocTable.'.'.$this->getLocal().' OR '. - $tableName.'.'.$identifier.' = '.$assocTable.'.'.$this->getForeign() - ) - ->where($tableName.'.'.$identifier.' IN ('.$sub.') OR '. - $tableName.'.'.$identifier.' IN ('.$sub2.')' - ); - $q->addComponent($tableName, $record->getTable()->getComponentName()); - $q->addComponent($assocTable, $record->getTable()->getComponentName(). '.' . $this->getAssociationFactory()->getComponentName()); - - return $q->execute(array($id, $id)); - } -} -?>