WordPress.org

Make WordPress Core

Ticket #17998: 17998.diff

File 17998.diff, 1.9 KB (added by nacin, 7 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) {