/** * @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)); }
/** * @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; }
/** * {@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))); }
/** * @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); }
/** * @param SqlWalker $sqlWalker * @return string */ public function getSql(SqlWalker $sqlWalker) { return 'LPAD(' . $this->stringExpression->dispatch($sqlWalker) . ', ' . $this->lengthExpression->dispatch($sqlWalker) . ', ' . $this->padStringExpression->dispatch($sqlWalker) . ')'; }
/** * {@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) . ')'; }
/** * @param SqlWalker $sqlWalker * @return string */ public function getSql(SqlWalker $sqlWalker) { return sprintf('REPEAT(%s, %s)', $this->char->dispatch($sqlWalker), $this->times->dispatch($sqlWalker)); }
/** * {@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) . ')'; }