/**
  * Walks down a SelectClause AST node, thereby generating the appropriate SQL.
  *
  * @param $selectClause
  * @return string The SQL.
  */
 public function walkSelectClause($selectClause)
 {
     $sql = parent::walkSelectClause($selectClause);
     if ($this->getQuery()->getHint('mysqlWalker.count') === true) {
         $sql = str_replace('SELECT', 'SELECT SQL_CALC_FOUND_ROWS', $sql);
     }
     return $sql;
 }
Exemple #2
0
 /**
  * Walks down a SelectClause AST node, thereby generating the appropriate SQL.
  *
  * @param $selectClause
  * @return string The SQL.
  */
 public function walkSelectClause($selectClause)
 {
     $sql = parent::walkSelectClause($selectClause);
     if ($this->getQuery()->getHint('mysqlWalker.sqlNoCache') === true) {
         if ($selectClause->isDistinct) {
             $sql = str_replace('SELECT DISTINCT', 'SELECT DISTINCT SQL_NO_CACHE', $sql);
         } else {
             $sql = str_replace('SELECT', 'SELECT SQL_NO_CACHE', $sql);
         }
     }
     return $sql;
 }
 public function walkSelectClause($selectClause)
 {
     $sql = parent::walkSelectClause($selectClause);
     if ($this->getQuery()->getHint(self::HINT_SQL_NO_CACHE) === true) {
         if ($selectClause->isDistinct) {
             $sql = str_replace('SELECT DISTINCT', 'SELECT DISTINCT SQL_NO_CACHE', $sql);
         } else {
             $sql = str_replace('SELECT', 'SELECT SQL_NO_CACHE ', $sql);
         }
     }
     if ($this->getQuery()->getHint(self::HINT_STRAIGHT_JOIN) === true) {
         $sql = str_replace('SELECT', 'SELECT STRAIGHT_JOIN ', $sql);
     }
     return $sql;
 }
 /** {@inheritDoc} */
 public function walkSelectClause($selectClause)
 {
     $sql = parent::walkSelectClause($selectClause);
     // Gets the query
     $query = $this->getQuery();
     if ($query->getHint('mysqlWalker.sqlCalcFoundRows') === true) {
         // Appends the SQL_CALC_FOUND_ROWS modifier
         $sql = str_replace('SELECT', 'SELECT SQL_CALC_FOUND_ROWS', $sql);
     }
     if ($query->getHint('mysqlWalker.sqlNoCache') === true) {
         // Appends the SQL_NO_CACHE modifier
         $sql = str_replace('SELECT', 'SELECT SQL_NO_CACHE', $sql);
     }
     return $sql;
 }
Exemple #5
0
 /**
  * @param \Doctrine\ORM\Query\AST\SelectClause $selectClause
  * @return mixed|string
  */
 public function walkSelectClause($selectClause)
 {
     /** @var \Carnage\Watson\Configuration $config */
     $config = $this->getEntityManager()->getConfiguration();
     $logger = $config->getWatsonLogger();
     $logger->nextQuery();
     $sql = parent::walkSelectClause($selectClause);
     $querySource = $this->findQuerySource();
     if ($config->addQueryComment()) {
         $comment = ' -- ' . $querySource['file'] . ':' . $querySource['line'] . "\n";
         $sql = preg_replace('/SELECT/', 'SELECT ' . $comment, $sql, 1);
     }
     $logger->logQuerySource($querySource['file'], $querySource['line']);
     $this->attachHydrator();
     return $sql;
 }
 /**
  * {@inheritDoc}
  */
 public function walkSelectClause($selectClause)
 {
     $result = parent::walkSelectClause($selectClause);
     $result = $this->replace($this->replacements, $result);
     return $result;
 }
 /**
  * {@inheritDoc}
  */
 public function walkSelectClause($selectClause)
 {
     $result = parent::walkSelectClause($selectClause);
     $fallbackSql = '';
     if ($this->needsFallback() && count($this->translatedComponents)) {
         $fallbackAliases = array();
         foreach ($this->replacements as $dqlAlias => $trans) {
             if (preg_match("/{$dqlAlias} AS ([^\\s]+)/smi", $result, $m)) {
                 list($tblAlias, $colName) = explode('.', $dqlAlias);
                 $fallback = $this->getSQLColumnAlias($colName . '_fallback');
                 $fallbackSql .= ', ' . $dqlAlias . ' AS ' . $fallback;
                 $fallbackAliases[$fallback] = rtrim($m[1], ',');
             }
         }
         $this->getQuery()->setHint(self::HINT_TRANSLATION_FALLBACKS, $fallbackAliases);
     }
     $result = str_replace(array_keys($this->replacements), array_values($this->replacements), $result);
     $result .= $fallbackSql;
     return $result;
 }
 /**
  * Walks down a SelectClause AST node, thereby generating the appropriate SQL.
  *
  * @param $selectClause
  * @return string The SQL.
  */
 public function walkSelectClause($selectClause)
 {
     $sql = parent::walkSelectClause($selectClause);
     if ($this->getQuery()->getHint('librinfoWalker.noIlike') === false) {
         $sql = str_replace('LIKE', 'ILIKE', $sql);
     }
     return $sql;
 }