--- /dev/null
+-- \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
}
function oldimageCallback( $row ) {
- if( $row->oi_width ) {
+ if( $row->oi_width && $row->oi_media_type ) {
return null;
}
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() {
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))
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 ) {