diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php index e672209a..b164f8a1 100644 --- a/adminer/include/functions.inc.php +++ b/adminer/include/functions.inc.php @@ -902,6 +902,14 @@ function is_url($string) { return (preg_match("~^(https?)://($domain?\\.)+$domain(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i", $string, $match) ? strtolower($match[1]) : ""); //! restrict path, query and fragment characters } +/** Check if field should be shortened +* @param array +* @return bool +*/ +function is_shortable($field) { + return ereg('char|text|lob|geometry|point|linestring|polygon', $field["type"]); +} + /** Run query which can be killed by AJAX call after timing out * @param string * @return Min_Result diff --git a/adminer/select.inc.php b/adminer/select.inc.php index 28ed2d01..0bc81953 100644 --- a/adminer/select.inc.php +++ b/adminer/select.inc.php @@ -18,7 +18,7 @@ foreach ($fields as $key => $field) { $name = $adminer->fieldName($field); if (isset($field["privileges"]["select"]) && $name != "") { $columns[$key] = html_entity_decode(strip_tags($name)); - if (ereg('text|lob|geometry|point|linestring|polygon', $field["type"])) { + if (is_shortable($field)) { $text_length = $adminer->selectLengthProcess(); } } @@ -350,7 +350,7 @@ if (!$columns) { if ($val === "") { // === - may be int $val = " "; } elseif (is_utf8($val)) { - if ($text_length != "" && ereg('text|lob|geometry|point|linestring|polygon', $field["type"])) { + if ($text_length != "" && is_shortable($field)) { $val = shorten_utf8($val, max(0, +$text_length)); // usage of LEFT() would reduce traffic but complicate query - expected average speedup: .001 s VS .01 s on local network } else { $val = h($val); diff --git a/changes.txt b/changes.txt index 221fd558..ddadb196 100644 --- a/changes.txt +++ b/changes.txt @@ -1,4 +1,5 @@ Adminer 3.6.2-dev: +Shorten varchar fields Fix switching language on first load Adminer 3.6.1 (released 2012-09-17):