]> git.joonet.de Git - adminer.git/commitdiff
PostgreSQL bool in Editor
authorJakub Vrana <jakub@vrana.cz>
Thu, 24 Mar 2011 10:37:05 +0000 (11:37 +0100)
committerJakub Vrana <jakub@vrana.cz>
Thu, 24 Mar 2011 10:37:05 +0000 (11:37 +0100)
editor/include/adminer.inc.php
editor/include/editing.inc.php
todo.txt

index 0ac51da59fb01c743225367a100aa1ca398dbca8..471372558b293c95cb024c33aefd2e53ecf22a02 100644 (file)
@@ -170,13 +170,13 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5
                                $return = "<img src='$link' alt='$return'>";
                        }
                }
-               if (ereg("(tinyint|bit)\\(1\\)", $field["full_type"]) && $return != "&nbsp;") { // bool
+               if (like_bool($field) && $return != "&nbsp;") { // bool
                        $return = '<img src="' . ($val ? "../adminer/static/plus.gif" : "../adminer/static/cross.gif") . '" alt="' . h($val) . '">';
                }
                if ($link) {
                        $return = "<a href='$link'>$return</a>";
                }
-               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 = "<div class='number'>$return</div>"; // Firefox doesn't support <colgroup>
                } elseif (ereg('date', $field["type"])) {
                        $return = "<div class='datetime'>$return</div>";
@@ -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 "<select$attrs>" . optionlist($options, $value, true) . "</select>";
                }
-               if (ereg("(tinyint|bit)\\(1\\)", $field["full_type"])) { // bool
+               if (like_bool($field)) {
                        return '<input type="checkbox" value="' . h($value ? $value : 1) . '"' . ($value ? ' checked' : '') . "$attrs>";
                }
                $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)";
index 59c811b89c3fea58352d49daa1ec41f336b067e5..5699ed844a86d79e48ceabce26698e32e93d67b3 100644 (file)
@@ -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"]);
+}
index 37614a4c3093f776bc354a1a1d7749fd79ec2b7c..bcefcdac62b965346568ec4ea1d85abaafdf7763 100644 (file)
--- 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