--- a/adminer/drivers/pgsql.inc.php
+++ b/adminer/drivers/pgsql.inc.php
@@ -271,12 +271,11 @@
 ORDER BY a.attnum"
 		) as $row) {
 			//! collation, primary
-			$type = $row["full_type"];
-			if (preg_match('~(.+)\\((.*)\\)$~', $row["full_type"], $match)) {
-				list(, $type, $row["length"]) = $match;
-			}
+			preg_match('~([^([]+)(\((.*)\))?((\[[0-9]*])*)$~', $row["full_type"], $match);
+			list(, $type, $length, $row["length"], $array) = $match;
+			$row["length"] .= $array;
 			$row["type"] = ($aliases[$type] ? $aliases[$type] : $type);
-			$row["full_type"] = $row["type"] . ($row["length"] ? "($row[length])" : "");
+			$row["full_type"] = $row["type"] . $length . $array;
 			$row["null"] = !$row["attnotnull"];
 			$row["auto_increment"] = preg_match('~^nextval\\(~i', $row["default"]);
 			$row["privileges"] = array("insert" => 1, "select" => 1, "update" => 1);