WordPress.org

Make WordPress Core

Ticket #24800: 24800.2.diff

File 24800.2.diff, 1.6 KB (added by nacin, 5 years ago)
  • includes/testcase.php

     
    2929        function tearDown() {
    3030                global $wpdb;
    3131                $wpdb->query( 'ROLLBACK' );
    32                 remove_filter( 'dbdelta_create_queries', array( $this, '_create_temporary_tables' ) );
    33                 remove_filter( 'query', array( $this, '_drop_temporary_tables' ) );
     32                remove_filter( 'query', array( $this, '_create_temporary_table' ) );
     33                remove_filter( 'query', array( $this, '_drop_temporary_table' ) );
    3434                remove_filter( 'wp_die_handler', array( $this, 'get_wp_die_handler' ) );
    3535        }
    3636
     
    5656                global $wpdb;
    5757                $wpdb->query( 'SET autocommit = 0;' );
    5858                $wpdb->query( 'START TRANSACTION;' );
    59                 add_filter( 'dbdelta_create_queries', array( $this, '_create_temporary_tables' ) );
    60                 add_filter( 'query', array( $this, '_drop_temporary_tables' ) );
     59                add_filter( 'query', array( $this, '_create_temporary_table' ) );
     60                add_filter( 'query', array( $this, '_drop_temporary_table' ) );
    6161        }
    6262
    63         function _create_temporary_tables( $queries ) {
    64                 return str_replace( 'CREATE TABLE', 'CREATE TEMPORARY TABLE', $queries );
     63        function _create_temporary_table( $query ) {
     64                if ( 'CREATE TABLE' === substr( $query, 0, 12 ) )
     65                        return substr_replace( $query, 'CREATE TEMPORARY TABLE', 0, 12 );
     66                return $query;
    6567        }
    6668
    67         function _drop_temporary_tables( $query ) {
     69        function _drop_temporary_table( $query ) {
    6870                if ( 'DROP TABLE' === substr( $query, 0, 10 ) )
    69                         return 'DROP TEMPORARY TABLE ' . substr( $query, 10 );
     71                        return substr_replace( $query, 'DROP TEMPORARY TABLE', 0, 10 );
    7072                return $query;
    7173        }
    7274