Make WordPress Core

Ticket #41348: 41348.diff

File 41348.diff, 2.8 KB (added by spacedmonkey, 9 years ago)
  • src/wp-includes/class-wp-comment-query.php

     
    391391                        $this->meta_query_clauses = $this->meta_query->get_sql( 'comment', $wpdb->comments, 'comment_ID', $this );
    392392                }
    393393
     394                $_args = wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) );
     395                unset( $_args['fields'] );
     396
    394397                // $args can include anything. Only use the args defined in the query_var_defaults to compute the key.
    395                 $key = md5( serialize( wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) ) ) );
     398                $key = md5( serialize( $_args ) );
    396399                $last_changed = wp_cache_get_last_changed( 'comment' );
    397400
    398401
  • tests/phpunit/tests/comment/query.php

     
    28702870                $this->assertSame( $num_queries, $wpdb->num_queries );
    28712871                $this->assertEqualSets( array( $c ), $q->comments );
    28722872        }
     2873
     2874        /**
     2875         * @ticket 41348
     2876         */
     2877        public function test_wp_comment_query_cache_with_count() {
     2878                global $wpdb;
     2879                $q = new WP_Comment_Query();
     2880
     2881                $query_1 = $q->query( array(
     2882                        'fields'     => 'ids',
     2883                        'number'     => 3,
     2884                        'order'      => 'ASC',
     2885                ) );
     2886
     2887                $number_of_queries = $wpdb->num_queries;
     2888
     2889                $query_2 = $q->query( array(
     2890                        'fields'     => 'ids',
     2891                        'number'     => 3,
     2892                        'order'      => 'ASC',
     2893                        'count'      => true,
     2894                ) );
     2895                $this->assertEquals( $number_of_queries + 1, $wpdb->num_queries );
     2896        }
     2897
     2898        /**
     2899         * @ticket 41348
     2900         */
     2901        public function test_wp_comment_query_cache_with_both_count() {
     2902                global $wpdb;
     2903                $q = new WP_Comment_Query();
     2904
     2905                $query_1           = $q->query( array(
     2906                        'fields'     => 'ids',
     2907                        'number'     => 3,
     2908                        'order'      => 'ASC',
     2909                        'count'      => true,
     2910                ) );
     2911                $number_of_queries = $wpdb->num_queries;
     2912
     2913                $query_2 = $q->query( array(
     2914                        'fields'     => 'ids',
     2915                        'number'     => 3,
     2916                        'order'      => 'ASC',
     2917                        'count'      => true,
     2918                ) );
     2919                $this->assertEquals( $number_of_queries, $wpdb->num_queries );
     2920        }
     2921
     2922        /**
     2923         * @ticket 41348
     2924         */
     2925        public function test_wp_comment_query_cache_with_different_fields() {
     2926                global $wpdb;
     2927                $q                 = new WP_Comment_Query();
     2928                $query_1           = $q->query( array(
     2929                        'fields'     => 'all',
     2930                        'number'     => 3,
     2931                        'order'      => 'ASC',
     2932                ) );
     2933                $number_of_queries = $wpdb->num_queries;
     2934
     2935                $query_2 = $q->query( array(
     2936                        'fields'     => 'ids',
     2937                        'number'     => 3,
     2938                        'order'      => 'ASC',
     2939                ) );
     2940
     2941                $this->assertEquals( $number_of_queries, $wpdb->num_queries );
     2942
     2943        }
    28732944}