Physikerwelt has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/134591

Change subject: WIP: Fix: numFields wrong for sqlite
......................................................................

WIP: Fix: numFields wrong for sqlite

* Sqlite returned a doubled number of fields.

Bug: 65578
Change-Id: I399c7c857dcbd774cc4eb6102bbfe8a8764b07c9
---
M includes/db/DatabaseSqlite.php
M tests/phpunit/includes/db/DatabaseSqliteTest.php
2 files changed, 17 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/91/134591/1

diff --git a/includes/db/DatabaseSqlite.php b/includes/db/DatabaseSqlite.php
index 468ed6d..39a74f8 100644
--- a/includes/db/DatabaseSqlite.php
+++ b/includes/db/DatabaseSqlite.php
@@ -342,8 +342,8 @@
         */
        function numFields( $res ) {
                $r = $res instanceof ResultWrapper ? $res->result : $res;
-
-               return is_array( $r ) ? count( $r[0] ) : 0;
+               // The size of the result array is twice the number of fields. 
(Bug: 65578)
+               return is_array( $r ) ? count( $r[0] ) / 2  : 0;
        }
 
        /**
diff --git a/tests/phpunit/includes/db/DatabaseSqliteTest.php 
b/tests/phpunit/includes/db/DatabaseSqliteTest.php
index b4c1953..29b6a4e 100644
--- a/tests/phpunit/includes/db/DatabaseSqliteTest.php
+++ b/tests/phpunit/includes/db/DatabaseSqliteTest.php
@@ -431,4 +431,19 @@
                $row = $res->fetchRow();
                $this->assertFalse( (bool)$row['a'] );
        }
+
+       /**
+        * @covers DatabaseSqlite::numFields
+        */
+       public function testNumFields() {
+               $db = new DatabaseSqliteStandalone( ':memory:' );
+
+               $databaseCreation = $db->query( 'CREATE TABLE a ( a_1 )', 
__METHOD__ );
+               $this->assertInstanceOf( 'ResultWrapper', $databaseCreation, 
"Failed to create table a" );
+
+               $res = $db->select( 'a' , '*');
+               $this->assertEquals( 1,  $db->numFields($res), "wrong number of 
fields" );
+
+               $this->assertTrue( $db->close(), "closing database" );
+       }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/134591
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I399c7c857dcbd774cc4eb6102bbfe8a8764b07c9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Physikerwelt <w...@physikerwelt.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to