WordPress.org

Make WordPress Core

Ticket #17998: 17998.diff

File 17998.diff, 1.9 KB (added by nacin, 2 years ago)
  • wp-admin/includes/upgrade.php

     
    14591459        $cqueries = apply_filters( 'dbdelta_create_queries', $cqueries ); 
    14601460        $iqueries = apply_filters( 'dbdelta_insert_queries', $iqueries ); 
    14611461 
    1462         // Check to see which tables and fields exist 
    1463         if ($tables = $wpdb->get_col('SHOW TABLES;')) { 
    1464                 // For every table in the database 
    14651462                $global_tables = $wpdb->tables( 'global' ); 
    1466                 foreach ($tables as $table) { 
     1463                foreach ( $cqueries as $table => $who_cares ) { 
    14671464                        // Upgrade global tables only for the main site. Don't upgrade at all if DO_NOT_UPGRADE_GLOBAL_TABLES is defined. 
    14681465                        if ( in_array( $table, $global_tables ) && ( !is_main_site() || defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) ) 
    14691466                                continue; 
    14701467 
    1471                         // If a table query exists for the database table... 
    1472                         if ( array_key_exists(strtolower($table), $cqueries) ) { 
     1468                        // Fetch the table column structure from the database 
     1469                        $tablefields = $wpdb->get_results("DESCRIBE {$table};"); 
     1470 
     1471                        if ( ! $tablefields ) 
     1472                                continue; 
     1473 
    14731474                                // Clear the field and index arrays 
    14741475                                $cfields = $indices = array(); 
    14751476                                // Get all of the field names in the query from between the parens 
     
    15081509                                        } 
    15091510                                } 
    15101511 
    1511                                 // Fetch the table column structure from the database 
    1512                                 $tablefields = $wpdb->get_results("DESCRIBE {$table};"); 
    1513  
    15141512                                // For every field in the table 
    15151513                                foreach ($tablefields as $tablefield) { 
    15161514                                        // If the table field exists in the field array... 
     
    16101608                                // Remove the original table creation query from processing 
    16111609                                unset($cqueries[strtolower($table)]); 
    16121610                                unset($for_update[strtolower($table)]); 
    1613                         } else { 
    1614                                 // This table exists in the database, but not in the creation queries? 
    1615                         } 
    16161611                } 
    1617         } 
    16181612 
    16191613        $allqueries = array_merge($cqueries, $iqueries); 
    16201614        if ($execute) {