[wp-trac] [WordPress Trac] #19525: Meta Query failing to build a proper SQL Query
WordPress Trac
wp-trac at lists.automattic.com
Tue Dec 13 01:23:23 UTC 2011
#19525: Meta Query failing to build a proper SQL Query
--------------------------+-----------------------------
Reporter: peshkohacka | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Query | Version: 3.3
Severity: major | Keywords:
--------------------------+-----------------------------
I was tryin' to get meta working and i was wondering why no results were
returned until i found that the query is actually invalid:
{{{
object(WP_Query)#1337 (44) {
["query_vars"]=>
array(58) {
["category_name"]=>
string(3) "customcat"
["post_status"]=>
string(7) "publish"
["meta_key"]=>
string(13) "time"
["meta_value"]=>
string(9) "135784684"
["meta_type"]=>
string(7) "numeric"
["meta_compare"]=>
string(11) "NOT BETWEEN"
["error"]=>
string(0) ""
["m"]=>
int(0)
["p"]=>
int(0)
["post_parent"]=>
string(0) ""
["subpost"]=>
string(0) ""
["subpost_id"]=>
string(0) ""
["attachment"]=>
string(0) ""
["attachment_id"]=>
int(0)
["name"]=>
string(0) ""
["static"]=>
string(0) ""
["pagename"]=>
string(0) ""
["page_id"]=>
int(0)
["second"]=>
string(0) ""
["minute"]=>
string(0) ""
["hour"]=>
string(0) ""
["day"]=>
int(0)
["monthnum"]=>
int(0)
["year"]=>
int(0)
["w"]=>
int(0)
["tag"]=>
string(0) ""
["cat"]=>
string(1) "7"
["tag_id"]=>
string(0) ""
["author_name"]=>
string(0) ""
["feed"]=>
string(0) ""
["tb"]=>
string(0) ""
["paged"]=>
int(0)
["comments_popup"]=>
string(0) ""
["preview"]=>
string(0) ""
["s"]=>
string(0) ""
["sentence"]=>
string(0) ""
["fields"]=>
string(0) ""
["category__in"]=>
array(0) {
}
["category__not_in"]=>
array(0) {
}
["category__and"]=>
array(0) {
}
["post__in"]=>
array(0) {
}
["post__not_in"]=>
array(0) {
}
["tag__in"]=>
array(0) {
}
["tag__not_in"]=>
array(0) {
}
["tag__and"]=>
array(0) {
}
["tag_slug__in"]=>
array(0) {
}
["tag_slug__and"]=>
array(0) {
}
["ignore_sticky_posts"]=>
bool(false)
["suppress_filters"]=>
bool(false)
["cache_results"]=>
bool(true)
["update_post_term_cache"]=>
bool(true)
["update_post_meta_cache"]=>
bool(true)
["post_type"]=>
string(0) ""
["posts_per_page"]=>
int(10)
["nopaging"]=>
bool(false)
["comments_per_page"]=>
string(2) "50"
["no_found_rows"]=>
bool(false)
["order"]=>
string(4) "DESC"
}
["tax_query"]=>
object(WP_Tax_Query)#1337 (2) {
["queries"]=>
array(1) {
[0]=>
array(5) {
["taxonomy"]=>
string(8) "category"
["terms"]=>
array(1) {
[0]=>
string(3) "customcat"
}
["include_children"]=>
bool(true)
["field"]=>
string(4) "slug"
["operator"]=>
string(2) "IN"
}
}
["relation"]=>
string(3) "AND"
}
["meta_query"]=>
object(WP_Meta_Query)#1337 (2) {
["queries"]=>
array(1) {
[0]=>
array(4) {
["key"]=>
string(13) "time"
["compare"]=>
string(11) "NOT BETWEEN"
["type"]=>
string(7) "numeric"
["value"]=>
string(9) "135784684"
}
}
["relation"]=>
string(3) "AND"
}
["post_count"]=>
int(0)
["current_post"]=>
int(-1)
["in_the_loop"]=>
bool(false)
["comment_count"]=>
int(0)
["current_comment"]=>
int(-1)
["found_posts"]=>
string(1) "1"
["max_num_pages"]=>
float(1)
["max_num_comment_pages"]=>
int(0)
["is_single"]=>
bool(false)
["is_preview"]=>
bool(false)
["is_page"]=>
bool(false)
["is_archive"]=>
bool(true)
["is_date"]=>
bool(false)
["is_year"]=>
bool(false)
["is_month"]=>
bool(false)
["is_day"]=>
bool(false)
["is_time"]=>
bool(false)
["is_author"]=>
bool(false)
["is_category"]=>
bool(true)
["is_tag"]=>
bool(false)
["is_tax"]=>
bool(false)
["is_search"]=>
bool(false)
["is_feed"]=>
bool(false)
["is_comment_feed"]=>
bool(false)
["is_trackback"]=>
bool(false)
["is_home"]=>
bool(false)
["is_404"]=>
bool(false)
["is_comments_popup"]=>
bool(false)
["is_paged"]=>
bool(false)
["is_admin"]=>
bool(false)
["is_attachment"]=>
bool(false)
["is_singular"]=>
bool(false)
["is_robots"]=>
bool(false)
["is_posts_page"]=>
bool(false)
["is_post_type_archive"]=>
bool(false)
["query_vars_hash"]=>
string(32) "5481e968160b92320b359a1818596c83"
["query_vars_changed"]=>
bool(false)
["thumbnails_cached"]=>
bool(false)
["query"]=>
array(6) {
["category_name"]=>
string(3) "customcat"
["post_status"]=>
string(7) "publish"
["meta_key"]=>
string(13) "time"
["meta_value"]=>
string(9) "135784684"
["meta_type"]=>
string(7) "numeric"
["meta_compare"]=>
string(11) "NOT BETWEEN"
}
["request"]=>
string(469) " SELECT SQL_CALC_FOUND_ROWS * FROM posts INNER JOIN
term_relationships ON (ID = term_relationships.object_id) INNER JOIN
postmeta ON (ID = postmeta.post_id) WHERE 1=1 AND (
term_relationships.term_taxonomy_id IN (1) ) AND post_type = 'post' AND
(post_status = 'publish') AND ( (postmeta.meta_key = 'time' AND ) GROUP
BY ID ORDER BY post_date DESC LIMIT 0, 10"
["posts"]=>
array(0) {
}
}
}}}
As you can see the meta query only inputs the meta_key and not the meta
value/compare operator and as such the query ends up invalid.
If it matters (all the vars are above, but still) this is how the query is
getting called:
{{{
$args = array(
'category_name' => 'customcat',
'post_status' => 'publish',
'meta_key' => 'time',
'meta_value' => '135784684',
'meta_type' => 'numeric',
'meta_compare' => 'NOT BETWEEN'
);
$posts = new WP_Query($args);
}}}
--
Ticket URL: <http://core.trac.wordpress.org/ticket/19525>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list