diff --git a/editor/include/adminer.inc.php b/editor/include/adminer.inc.php index 0ac51da5..47137255 100644 --- a/editor/include/adminer.inc.php +++ b/editor/include/adminer.inc.php @@ -170,13 +170,13 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5 $return = "$return"; } } - if (ereg("(tinyint|bit)\\(1\\)", $field["full_type"]) && $return != " ") { // bool + if (like_bool($field) && $return != " ") { // bool $return = '' . h($val) . ''; } if ($link) { $return = "$return"; } - if (!$link && !ereg("(tinyint|bit)\\(1\\)", $field["full_type"]) && ereg('int|float|double|decimal', $field["type"])) { + if (!$link && !like_bool($field) && ereg('int|float|double|decimal', $field["type"])) { $return = "
$return
"; // Firefox doesn't support } elseif (ereg('date', $field["type"])) { $return = "
$return
"; @@ -411,7 +411,7 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5 if ($field["null"] && ereg('blob', $field["type"])) { $return["NULL"] = lang('empty'); } - $return[""] = ($field["null"] || $field["auto_increment"] || ereg("(tinyint|bit)\\(1\\)", $field["full_type"]) ? "" : "*"); + $return[""] = ($field["null"] || $field["auto_increment"] || like_bool($field) ? "" : "*"); //! respect driver if (ereg('date|time', $field["type"])) { $return["now"] = lang('now'); @@ -432,7 +432,7 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5 if ($options) { return "" . optionlist($options, $value, true) . ""; } - if (ereg("(tinyint|bit)\\(1\\)", $field["full_type"])) { // bool + if (like_bool($field)) { return '"; } $hint = ""; @@ -460,7 +460,7 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5 $return = ($match["p1"] != "" ? $match["p1"] : ($match["p2"] != "" ? ($match["p2"] < 70 ? 20 : 19) . $match["p2"] : gmdate("Y"))) . "-$match[p3]$match[p4]-$match[p5]$match[p6]" . end($match); } $return = ($field["type"] == "bit" && ereg('^[0-9]+$', $value) ? $return : q($return)); - if (!ereg('char|text', $field["type"]) && !ereg("(tinyint|bit)\\(1\\)", $field["full_type"]) && $value == "") { + if (!ereg('char|text', $field["type"]) && !like_bool($field) && $value == "") { $return = "NULL"; } elseif (ereg('^(md5|sha1)$', $function)) { $return = "$function($return)"; diff --git a/editor/include/editing.inc.php b/editor/include/editing.inc.php index 59c811b8..5699ed84 100644 --- a/editor/include/editing.inc.php +++ b/editor/include/editing.inc.php @@ -43,3 +43,11 @@ function send_mail($email, $subject, $message, $from = "", $files = array("error ; return mail($email, email_header($subject), $beginning . $message . $attachments, $headers); } + +/** Check whether the column looks like boolean +* @param array single field returned from fields() +* @return bool +*/ +function like_bool($field) { + return ereg("bool|(tinyint|bit)\\(1\\)", $field["full_type"]); +} diff --git a/todo.txt b/todo.txt index 37614a4c..bcefcdac 100644 --- a/todo.txt +++ b/todo.txt @@ -38,7 +38,6 @@ Users - SELECT * FROM pg_user ORDER BY COUNT(*) Export - http://www.postgresql.org/docs/8.4/static/functions-info.html Column rights - http://www.postgresql.org/docs/8.4/static/functions-info.html -bool in Editor MS SQL: Display default value