diff --git a/src/Controllers/Table/ReplaceController.php b/src/Controllers/Table/ReplaceController.php index 59cbfc9e32..fad1c80af4 100644 --- a/src/Controllers/Table/ReplaceController.php +++ b/src/Controllers/Table/ReplaceController.php @@ -104,6 +104,7 @@ final class ReplaceController implements InvocableController $valueSets = []; $mimeMap = $this->transformations->getMime(Current::$database, Current::$table) ?? []; + $columnsDefaultValues = $this->insertEdit->getColumnDefaultValues(Current::$database, Current::$table); $queryFields = []; $insertErrors = []; @@ -211,7 +212,12 @@ final class ReplaceController implements InvocableController if (! isset($multiEditVirtual[$key])) { if ($isInsert) { - $queryPart = $this->insertEdit->getQueryValueForInsert($editField, $usingKey, $whereClause); + if ($editField->value === $columnsDefaultValues[$columnName]) { + $queryPart = $editField->value; + } else { + $queryPart = $this->insertEdit->getQueryValueForInsert($editField, $usingKey, $whereClause); + } + if ($queryPart !== '' && $valueSets === []) { // first inserted row so prepare the list of fields $queryFields[] = Util::backquote($editField->columnName); diff --git a/src/InsertEdit.php b/src/InsertEdit.php index 2521186029..d1c69836d5 100644 --- a/src/InsertEdit.php +++ b/src/InsertEdit.php @@ -1131,6 +1131,8 @@ class InsertEdit /** * Get value part if a function was specified + * + * @psalm-return non-empty-string */ private function formatAsSqlFunction( EditField $editField, @@ -1931,6 +1933,16 @@ class InsertEdit . '
'; } + /** @return array