]> git.joonet.de Git - adminer.git/commitdiff
Shorten varchar fields
authorJakub Vrana <jakub@vrana.cz>
Sat, 22 Sep 2012 14:34:51 +0000 (07:34 -0700)
committerJakub Vrana <jakub@vrana.cz>
Sat, 22 Sep 2012 14:34:51 +0000 (07:34 -0700)
adminer/include/functions.inc.php
adminer/select.inc.php
changes.txt

index e672209ae6f696313f0ca2a9416e0deb7850847f..b164f8a195e8e1f734977f2e3fde1c9871683956 100644 (file)
@@ -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
index 28ed2d01f490bde996ee391d1a0a3fbb73a347cb..0bc8195337c75bb8778f4a0f141520a5d92ac23a 100644 (file)
@@ -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 = "&nbsp;";
                                                        } 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);
index 221fd558d72bc67df2e1fef4fdb095d07ad47174..ddadb196d8f9d6adec3b0ab2105a1832bb41f63e 100644 (file)
@@ -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):