Fix UpdateField with PostgreSQL

This commit is contained in:
Florent Poinsaut 2023-03-21 12:03:57 +01:00 committed by GitHub
parent 3821f5c27c
commit fc63599d52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1183,7 +1183,7 @@ class DoliDBPgsql extends DoliDB
$sql = "ALTER TABLE ".$table." ADD ".$field_name." "; $sql = "ALTER TABLE ".$table." ADD ".$field_name." ";
$sql .= $field_desc['type']; $sql .= $field_desc['type'];
if (preg_match("/^[^\s]/i", $field_desc['value'])) { if (preg_match("/^[^\s]/i", $field_desc['value'])) {
if (!in_array($field_desc['type'], array('int', 'date', 'datetime')) && $field_desc['value']) { if (!in_array($field_desc['type'], array('smallint', 'int', 'date', 'datetime')) && $field_desc['value']) {
$sql .= "(".$field_desc['value'].")"; $sql .= "(".$field_desc['value'].")";
} }
} }
@ -1225,9 +1225,11 @@ class DoliDBPgsql extends DoliDB
{ {
// phpcs:enable // phpcs:enable
$sql = "ALTER TABLE ".$table; $sql = "ALTER TABLE ".$table;
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type']; $sql .= ' ALTER COLUMN "'.$field_name.'" TYPE '.$field_desc['type'];
if (in_array($field_desc['type'], array('double', 'varchar')) && $field_desc['value']) { if (preg_match("/^[^\s]/i", $field_desc['value'])) {
$sql .= "(".$field_desc['value'].")"; if (!in_array($field_desc['type'], array('smallint', 'int', 'date', 'datetime')) && $field_desc['value']) {
$sql .= "(".$field_desc['value'].")";
}
} }
if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL') { if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL') {