Shorten varchar fields

This commit is contained in:
Jakub Vrana 2012-09-22 07:34:51 -07:00
parent 996bfc396b
commit b684569f7c
3 changed files with 11 additions and 2 deletions

View 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

View 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 = " ";
} 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);

View 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):