/**
  * @param SqlWalker $sqlWalker
  *
  * @return string
  */
 public function getSql(SqlWalker $sqlWalker)
 {
     $this->validatePlatform($sqlWalker->getConnection()->getDatabasePlatform());
     if ($this->optionalExpression) {
         return sprintf('%s(%s, %s, %s)', $this->functionName, $this->firstGeomExpression->dispatch($sqlWalker), $this->secondGeomExpression->dispatch($sqlWalker), $this->optionalExpression->dispatch($sqlWalker));
     }
     return sprintf('%s(%s, %s)', $this->functionName, $this->firstGeomExpression->dispatch($sqlWalker), $this->secondGeomExpression->dispatch($sqlWalker));
 }
Example #2
0
 /**
  * @inheritdoc
  */
 public function getSql(SqlWalker $sqlWalker)
 {
     $result = 'LISTAGG(' . $this->listaggField->dispatch($sqlWalker);
     if ($this->separator) {
         $result .= ', ' . $sqlWalker->walkStringPrimary($this->separator) . ')';
     } else {
         $result .= ')';
     }
     $result .= ' WITHIN GROUP (' . $sqlWalker->walkOrderByClause($this->orderBy) . ')';
     if (count($this->partitionBy)) {
         $partitionBy = array();
         foreach ($this->partitionBy as $part) {
             $partitionBy[] = $part->dispatch($sqlWalker);
         }
         $result .= ' PARTITION BY (' . join($partitionBy, ',') . ')';
     }
     return $result;
 }
Example #3
0
 /**
  * {@inheritdoc}
  */
 public function getSql(SqlWalker $s)
 {
     $platform = $s->getConnection()->getDatabasePlatform()->getName();
     switch ($platform) {
         case 'postgresql':
             return sprintf('ST_Distance_Sphere(%s, %s)', $this->arg1->dispatch($s), $this->arg2->dispatch($s));
         case 'sqlite':
             return sprintf('GreatCircleLength(MakeLine(%s, %s))', $this->arg1->dispatch($s), $this->arg2->dispatch($s));
     }
     return sprintf(self::FORMULA, self::EARTH_RADIUS, $this->y($this->arg1->dispatch($s)), $this->y($this->arg2->dispatch($s)), $this->y($this->arg1->dispatch($s)), $this->y($this->arg2->dispatch($s)), $this->x($this->arg2->dispatch($s)), $this->x($this->arg1->dispatch($s)));
 }
Example #4
0
 /**
  * @param SqlWalker $sqlWalker
  * @return string
  * @throws \Doctrine\ORM\Query\AST\ASTException
  */
 public function getSql(SqlWalker $sqlWalker)
 {
     return sprintf('GREATEST(%s, %s)', $this->firstExpression->dispatch($sqlWalker), $this->secondExpression->dispatch($sqlWalker));
 }
 /**
  * {@inheritdoc}
  */
 public function getSql(SqlWalker $sqlWalker)
 {
     $this->loadConversionHints($sqlWalker);
     return $this->nativePlatform->convertSqlValue($this->parameters[$this->valueIndex], $this->fieldName, $this->column->dispatch($sqlWalker), $this->strategy);
 }
Example #6
0
 /**
  * @param SqlWalker $sqlWalker
  * @return string
  */
 public function getSql(SqlWalker $sqlWalker)
 {
     return 'LPAD(' . $this->stringExpression->dispatch($sqlWalker) . ', ' . $this->lengthExpression->dispatch($sqlWalker) . ', ' . $this->padStringExpression->dispatch($sqlWalker) . ')';
 }
Example #7
0
 /**
  * {@inheritdoc}
  */
 public function getSql(SqlWalker $sqlWalker)
 {
     return sprintf('IF(TIMESTAMPDIFF(SECOND, %s, NOW()) > 0, TRUE, FALSE)', $this->date->dispatch($sqlWalker));
 }
 /**
  * @inheritdoc
  */
 public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
 {
     return 'DATE(' . $this->date->dispatch($sqlWalker) . ')';
 }
Example #9
0
 /**
  * @param SqlWalker $sqlWalker
  * @return string
  */
 public function getSql(SqlWalker $sqlWalker)
 {
     return sprintf('REPEAT(%s, %s)', $this->char->dispatch($sqlWalker), $this->times->dispatch($sqlWalker));
 }
Example #10
0
 /**
  * {@inheritdoc}
  */
 public function getSql(SqlWalker $sqlWalker)
 {
     return sprintf('MATCH (%s) AGAINST (%s)', $this->field->dispatch($sqlWalker), $this->value->dispatch($sqlWalker));
 }
 /**
  * @param \Doctrine\ORM\Query\SqlWalker $sqlWalker
  * @return string
  */
 public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
 {
     return 'SUBSTRING_INDEX(' . $this->value->dispatch($sqlWalker) . ', ' . $this->delimiter->dispatch($sqlWalker) . ', ' . $this->count->dispatch($sqlWalker) . ')';
 }