public function toSql(BaseDriver $driver, ArgumentArray $args) { $sql = ''; if ($driver instanceof MySQLDriver) { $sql = 'CHANGE COLUMN '; if (is_string($this->fromColumn)) { $sql .= $driver->quoteIdentifier($this->fromColumn); } elseif ($this->fromColumn instanceof Column) { $sql .= $driver->quoteIdentifier($this->fromColumn->getName()); } // the 'toColumn' must be a type of Column, we need at least column type to rename. // $sql .= ' ' . $driver->quoteIdentifier($this->toColumn->getName()) . ' ' . $this->toColumn->getType(); $sql .= ' ' . $this->toColumn->buildDefinitionSql($driver, $args); } elseif ($driver instanceof PgSQLDriver) { // ALTER TABLE distributors RENAME CONSTRAINT zipchk TO zip_check; $sql = 'RENAME COLUMN '; if (is_string($this->fromColumn)) { $sql .= $driver->quoteIdentifier($this->fromColumn); } elseif ($this->fromColumn instanceof Column) { $sql .= $driver->quoteIdentifier($this->fromColumn->getName()); } // the 'toColumn' must be a type of Column, we need at least column type to rename. $sql .= ' TO ' . $driver->quoteIdentifier($this->toColumn->getName()); } else { throw new UnsupportedDriverException($driver, $this); } return $sql; }
public function toSql(BaseDriver $driver, ArgumentArray $args) { if ($this->clauseType == self::SET_DEFAULT) { return 'ALTER COLUMN ' . $driver->quoteIdentifier($this->name) . ' SET DEFAULT ' . $driver->deflate($this->defaultValue); } else { if ($this->clauseType == self::DROP_DEFAULT) { return 'ALTER COLUMN ' . $driver->quoteIdentifier($this->name) . ' DROP DEFAULT'; } else { throw new InvalidArgumentException('You should call either setDefault nor dropDefault'); } } }
public function toSql(BaseDriver $driver, ArgumentArray $args) { $sql = ''; foreach ($this->columns as $col) { $sql .= $driver->quoteIdentifier($col) . ','; } return rtrim($sql, ','); }
public function toSql(BaseDriver $driver, ArgumentArray $args) { $sql = 'DROP DATABASE'; if ($driver instanceof MySQLDriver) { $sql .= $this->buildIfExistsClause(); } $sql .= ' ' . $driver->quoteIdentifier($this->dbName); return $sql; }
public function toSql(BaseDriver $driver, ArgumentArray $args) { $sql = ''; // constrain symbol is optional but only supported by MySQL if ($this->symbol) { $sql .= 'CONSTRAINT ' . $driver->quoteIdentifier($this->symbol) . ' '; } $sql .= $this->buildKeyClause($driver, $args); return $sql; }
public function toSql(BaseDriver $driver, ArgumentArray $args) { $sql = 'CHANGE COLUMN '; if (is_string($this->fromColumn)) { $sql .= $driver->quoteIdentifier($this->fromColumn); } elseif ($this->fromColumn instanceof Column) { $sql .= $driver->quoteIdentifier($this->fromColumn->getName()); } // the 'toColumn' must be a type of Column, we need at least column type to rename. $sql .= ' ' . $driver->quoteIdentifier($this->toColumn->getName()) . ' ' . $this->toColumn->buildDefinitionSqlForModify($driver, $args); if ($driver instanceof MySQLDriver) { if ($this->after) { $sql .= ' AFTER ' . $driver->quoteIdentifier($this->after); } else { if ($this->first) { $sql .= ' FIRST'; } } } return $sql; }
public function toSql(BaseDriver $driver, ArgumentArray $args) { $sql = 'REFERENCES ' . $driver->quoteIdentifier($this->tableName); $sql .= ' (' . $this->columns->toSql($driver, $args) . ')'; if ($this->onUpdateAction) { $sql .= ' ON UPDATE ' . $this->onUpdateAction; } if ($this->onDeleteAction) { $sql .= ' ON DELETE ' . $this->onDeleteAction; } return $sql; }
/** Build reference track( FOREIGN KEY(trackartist) REFERENCES artist(artistid) artist_id INTEGER REFERENCES artist ) MySQL Syntax: reference_definition: REFERENCES tbl_name (index_col_name,...) [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE] [ON DELETE reference_option] [ON UPDATE reference_option] reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION A reference example: PRIMARY KEY (`idEmployee`) , CONSTRAINT `fkEmployee_Addresses` FOREIGN KEY `fkEmployee_Addresses` (`idAddresses`) REFERENCES `schema`.`Addresses` (`idAddresses`) ON DELETE NO ACTION ON UPDATE NO ACTION */ public function toSql(BaseDriver $driver, ArgumentArray $args) { $sql = "CREATE"; if ($this->temporary) { $sql .= " TEMPORARY"; } $sql .= " TABLE " . $driver->quoteIdentifier($this->tableName); $sql .= "("; $columnClauses = array(); foreach ($this->columns as $col) { $sql .= "\n" . $col->toSql($driver, $args) . ","; } if ($constraints = $this->getConstraints()) { foreach ($constraints as $constraint) { $sql .= "\n" . $constraint->toSql($driver, $args) . ","; } } $sql = rtrim($sql, ',') . "\n)"; if ($this->engine && $driver instanceof MySQLDriver) { $sql .= ' ENGINE=' . $this->engine; } return $sql; }
public function toSql(BaseDriver $driver, ArgumentArray $args) { return 'RENAME TO ' . $driver->quoteIdentifier($this->toTable); }
public function toSql(BaseDriver $driver, ArgumentArray $args) { $sql = 'ALTER TABLE ' . $driver->quoteIdentifier($this->table) . ' '; $alterSpecSqls = array(); foreach ($this->specs as $spec) { $alterSpecSqls[] = $spec->toSql($driver, $args); } $sql .= join(",\n ", $alterSpecSqls); return $sql; }
public function toSql(BaseDriver $driver, ArgumentArray $args) { return 'DROP FOREIGN KEY ' . $driver->quoteIdentifier($this->fkSymbol); }
protected function buildMySQLQuery(BaseDriver $driver, ArgumentArray $args) { $sql = 'CREATE'; if ($this->type) { // validate index type $sql .= ' ' . $this->type; } $sql .= ' INDEX'; $sql .= ' ' . $driver->quoteIdentifier($this->name) . ' ON ' . $driver->quoteIdentifier($this->tableName); if (!empty($this->columns)) { $sql .= ' (' . join(',', $this->columns) . ')'; } if ($this->method) { $sql .= ' USING ' . $this->method; } return $sql; }
public function buildDefinitionSql(BaseDriver $driver, ArgumentArray $args) { $isa = $this->isa ?: 'str'; $sql = ''; $sql .= $driver->quoteIdentifier($this->name); $sql .= $this->buildTypeClause($driver); $sql .= $this->buildUnsignedClause($driver); $sql .= $this->buildNullClause($driver); $sql .= $this->buildDefaultClause($driver); $sql .= $this->buildPrimaryKeyClause($driver); $sql .= $this->buildAutoIncrementClause($driver); $sql .= $this->buildUniqueClause($driver); if ($this->comment) { $sql .= ' COMMENT ' . $driver->deflate($this->comment); } return $sql; }
public function toSql(BaseDriver $driver, ArgumentArray $args) { return 'DROP INDEX ' . $driver->quoteIdentifier($this->indexName); }
public function getExplicitColumnSelect(BaseDriver $driver) { $alias = $this->getAlias(); return array_map(function ($name) use($alias, $driver) { return $alias . '.' . $driver->quoteIdentifier($name); }, $this->getSchema()->getColumnNames()); }
public function toSql(BaseDriver $driver, ArgumentArray $args) { $sql = 'DROP COLUMN '; $sql .= $driver->quoteIdentifier($this->column->name); return $sql; }
public function buildKeyClause(BaseDriver $driver, ArgumentArray $args) { $sql = $this->keyType; // MySQL supports custom index name and index type if ($driver instanceof MySQLDriver) { if ($this->indexName) { $sql .= ' ' . $driver->quoteIdentifier($this->indexName); } if ($this->indexType) { $sql .= ' USING ' . $this->indexType; } } $sql .= ' (' . $this->keyColumns->toSql($driver, $args) . ')'; if ($this->references) { $sql .= ' ' . $this->references->toSql($driver, $args); } return $sql; }
public function toSql(BaseDriver $driver, ArgumentArray $args) { $sql = 'CREATE DATABASE'; if ($this->ifNotExists && $driver instanceof MySQLDriver) { $sql .= ' IF NOT EXISTS'; } $sql .= ' ' . $driver->quoteIdentifier($this->dbName); if ($driver instanceof MySQLDriver) { if ($this->characterSet) { $sql .= ' CHARACTER SET ' . $driver->quote($this->characterSet); } if ($this->collate) { $sql .= ' COLLATE ' . $driver->quote($this->collate); } } elseif ($driver instanceof PgSQLDriver) { /** * PostgreSQL properties */ if ($this->owner) { $sql .= ' OWNER ' . $driver->quote($this->owner); } if ($this->template) { $sql .= ' TEMPLATE ' . $driver->quote($this->template); } if ($this->encoding) { $sql .= ' ENCODING ' . $driver->quote($this->encoding); } if ($this->collate) { $sql .= ' LC_COLLATE ' . $driver->quote($this->collate); } if ($this->ctype) { $sql .= ' LC_CTYPE ' . $driver->quote($this->ctype); } if ($this->tablespace) { $sql .= ' TABLESPACE ' . $driver->quote($this->tablespace); } if ($this->connectionLimit) { $sql .= ' CONNECTION LIMIT ' . $this->connectionLimit; } } return $sql; }
public function getIdentitySql(BaseDriver $driver, ArgumentArray $args) { return $driver->quoteIdentifier($this->getAccount()) . '@' . $driver->quoteIdentifier($this->getHost()); }