WordPress.org

Make WordPress Core

Ticket #32127: 32127.3.diff

File 32127.3.diff, 2.6 KB (added by pento, 5 years ago)
  • src/wp-admin/includes/upgrade.php

     
    527527        if ( $wp_current_db_version < 31351 )
    528528                upgrade_420();
    529529
    530         if ( $wp_current_db_version < 32364 )
     530        if ( $wp_current_db_version < 32378 )
    531531                upgrade_430();
    532532
    533533        maybe_disable_link_manager();
     
    14791479                        wp_delete_comment( $comment->comment_ID, true );
    14801480                }
    14811481        }
     1482
     1483        if ( $wp_current_db_version < 32378 && $wpdb->charset === 'utf8mb4' ) {
     1484                if ( is_multisite() ) {
     1485                        $tables = $wpdb->tables( 'blog' );
     1486                } else {
     1487                        $tables = $wpdb->tables( 'all' );
     1488                }
     1489
     1490                foreach ( $tables as $table ) {
     1491                        maybe_convert_table_to_utf8mb4( $table );
     1492                }
     1493        }
    14821494}
    14831495
    14841496/**
     
    16091621                        if ( $upgrade ) {
    16101622                                $wpdb->query( "ALTER TABLE $wpdb->signups DROP INDEX domain_path, ADD INDEX domain_path(domain(140),path(51))" );
    16111623                        }
     1624
     1625                        $tables = $wpdb->tables( 'global' );
     1626
     1627                        foreach ( $tables as $table ) {
     1628                                maybe_convert_table_to_utf8mb4( $table );
     1629                        }
    16121630                }
    16131631        }
    16141632}
     
    24462464                $wpdb->query( "ALTER TABLE $wpdb->postmeta DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))" );
    24472465                $wpdb->query( "ALTER TABLE $wpdb->posts DROP INDEX post_name, ADD INDEX post_name(post_name(191))" );
    24482466        }
     2467
     2468        // Upgrade versions prior to 4.2.2
     2469        if ( $wp_current_db_version < 32378 ) {
     2470                        $tables = array(
     2471                                $wpdb->usermeta => 'meta_key',
     2472                                $wpdb->terms => 'slug',
     2473                                $wpdb->terms => 'name',
     2474                                $wpdb->commentmeta => 'meta_key',
     2475                                $wpdb->postmeta => 'meta_key',
     2476                                $wpdb->posts => 'post_name',
     2477                        );
     2478
     2479                        foreach ( $tables as $table => $table_index ) {
     2480                                if ( $wpdb->usermeta == $table && is_multisite() ) {
     2481                                        continue;
     2482                                }
     2483
     2484                                $upgrade = false;
     2485                                $indexes = $wpdb->get_results( "SHOW INDEXES FROM $table" );
     2486                                foreach( $indexes as $index ) {
     2487                                        if ( $table_index == $index->Key_name && $table_index == $index->Column_name && 191 != $index->Sub_part ) {
     2488                                                $upgrade = true;
     2489                                                break;
     2490                                        }
     2491                                }
     2492
     2493                                if ( $upgrade ) {
     2494                                        $wpdb->query( "ALTER TABLE $table DROP INDEX $table_index, ADD INDEX $table_index($table_index(191))" );
     2495                                }
     2496                        }
     2497        }
    24492498}
    24502499
    24512500/**
  • src/wp-includes/wp-db.php

     
    739739                }
    740740
    741741                if ( ( $this->use_mysqli && ! ( $this->dbh instanceof mysqli ) )
    742                   || ( empty( $this->dbh ) || ! ( $this->dbh instanceof mysqli ) ) ) {
     742                  || ( empty( $this->dbh ) ) ) {
    743743                        return;
    744744                }
    745745