示例#1
0
 /**
  * Gets the SQL snippet of a qualified column name for the given field name.
  *
  * @param string $field The field name.
  * @param ClassMetadata $class The class that declares this field. The table this class is
  *                             mapped to must own the column for the given field.
  * @param string $alias
  */
 protected function _getSelectColumnSQL($field, ClassMetadata $class, $alias = 'r')
 {
     $columnName = $class->columnNames[$field];
     $sql = $this->_getSQLTableAlias($class->name, $alias == 'r' ? '' : $alias) . '.' . $class->getQuotedColumnName($field, $this->_platform);
     $columnAlias = $this->_platform->getSQLResultCasing($columnName . $this->_sqlAliasCounter++);
     $this->_rsm->addFieldResult($alias, $columnAlias, $field);
     return "{$sql} AS {$columnAlias}";
 }
 /**
  * Gets the SQL snippet of a qualified column name for the given field name.
  *
  * @param string $field The field name.
  * @param ClassMetadata $class The class that declares this field. The table this class is
  *                             mapped to must own the column for the given field.
  */
 protected function _getSelectColumnSQL($field, ClassMetadata $class)
 {
     $columnName = $class->columnNames[$field];
     $sql = $this->_getSQLTableAlias($class->name) . '.' . $class->getQuotedColumnName($field, $this->_platform);
     $columnAlias = $this->_platform->getSQLResultCasing($columnName . $this->_sqlAliasCounter++);
     if (!isset($this->_resultColumnNames[$columnAlias])) {
         $this->_resultColumnNames[$columnAlias] = $columnName;
     }
     return "{$sql} AS {$columnAlias}";
 }
 /**
  * Gets the SQL snippet for all join columns of the given class that are to be
  * placed in an SQL SELECT statement.
  *
  * @param $class
  * @return string
  * @todo Not reused... inline?
  */
 private function _getSelectJoinColumnsSQL(ClassMetadata $class)
 {
     $sql = '';
     foreach ($class->associationMappings as $assoc) {
         if ($assoc['isOwningSide'] && $assoc['type'] & ClassMetadata::TO_ONE) {
             foreach ($assoc['targetToSourceKeyColumns'] as $srcColumn) {
                 $columnAlias = $srcColumn . $this->_sqlAliasCounter++;
                 $sql .= ', ' . $this->_getSQLTableAlias($this->_class->name) . ".{$srcColumn} AS {$columnAlias}";
                 $resultColumnName = $this->_platform->getSQLResultCasing($columnAlias);
                 if (!isset($this->_resultColumnNames[$resultColumnName])) {
                     $this->_resultColumnNames[$resultColumnName] = $srcColumn;
                 }
             }
         }
     }
     return $sql;
 }
示例#4
0
 /**
  * Gets an SQL column alias for a column name.
  *
  * @param string $columnName
  * @return string
  */
 public function getSQLColumnAlias($columnName)
 {
     // Trim the column alias to the maximum identifier length of the platform.
     // If the alias is to long, characters are cut off from the beginning.
     return $this->_platform->getSQLResultCasing(substr($columnName . $this->_sqlAliasCounter++, -$this->_platform->getMaxIdentifierLength()));
 }