From: Jakub Vrana Date: Fri, 9 Aug 2013 02:20:27 +0000 (-0700) Subject: SQLite: Fix primary key handling X-Git-Tag: v4.0.0~62 X-Git-Url: https://git.joonet.de/?a=commitdiff_plain;h=145a8c62ffc372613e5351ebb84d4109d3afb3e3;p=adminer.git SQLite: Fix primary key handling --- diff --git a/adminer/drivers/sqlite.inc.php b/adminer/drivers/sqlite.inc.php index 7fce6e34..dbfc14c7 100644 --- a/adminer/drivers/sqlite.inc.php +++ b/adminer/drivers/sqlite.inc.php @@ -336,7 +336,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) { if (!$return) { foreach (fields($table) as $name => $field) { if ($field["primary"]) { - $return[""] = array("type" => "PRIMARY", "columns" => array($name), "lengths" => array(), "descs" => array()); + $return[""] = array("type" => "PRIMARY", "columns" => array($name), "lengths" => array(), "descs" => array(null)); } } } @@ -509,13 +509,17 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) { } $columns = "(" . implode(", ", $columns) . ")"; if (!$drop_indexes[$key_name]) { - if ($index["type"] != "PRIMARY") { + if ($index["type"] != "PRIMARY" || !$primary_key) { $indexes[] = array($index["type"], $key_name, $columns); - } elseif (!$primary_key) { - $foreign[] = " PRIMARY KEY $columns"; } } } + foreach ($indexes as $key => $val) { + if ($val[0] == "PRIMARY") { + unset($indexes[$key]); + $foreign[] = " PRIMARY KEY $val[2]"; + } + } foreach (foreign_keys($table) as $foreign_key) { $columns = array(); foreach ($foreign_key["source"] as $column) {