From 50e01cc20b1439ed832a67ac48803ed21ee81b68 Mon Sep 17 00:00:00 2001 From: Dominique Fournier Date: Fri, 19 May 2017 14:22:37 +0000 Subject: [PATCH] dblayeroo: autoincrement fields must be primary too git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@3706 bf3deb0d-5f1a-0410-827f-c0cc1f45334c --- dblayeroo.php | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/dblayeroo.php b/dblayeroo.php index ace21b4..1c32a60 100644 --- a/dblayeroo.php +++ b/dblayeroo.php @@ -352,7 +352,14 @@ class dblayeroo switch ($p) { case "not null": $sql .= " NOT NULL"; break; - case "autoincrement": $sql .= " AUTOINCREMENT";break; + case "autoincrement": + if ($this->primary !== $field) + throw new \Exception (sprintf ( + dgettext("domframework", + "Field '%s' is autoincrement but not primary"), + $field), 500); + $sql .= " AUTOINCREMENT"; + break; default: throw new Exception (sprintf (dgettext("domframework", "Unknown additionnal parameter '%s' for field '%s'"), @@ -439,7 +446,14 @@ class dblayeroo switch ($p) { case "not null": $sql .= " NOT NULL"; break; - case "autoincrement": $sql .= " AUTO_INCREMENT";break; + case "autoincrement": + if ($this->primary !== $field) + throw new \Exception (sprintf ( + dgettext("domframework", + "Field '%s' is autoincrement but not primary"), + $field), 500); + $sql .= " AUTO_INCREMENT"; + break; default: throw new Exception (sprintf ( dgettext("domframework", @@ -488,7 +502,14 @@ class dblayeroo // Name of field $sql .= "\"$field\" "; if (in_array ("autoincrement", $params)) + { + if ($this->primary !== $field) + throw new \Exception (sprintf ( + dgettext("domframework", + "Field '%s' is autoincrement but not primary"), + $field), 500); $sql .= "SERIAL"; + } else { switch ($this->fieldTypeLight ($field))