WordPress.org

Make WordPress Core

Ticket #20263: 20263.2.diff

File 20263.2.diff, 1.6 KB (added by ocean90, 2 years ago)
  • src/wp-admin/includes/upgrade.php

     
    22182218                        if (array_key_exists(strtolower($tablefield->Field), $cfields)) {
    22192219
    22202220                                // Get the field type from the query.
    2221                                 preg_match("|".$tablefield->Field." ([^ ]*( unsigned)?)|i", $cfields[strtolower($tablefield->Field)], $matches);
     2221                                $parts = explode( $tablefield->Field, $cfields[ $tablefield->Field ], 2 );
     2222                                $remainder = ltrim( $parts[1], ' `' );
     2223
     2224                                preg_match( '/([^ ]+( unsigned)?)/i', $remainder, $matches );
     2225
    22222226                                $fieldtype = $matches[1];
    22232227
    22242228                                // Is actual field type different from the field type in query?
  • tests/phpunit/tests/dbdelta.php

     
    362362
    363363                $this->assertSame( array(), $actual );
    364364        }
     365
     366        /**
     367         * @ticket 20263
     368         */
     369        function test_query_with_backticks_does_not_throw_an_undefined_index_warning() {
     370                global $wpdb;
     371
     372                $schema = "
     373                        CREATE TABLE {$wpdb->prefix}dbdelta_test2 (
     374                                `id` bigint(20) NOT NULL AUTO_INCREMENT,
     375                                `column_1` varchar(255) NOT NULL,
     376                                PRIMARY KEY  (id),
     377                                KEY compound_key (id,column_1)
     378                        )
     379                ";
     380
     381                $wpdb->query( $schema );
     382
     383                $updates = dbDelta( $schema, false );
     384
     385                $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}dbdelta_test2" );
     386
     387                $this->assertEmpty( $updates );
     388        }
    365389}