Issue #2990118 by amateescu: Optimize 'initial' and 'initial_from_field' handling in MySQL and PostgreSQL
parent
27bc1f74cb
commit
bc328489db
|
@ -438,11 +438,6 @@ class Schema extends DatabaseSchema {
|
||||||
$query .= ', ADD ' . implode(', ADD ', $keys_sql);
|
$query .= ', ADD ' . implode(', ADD ', $keys_sql);
|
||||||
}
|
}
|
||||||
$this->connection->query($query);
|
$this->connection->query($query);
|
||||||
if (isset($spec['initial'])) {
|
|
||||||
$this->connection->update($table)
|
|
||||||
->fields([$field => $spec['initial']])
|
|
||||||
->execute();
|
|
||||||
}
|
|
||||||
if (isset($spec['initial_from_field'])) {
|
if (isset($spec['initial_from_field'])) {
|
||||||
if (isset($spec['initial'])) {
|
if (isset($spec['initial'])) {
|
||||||
$expression = 'COALESCE(' . $spec['initial_from_field'] . ', :default_initial_value)';
|
$expression = 'COALESCE(' . $spec['initial_from_field'] . ', :default_initial_value)';
|
||||||
|
@ -456,6 +451,11 @@ class Schema extends DatabaseSchema {
|
||||||
->expression($field, $expression, $arguments)
|
->expression($field, $expression, $arguments)
|
||||||
->execute();
|
->execute();
|
||||||
}
|
}
|
||||||
|
elseif (isset($spec['initial'])) {
|
||||||
|
$this->connection->update($table)
|
||||||
|
->fields([$field => $spec['initial']])
|
||||||
|
->execute();
|
||||||
|
}
|
||||||
if ($fixnull) {
|
if ($fixnull) {
|
||||||
$spec['not null'] = TRUE;
|
$spec['not null'] = TRUE;
|
||||||
$this->changeField($table, $field, $field, $spec);
|
$this->changeField($table, $field, $field, $spec);
|
||||||
|
|
|
@ -565,11 +565,6 @@ EOD;
|
||||||
$query = 'ALTER TABLE {' . $table . '} ADD COLUMN ';
|
$query = 'ALTER TABLE {' . $table . '} ADD COLUMN ';
|
||||||
$query .= $this->createFieldSql($field, $this->processField($spec));
|
$query .= $this->createFieldSql($field, $this->processField($spec));
|
||||||
$this->connection->query($query);
|
$this->connection->query($query);
|
||||||
if (isset($spec['initial'])) {
|
|
||||||
$this->connection->update($table)
|
|
||||||
->fields([$field => $spec['initial']])
|
|
||||||
->execute();
|
|
||||||
}
|
|
||||||
if (isset($spec['initial_from_field'])) {
|
if (isset($spec['initial_from_field'])) {
|
||||||
if (isset($spec['initial'])) {
|
if (isset($spec['initial'])) {
|
||||||
$expression = 'COALESCE(' . $spec['initial_from_field'] . ', :default_initial_value)';
|
$expression = 'COALESCE(' . $spec['initial_from_field'] . ', :default_initial_value)';
|
||||||
|
@ -583,6 +578,11 @@ EOD;
|
||||||
->expression($field, $expression, $arguments)
|
->expression($field, $expression, $arguments)
|
||||||
->execute();
|
->execute();
|
||||||
}
|
}
|
||||||
|
elseif (isset($spec['initial'])) {
|
||||||
|
$this->connection->update($table)
|
||||||
|
->fields([$field => $spec['initial']])
|
||||||
|
->execute();
|
||||||
|
}
|
||||||
if ($fixnull) {
|
if ($fixnull) {
|
||||||
$this->connection->query("ALTER TABLE {" . $table . "} ALTER $field SET NOT NULL");
|
$this->connection->query("ALTER TABLE {" . $table . "} ALTER $field SET NOT NULL");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue