diff --git a/htdocs/sql/libraries/List.class.php b/htdocs/sql/libraries/List.class.php
new file mode 100755
--- /dev/null
+++ b/htdocs/sql/libraries/List.class.php
@@ -0,0 +1,161 @@
+items);
+ }
+
+ /**
+ * returns item only if there is only one in the list
+ *
+ * @uses PMA_List::count() to decide what to return
+ * @uses PMA_List::getFirst() to return it
+ * @uses PMA_List::getEmpty() to return it
+ * @return single item
+ */
+ function getSingleItem()
+ {
+ if ($this->count() === 1) {
+ return $this->getFirst();
+ }
+
+ return $this->getEmpty();
+ }
+
+ /**
+ * returns list item count
+ *
+ * @uses PMA_List::$items to count it items
+ * @uses count() to count items in PMA_List::$items
+ * @return integer PMA_List::$items count
+ */
+ function count()
+ {
+ return count($this->items);
+ }
+
+ /**
+ * defines what is an empty item (0, '', false or null)
+ *
+ * @uses PMA_List::$item_empty as return value
+ * @return mixed an empty item
+ */
+ function getEmpty()
+ {
+ return $this->item_empty;
+ }
+
+ /**
+ * checks if the given db names exists in the current list, if there is
+ * missing at least one item it reutrns false other wise true
+ *
+ * @uses PMA_List::$items to check for existence of specific item
+ * @uses func_get_args()
+ * @uses in_array() to check if given arguments exists in PMA_List::$items
+ * @param string $db_name,.. one or more mysql result resources
+ * @return boolean true if all items exists, otheriwse false
+ */
+ function exists()
+ {
+ foreach (func_get_args() as $result) {
+ if (! in_array($result, $this->items)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * returns HTML