From afe046a84c395b3b0ff014dd6a6a8735b7f2eaaa Mon Sep 17 00:00:00 2001 From: Gary Pendergast Date: Tue, 21 Apr 2015 05:23:44 +0000 Subject: [PATCH] WPDB: When deciding if a query needs extra sanity checking based on collation, we can quickly return if the query is entirely ASCII characters. See #32029. git-svn-id: https://develop.svn.wordpress.org/trunk@32233 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/wp-db.php | 5 +++++ tests/phpunit/tests/db/charset.php | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/wp-db.php b/src/wp-includes/wp-db.php index 7dd81b89cc..489b80d3fb 100644 --- a/src/wp-includes/wp-db.php +++ b/src/wp-includes/wp-db.php @@ -2405,6 +2405,11 @@ class wpdb { return true; } + // All-ASCII queries don't need extra checking. + if ( $this->check_ascii( $query ) ) { + return true; + } + $table = $this->get_table_from_query( $query ); if ( ! $table ) { return false; diff --git a/tests/phpunit/tests/db/charset.php b/tests/phpunit/tests/db/charset.php index d55c750c66..3e0b81ad8a 100755 --- a/tests/phpunit/tests/db/charset.php +++ b/tests/phpunit/tests/db/charset.php @@ -503,9 +503,10 @@ class Tests_DB_Charset extends WP_UnitTestCase { $this_table_name = $table_name . '_' . rand_str( 5 ); $value[0] = "CREATE TABLE $this_table_name {$value[0]}"; - $value[2] = "SELECT * FROM $this_table_name"; + $value[2] = "SELECT * FROM $this_table_name WHERE a='\xf0\x9f\x98\x88'"; $value[3] = "DROP TABLE IF EXISTS $this_table_name"; $value[4] = array( + "SELECT * FROM $this_table_name WHERE a='foo'", "SHOW FULL TABLES LIKE $this_table_name", "DESCRIBE $this_table_name", "DESC $this_table_name",