From 145a8c62ffc372613e5351ebb84d4109d3afb3e3 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Thu, 8 Aug 2013 19:20:27 -0700 Subject: [PATCH] SQLite: Fix primary key handling --- adminer/drivers/sqlite.inc.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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) {