[wp-trac] [WordPress Trac] #57012: WP_Query caching discards `posts_fields` and `posts_clauses['fields']` filters.
WordPress Trac
noreply at wordpress.org
Sat Nov 12 15:26:13 UTC 2022
#57012: WP_Query caching discards `posts_fields` and `posts_clauses['fields']`
filters.
-------------------------------------------------+-------------------------
Reporter: peterwilsoncc | Owner:
| peterwilsoncc
Type: defect (bug) | Status: closed
Priority: normal | Milestone: 6.1.1
Component: Query | Version: 6.1
Severity: normal | Resolution: fixed
Keywords: has-patch has-unit-tests commit | Focuses:
fixed-major | performance
-------------------------------------------------+-------------------------
Changes (by SergeyBiryukov):
* status: reopened => closed
* resolution: => fixed
Comment:
In [changeset:"54830" 54830]:
{{{
#!CommitTicketReference repository="" revision="54830"
Tests: Resolve `WP_Query` test failures on MariaDB due to indeterminate
sort order.
[54768] added a few tests to verify that caching within `WP_Query` is
bypassed when the `SELECT` clause has been modified via a filter, to avoid
cache key collisions and the returning of incomplete or unexpected
results.
However, creating several posts with the same date/time fields can result
in inconsistent sort ordering between MySQL and MariaDB, as each engine
refines the order further using a different index.
This commit aims to stabilize the tests by using `assertEqualSets()`
instead of `assertEquals()`, since testing the order is out of their
scope. Includes removing `array_unshift()` and `array_reverse()` calls as
no longer needed.
This resolves a few test failures on MariaDB along the lines of:
{{{
Tests_Query_FieldsClause::test_should_limit_fields_to_id_and_parent_subset
Posts property for first query is not of expected form.
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
Array (
0 => stdClass Object (
- 'ID' => 36019
+ 'ID' => 36015
'post_parent' => 0
)
1 => stdClass Object (
- 'ID' => 36018
+ 'ID' => 36016
'post_parent' => 0
)
2 => stdClass Object (...)
3 => stdClass Object (
- 'ID' => 36016
+ 'ID' => 36018
'post_parent' => 0
)
4 => stdClass Object (
- 'ID' => 36015
+ 'ID' => 36019
'post_parent' => 0
)
)
/tmp/wp-test-runner/tests/phpunit/tests/query/fieldsClause.php:67
/tmp/wp-test-runner/phpunit-5.7.phar:598
}}}
Follow-up to [54768].
Props peterwilsoncc, SergeyBiryukov.
Merges [54829] to the 6.1 branch.
Fixes #57012.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/57012#comment:18>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list