El RIDO 7 лет назад
Родитель
Сommit
bbdcb3fb0f
1 измененных файлов с 30 добавлено и 7 удалено
  1. 30 7
      lib/Data/Database.php

+ 30 - 7
lib/Data/Database.php

@@ -543,7 +543,7 @@ class Database extends AbstractData
      *
      * @access private
      * @static
-     * @param string $key
+     * @param  string $key
      * @return array
      */
     private static function _getPrimaryKeyClauses($key = 'dataid')
@@ -557,6 +557,30 @@ class Database extends AbstractData
         return array($main_key, $after_key);
     }
 
+    /**
+     * get the data type, depending on the database driver
+     *
+     * @access private
+     * @static
+     * @return string
+     */
+    private static function _getDataType()
+    {
+        return self::$_type === 'pgsql' ? 'TEXT' : 'BLOB';
+    }
+
+    /**
+     * get the attachment type, depending on the database driver
+     *
+     * @access private
+     * @static
+     * @return string
+     */
+    private static function _getAttachmentType()
+    {
+        return self::$_type === 'pgsql' ? 'TEXT' : 'MEDIUMBLOB';
+    }
+
     /**
      * create the paste table
      *
@@ -566,7 +590,7 @@ class Database extends AbstractData
     private static function _createPasteTable()
     {
         list($main_key, $after_key) = self::_getPrimaryKeyClauses();
-        $dataType                   = self::$_type === 'pgsql' ? 'TEXT' : 'BLOB';
+        $dataType                   = self::_getDataType();
         self::$_db->exec(
             'CREATE TABLE ' . self::_sanitizeIdentifier('paste') . ' ( ' .
             "dataid CHAR(16) NOT NULL$main_key, " .
@@ -576,7 +600,7 @@ class Database extends AbstractData
             'opendiscussion INT, ' .
             'burnafterreading INT, ' .
             'meta TEXT, ' .
-            'attachment ' . (self::$_type === 'pgsql' ? 'TEXT' : 'MEDIUMBLOB') . ', ' .
+            'attachment ' . self::_getAttachmentType() . ', ' .
             "attachmentname $dataType$after_key );"
         );
     }
@@ -590,7 +614,7 @@ class Database extends AbstractData
     private static function _createCommentTable()
     {
         list($main_key, $after_key) = self::_getPrimaryKeyClauses();
-        $dataType                   = self::$_type === 'pgsql' ? 'text' : 'BLOB';
+        $dataType                   = self::_getDataType();
         self::$_db->exec(
             'CREATE TABLE ' . self::_sanitizeIdentifier('comment') . ' ( ' .
             "dataid CHAR(16) NOT NULL$main_key, " .
@@ -649,7 +673,7 @@ class Database extends AbstractData
      */
     private static function _upgradeDatabase($oldversion)
     {
-        $dataType = self::$_type === 'pgsql' ? 'TEXT' : 'BLOB';
+        $dataType = self::_getDataType();
         switch ($oldversion) {
             case '0.21':
                 // create the meta column if necessary (pre 0.21 change)
@@ -661,8 +685,7 @@ class Database extends AbstractData
                 // SQLite only allows one ALTER statement at a time...
                 self::$_db->exec(
                     'ALTER TABLE ' . self::_sanitizeIdentifier('paste') .
-                    ' ADD COLUMN attachment ' .
-                    (self::$_type === 'pgsql' ? 'TEXT' : 'MEDIUMBLOB') . ';'
+                    ' ADD COLUMN attachment ' . self::_getAttachmentType() . ';'
                 );
                 self::$_db->exec(
                     'ALTER TABLE ' . self::_sanitizeIdentifier('paste') . " ADD COLUMN attachmentname $dataType;"