*Add new oldimage columns for mime/mediatype info and oi_deleted field. Make rebuild...
authorAaron Schulz <aaron@users.mediawiki.org>
Mon, 7 May 2007 14:44:33 +0000 (14:44 +0000)
committerAaron Schulz <aaron@users.mediawiki.org>
Mon, 7 May 2007 14:44:33 +0000 (14:44 +0000)
maintenance/archives/patch-oi_metadata.sql [new file with mode: 0644]
maintenance/rebuildImages.php
maintenance/tables.sql
maintenance/updaters.inc

diff --git a/maintenance/archives/patch-oi_metadata.sql b/maintenance/archives/patch-oi_metadata.sql
new file mode 100644 (file)
index 0000000..a055d67
--- /dev/null
@@ -0,0 +1,15 @@
+-- \r
+-- patch-indexes.sql\r
+-- \r
+-- Add data to allow for direct reference to old images\r
+-- They can be included into pages\r
+-- \r
+\r
+ALTER TABLE /*$wgDBprefix*/oldimage\r
+   DROP INDEX oi_name,\r
+   ADD INDEX oi_name_timestamp (oi_name,oi_timestamp),\r
+   ADD oi_metadata mediumblob NOT NULL,\r
+   ADD oi_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,\r
+   ADD oi_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",\r
+   ADD oi_minor_mime varchar(32) NOT NULL default "unknown",\r
+   ADD oi_deleted tinyint(1) unsigned NOT NULL default '0',
\ No newline at end of file
index 4c02dc9..14a9578 100644 (file)
@@ -144,7 +144,7 @@ class ImageBuilder extends FiveUpgrade {
        }
 
        function oldimageCallback( $row ) {
-               if( $row->oi_width ) {
+               if( $row->oi_width && $row->oi_media_type ) {
                        return null;
                }
 
@@ -153,7 +153,11 @@ class ImageBuilder extends FiveUpgrade {
                return array(
                        'oi_width'  => $info['width' ],
                        'oi_height' => $info['height'],
-                       'oi_bits'   => $info['bits'  ] );
+                       'oi_bits'   => $info['bits'  ],
+                       'oi_metadata' => '', // filled in on-demand
+                       'oi_media_type' => $info['media'],
+                       'oi_major_mime' => $info['major'],
+                       'oi_minor_mime' => $info['minor'] );
        }
 
        function crawlMissing() {
index 5d8b548..80a4629 100644 (file)
@@ -715,6 +715,21 @@ CREATE TABLE /*$wgDBprefix*/oldimage (
   oi_user int(5) unsigned NOT NULL default '0',
   oi_user_text varchar(255) binary NOT NULL,
   oi_timestamp char(14) binary NOT NULL default '',
+  
+  -- Extracted EXIF metadata stored as a serialized PHP array.
+  oi_metadata mediumblob NOT NULL,
+  -- Media type as defined by the MEDIATYPE_xxx constants
+  oi_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
+  -- major part of a MIME media type as defined by IANA
+  -- see http://www.iana.org/assignments/media-types/
+  oi_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",
+  -- minor part of a MIME media type as defined by IANA
+  -- the minor parts are not required to adher to any standard
+  -- but should be consistent throughout the database
+  -- see http://www.iana.org/assignments/media-types/
+  oi_minor_mime varchar(32) NOT NULL default "unknown",
+  
+  oi_deleted tinyint(1) unsigned NOT NULL default '0',
 
   INDEX oi_name (oi_name(10))
 
index 4707891..bca43f1 100644 (file)
@@ -76,6 +76,7 @@ $wgNewFields = array(
        array( 'archive',           'ar_len',           'patch-ar_len.sql' ),
        array( 'revision',          'rev_parent_id',    'patch-rev_parent_id.sql' ),
        array( 'page_restrictions', 'pr_id',            'patch-page_restrictions_sortkey.sql' ),
+       array( 'oldimage',              'oi_metadata',          'patch-oi_metadata.sql' ),
 );
 
 function rename_table( $from, $to, $patch ) {