WordPress.org

Make WordPress Core

Ticket #24800: 24800.2.diff

File 24800.2.diff, 1.6 KB (added by nacin, 23 months 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