rdbms: Remove weird use of serialize() in MssqlBlob and DatabaseMssql
authorBrad Jorsch <bjorsch@wikimedia.org>
Mon, 8 Apr 2019 15:15:54 +0000 (11:15 -0400)
committerBrad Jorsch <bjorsch@wikimedia.org>
Mon, 8 Apr 2019 15:15:54 +0000 (11:15 -0400)
The use in MssqlBlob could never be reached, since the test used `&&`
rather than `||`.

The use in DatabaseMssql should never be reached, and all our other
Database subclasses will give PHP warnings or errors when it tries to
stringify an array or object rather than silently serializing. MSSQL
should be consistent there. Further, MSSQL never *un*serializes, so it
seems rather useless anyway.

Change-Id: I7b193c6be28662edb38d416ac02371f7a293ab56

includes/libs/rdbms/database/DatabaseMssql.php
includes/libs/rdbms/encasing/MssqlBlob.php

index 2aefd5f..6d266ae 100644 (file)
@@ -702,12 +702,6 @@ class DatabaseMssql extends Database {
                                }
                                if ( is_null( $value ) ) {
                                        $sql .= 'null';
-                               } elseif ( is_array( $value ) || is_object( $value ) ) {
-                                       if ( is_object( $value ) && $value instanceof Blob ) {
-                                               $sql .= $this->addQuotes( $value );
-                                       } else {
-                                               $sql .= $this->addQuotes( serialize( $value ) );
-                                       }
                                } else {
                                        $sql .= $this->addQuotes( $value );
                                }
index 97d5072..1819a9a 100644 (file)
@@ -6,15 +6,13 @@ class MssqlBlob extends Blob {
        /** @noinspection PhpMissingParentConstructorInspection */
 
        /**
-        * @param Blob|array|string $data
+        * @param Blob|string $data
         */
        public function __construct( $data ) {
                if ( $data instanceof MssqlBlob ) {
                        $this->data = $data->data;
                } elseif ( $data instanceof Blob ) {
                        $this->data = $data->fetch();
-               } elseif ( is_array( $data ) && is_object( $data ) ) {
-                       $this->data = serialize( $data );
                } else {
                        $this->data = $data;
                }