/** * UpdateStatement ::= UpdateClause [WhereClause] */ public function _UpdateStatement() { $updateStatement = new AST\UpdateStatement($this->_UpdateClause()); $updateStatement->setWhereClause($this->_lexer->isNextToken(Lexer::T_WHERE) ? $this->_WhereClause() : null); return $updateStatement; }
/** * Walks down an UpdateStatement AST node, thereby generating the appropriate SQL. * * @param UpdateStatement * @return string The SQL. */ public function walkUpdateStatement(AST\UpdateStatement $AST) { $this->_useSqlTableAliases = false; // TODO: Ask platform instead? $sql = $this->walkUpdateClause($AST->getUpdateClause()); if ($whereClause = $AST->getWhereClause()) { $sql .= $this->walkWhereClause($whereClause); } else { if ($discSql = $this->_generateDiscriminatorColumnConditionSql($this->_currentRootAlias)) { $sql .= ' WHERE ' . $discSql; } } return $sql; }