WordPress.org

Make WordPress Core

Ticket #20263: 20263.3.diff

File 20263.3.diff, 1.5 KB (added by ocean90, 5 years ago)
  • src/wp-admin/includes/upgrade.php

     
    22012201                                case 'unique':
    22022202                                case 'key':
    22032203                                        $validfield = false;
    2204                                         $indices[] = trim(trim($fld), ", \n");
     2204                                        $indices[] = trim( trim( str_replace( '`', '', $fld ) ), ", \n" );
    22052205                                        break;
    22062206                        }
    22072207                        $fld = trim( $fld );
    22082208
    22092209                        // If it's a valid field, add it to the field array.
    22102210                        if ( $validfield ) {
    2211                                 $cfields[ $fieldname_lowercased ] = trim( $fld, ", \n" );
     2211                                $cfields[ $fieldname_lowercased ] = trim( str_replace( '`', '', $fld ), ", \n" );
    22122212                        }
    22132213                }
    22142214
  • tests/phpunit/tests/dbdelta.php

     
    488488
    489489                $this->assertEmpty( $updates );
    490490        }
     491
     492        /**
     493         * @ticket 20263
     494         */
     495        function test_query_with_backticks_does_not_cause_a_query_to_alter_all_columns_and_indexes_to_run_even_if_none_have_changed() {
     496                global $wpdb;
     497
     498                $schema = "
     499                        CREATE TABLE {$wpdb->prefix}dbdelta_test2 (
     500                                `id` bigint(20) NOT NULL AUTO_INCREMENT,
     501                                PRIMARY KEY  (`id`)
     502                        )
     503                ";
     504
     505                $wpdb->query( $schema );
     506
     507                $updates = dbDelta( $schema, false );
     508
     509                $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}dbdelta_test2" );
     510
     511                $this->assertEmpty( $updates );
     512        }
    491513}