LogEventsList: Use DerivativeContext
[lhc/web/wiklou.git] / includes / installer / PostgresUpdater.php
index 6263edb..932c941 100644 (file)
@@ -575,6 +575,21 @@ class PostgresUpdater extends DatabaseUpdater {
                        [ 'populateExternallinksIndex60' ],
                        [ 'dropDefault', 'externallinks', 'el_index_60' ],
                        [ 'runMaintenance', DeduplicateArchiveRevId::class, 'maintenance/deduplicateArchiveRevId.php' ],
+                       [ 'addPgField', 'change_tag', 'ct_tag_id', 'INTEGER NULL' ],
+                       [
+                               'addPgIndex',
+                               'change_tag',
+                               'change_tag_tag_id_id',
+                               '( ct_tag_id, ct_rc_id, ct_rev_id, ct_log_id )'
+                       ],
+                       [ 'addPgIndex', 'archive', 'ar_revid_uniq', '(ar_rev_id)', 'unique' ],
+                       [ 'dropPgIndex', 'archive', 'ar_revid' ], // Probably doesn't exist, but do it anyway.
+                       [ 'populateContentTables' ],
+                       [ 'addPgIndex', 'logging', 'log_type_action', '( log_type, log_action, log_timestamp )' ],
+                       [ 'dropPgIndex', 'page_props', 'page_props_propname' ],
+                       [ 'addIndex', 'interwiki', 'interwiki_pkey', 'patch-interwiki-pk.sql' ],
+                       [ 'addIndex', 'protected_titles', 'protected_titles_pkey', 'patch-protected_titles-pk.sql' ],
+                       [ 'addIndex', 'site_identifiers', 'site_identifiers_pkey', 'patch-site_identifiers-pk.sql' ],
                ];
        }
 
@@ -952,12 +967,13 @@ END;
                }
        }
 
-       public function addPgIndex( $table, $index, $type ) {
+       public function addPgIndex( $table, $index, $type, $unique = false ) {
                if ( $this->db->indexExists( $table, $index ) ) {
                        $this->output( "...index '$index' on table '$table' already exists\n" );
                } else {
                        $this->output( "Creating index '$index' on table '$table' $type\n" );
-                       $this->db->query( "CREATE INDEX $index ON $table $type" );
+                       $unique = $unique ? 'UNIQUE' : '';
+                       $this->db->query( "CREATE $unique INDEX $index ON $table $type" );
                }
        }