Make WordPress Core

Changeset 33259


Ignore:
Timestamp:
07/14/2015 10:18:57 AM (9 years ago)
Author:
pento
Message:

WPDB: When extracting the table name from a query, we had a 1000 character limit on the SQL string that would be searched. This was a hangover from when the code was imported from HyperDB, and isn't appropriate for Core, where a wider range of queries are likely to be run.

Fixes #32763

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/wp-db.php

    r33055 r33259  
    28692869        $query = ltrim( $query, "\r\n\t (" );
    28702870
    2871         /*
    2872          * Strip everything between parentheses except nested selects and use only 1,000
    2873          * chars of the query.
    2874          */
    2875         $query = preg_replace( '/\((?!\s*select)[^(]*?\)/is', '()', substr( $query, 0, 1000 ) );
     2871        // Strip everything between parentheses except nested selects.
     2872        $query = preg_replace( '/\((?!\s*select)[^(]*?\)/is', '()', $query );
    28762873
    28772874        // Quickly match most common queries.
  • trunk/tests/phpunit/tests/db.php

    r32368 r33259  
    534534            "SELECT * FROM `$table`",
    535535
     536            "SELECT * FROM (SELECT * FROM $table) as subquery",
     537
    536538            "INSERT $table",
    537539            "INSERT IGNORE $table",
     
    628630            "SHOW CREATE TABLE $table",
    629631            "SHOW INDEX FROM $table",
     632
     633            // @ticket 32763
     634            "SELECT " . str_repeat( 'a', 10000 ) . " FROM (SELECT * FROM $table) as subquery",
    630635        );
    631636
Note: See TracChangeset for help on using the changeset viewer.