]> git.joonet.de Git - adminer.git/commitdiff
Notices: Declare properties in fetch_field()
authorJakub Vrana <jakub@vrana.cz>
Mon, 24 Mar 2025 08:49:42 +0000 (09:49 +0100)
committerJakub Vrana <jakub@vrana.cz>
Mon, 24 Mar 2025 11:18:24 +0000 (12:18 +0100)
12 files changed:
adminer/drivers/mssql.inc.php
adminer/drivers/mysql.inc.php
adminer/drivers/oracle.inc.php
adminer/drivers/pgsql.inc.php
adminer/drivers/sqlite.inc.php
adminer/include/editing.inc.php
adminer/include/pdo.inc.php
plugins/drivers/clickhouse.php
plugins/drivers/firebird.php
plugins/drivers/imap.php
plugins/drivers/mongo.php
plugins/drivers/simpledb.php

index 71035a0147a5d479d7487fb7473ae47f9d4e042a..2df08f791dd85ac6c4f0503d2d8fba39698b8fb5 100644 (file)
@@ -140,8 +140,8 @@ if (isset($_GET["mssql"])) {
                                $field = $this->fields[$this->offset++];
                                $return = new \stdClass;
                                $return->name = $field["Name"];
-                               $return->orgname = $field["Name"];
                                $return->type = ($field["Type"] == 1 ? 254 : 0);
+                               $return->charsetnr = 0;
                                return $return;
                        }
 
index a269a0a6d57eae2052115d96ad137608d90495e0..005d28f6f0b1ccf74ebc562ca739042b684a78c3 100644 (file)
@@ -219,12 +219,11 @@ if (!defined('Adminer\DRIVER')) {
                        }
 
                        /** Fetch next field
-                       * @return object properties: name, type, orgtable, orgname, charsetnr
+                       * @return object properties: name, type (9 for number, 254 for char), charsetnr (63 for binary); optionally: table, orgtable, orgname
                        */
                        function fetch_field() {
                                $return = mysql_fetch_field($this->result, $this->offset++); // offset required under certain conditions
                                $return->orgtable = $return->table;
-                               $return->orgname = $return->name;
                                $return->charsetnr = ($return->blob ? 63 : 0);
                                return $return;
                        }
index e8b95f60a33d72a2c978c7a830477d7cd4e6a679..587c51b2c793b9d770fd6888772bb1b4e0679175 100644 (file)
@@ -112,8 +112,7 @@ if (isset($_GET["oracle"])) {
                                $column = $this->offset++;
                                $return = new \stdClass;
                                $return->name = oci_field_name($this->result, $column);
-                               $return->orgname = $return->name;
-                               $return->type = oci_field_type($this->result, $column);
+                               $return->type = oci_field_type($this->result, $column); //! map to MySQL numbers
                                $return->charsetnr = (preg_match("~raw|blob|bfile~", $return->type) ? 63 : 0); // 63 - binary
                                return $return;
                        }
index cf86b8d7151c7ebb11929973081d5bc52ad994c4..d4712a2d5feee0d8af35fb32a5d8d7de736c1c9d 100644 (file)
@@ -133,12 +133,9 @@ if (isset($_GET["pgsql"])) {
                        function fetch_field() {
                                $column = $this->offset++;
                                $return = new \stdClass;
-                               if (function_exists('pg_field_table')) {
-                                       $return->orgtable = pg_field_table($this->result, $column);
-                               }
+                               $return->orgtable = pg_field_table($this->result, $column);
                                $return->name = pg_field_name($this->result, $column);
-                               $return->orgname = $return->name;
-                               $return->type = pg_field_type($this->result, $column);
+                               $return->type = pg_field_type($this->result, $column); //! map to MySQL numbers
                                $return->charsetnr = ($return->type == "bytea" ? 63 : 0); // 63 - binary
                                return $return;
                        }
index 63bed4036143713d36571de3b0339f39c383d5e7..f2f614ac6df291129c7f767df016b8f21e688bc0 100644 (file)
@@ -70,7 +70,7 @@ if (isset($_GET["sqlite"])) {
 
                        function fetch_field() {
                                $column = $this->offset++;
-                               $type = $this->result->columnType($column);
+                               $type = $this->result->columnType($column); //! map to MySQL numbers
                                return (object) array(
                                        "name" => $this->result->columnName($column),
                                        "type" => $type,
index f91765177ee3201a111905327f602577d5b8244f..e89a1f2750aa8fc4baf08102d34acfc034ee49c2 100644 (file)
@@ -25,12 +25,14 @@ function select($result, $connection2 = null, $orgtables = array(), $limit = 0)
                        for ($j=0; $j < count($row); $j++) {
                                $field = $result->fetch_field();
                                $name = $field->name;
-                               $orgtable = $field->orgtable;
-                               $orgname = $field->orgname;
-                               $return[$field->table] = $orgtable;
+                               $orgtable = (isset($field->orgtable) ? $field->orgtable : "");
+                               $orgname = (isset($field->orgname) ? $field->orgname : $name);
                                if ($orgtables && JUSH == "sql") { // MySQL EXPLAIN
                                        $links[$j] = ($name == "table" ? "table=" : ($name == "possible_keys" ? "indexes=" : null));
                                } elseif ($orgtable != "") {
+                                       if (isset($field->table)) {
+                                               $return[$field->table] = $orgtable;
+                                       }
                                        if (!isset($indexes[$orgtable])) {
                                                // find primary key in each table
                                                $indexes[$orgtable] = array();
index f6fa0a6fa5031470596f05a04e5117ae062d9fc8..3567727b5ce9b11a5d04377fe753b479a812b4b9 100644 (file)
@@ -93,8 +93,7 @@ if (extension_loaded('pdo')) {
 
                function fetch_field() {
                        $row = (object) $this->getColumnMeta($this->_offset++);
-                       $row->orgtable = $row->table;
-                       $row->orgname = $row->name;
+                       $row->type = $row->pdo_type; //! map to MySQL numbers
                        $row->charsetnr = (in_array("blob", (array) $row->flags) ? 63 : 0);
                        return $row;
                }
index f0a925799e918dafca95a5b5b47a42022d8bba66..81eadd9e7745587d6bdbb07c84a6161c2dea9cc6 100644 (file)
@@ -125,8 +125,8 @@ if (isset($_GET["clickhouse"])) {
                                $return = new \stdClass;
                                if ($column < count($this->columns)) {
                                        $return->name = $this->meta[$column]['name'];
-                                       $return->orgname = $return->name;
-                                       $return->type = $this->meta[$column]['type'];
+                                       $return->type = $this->meta[$column]['type']; //! map to MySQL numbers
+                                       $return->charsetnr = 0;
                                }
                                return $return;
                        }
index 3720930bdab0834446862d8afcb2aa5f6bd11e70..03c06889080e32d7db543e95aa5ca72b04172630 100644 (file)
@@ -102,9 +102,8 @@ if (isset($_GET["firebird"])) {
                                $field = ibase_field_info($this->result, $this->offset++);
                                return (object) array(
                                        'name' => $field['name'],
-                                       'orgname' => $field['name'],
-                                       'type' => $field['type'],
-                                       'charsetnr' => $field['length'],
+                                       'type' => $field['type'], //! map to MySQL numbers
+                                       'charsetnr' => 0,
                                );
                        }
 
index 16d7bf6731820ea60c0e3a831bc725f76c0191c4..e680598a24fcde9e35719bee139df3f3046e13da 100644 (file)
@@ -139,7 +139,7 @@ if (isset($_GET["imap"])) {
                        function fetch_field() {
                                $field = current($this->fields);
                                next($this->fields);
-                               return ($field != '' ? (object) array('name' => $field) : false);
+                               return ($field != '' ? (object) array('name' => $field, 'type' => 0, 'charsetnr' => 0) : false);
                        }
                }
        }
index 603130ab172aebe2b7c49eab245e1502d70955b7..62586071be6a9eaffa32c7959b90f3abb3cd59fd 100644 (file)
@@ -112,6 +112,7 @@ if (isset($_GET["mongo"])) {
                                $name = $keys[$this->offset++];
                                return (object) array(
                                        'name' => $name,
+                                       'type' => 0,
                                        'charsetnr' => $this->charset[$name],
                                );
                        }
index 8d9c67b2eb96eed23e67e0185beb34472fbf1ca3..73918268d1c5d7bde92b18e41c0a42907984f22b 100644 (file)
@@ -112,7 +112,7 @@ if (isset($_GET["simpledb"])) {
 
                        function fetch_field() {
                                $keys = array_keys($this->rows[0]);
-                               return (object) array('name' => $keys[$this->offset++]);
+                               return (object) array('name' => $keys[$this->offset++], 'type' => 0, 'charsetnr' => 0);
                        }
                }
        }