Commit 7d40953f authored by catch's avatar catch
Browse files

Issue #3259671 by alexpott, _KASH_, Lendude: Slow query in titleQuery Vid.php

(cherry picked from commit e5d6a0ce)
parent 2c6aea21
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ public function titleQuery() {
      ->accessCheck(FALSE)
      ->allRevisions()
      ->groupBy('title')
      ->condition('vid', $this->value, 'IN')
      ->execute();

    foreach ($results as $result) {
+56 −56
Original line number Diff line number Diff line
@@ -13,45 +13,12 @@ base_table: node_field_data
base_field: nid
display:
  default:
    display_plugin: default
    id: default
    display_title: Default
    display_plugin: default
    position: 0
    display_options:
      access:
        type: perm
        options:
          perm: 'access content'
      cache:
        type: tag
        options: {  }
      query:
        type: views_query
        options:
          disable_sql_rewrite: false
          distinct: false
          replica: false
          query_comment: ''
          query_tags: {  }
      exposed_form:
        type: basic
        options:
          submit_button: Apply
          reset_button: false
          reset_button_label: Reset
          exposed_sorts_label: 'Sort by'
          expose_sort_order: true
          sort_asc_label: Asc
          sort_desc_label: Desc
      pager:
        type: none
        options:
          items_per_page: null
          offset: 0
      style:
        type: default
      row:
        type: fields
      title: test_node_revision_id_argument
      fields:
        title:
          id: title
@@ -60,6 +27,9 @@ display:
          relationship: none
          group_type: group
          admin_label: ''
          entity_type: node
          entity_field: title
          plugin_id: field
          label: ''
          exclude: false
          alter:
@@ -115,16 +85,30 @@ display:
          multi_type: separator
          separator: ', '
          field_api_classes: false
          entity_type: node
          entity_field: title
          plugin_id: field
      filters: {  }
      sorts: {  }
      title: test_node_revision_id_argument
      header: {  }
      footer: {  }
      pager:
        type: none
        options:
          offset: 0
          items_per_page: null
      exposed_form:
        type: basic
        options:
          submit_button: Apply
          reset_button: false
          reset_button_label: Reset
          exposed_sorts_label: 'Sort by'
          expose_sort_order: true
          sort_asc_label: Asc
          sort_desc_label: Desc
      access:
        type: perm
        options:
          perm: 'access content'
      cache:
        type: tag
        options: {  }
      empty: {  }
      relationships: {  }
      sorts: {  }
      arguments:
        vid:
          id: vid
@@ -133,13 +117,16 @@ display:
          relationship: none
          group_type: group
          admin_label: ''
          entity_type: node
          entity_field: vid
          plugin_id: node_vid
          default_action: ignore
          exception:
            value: all
            title_enable: false
            title: All
          title_enable: false
          title: ''
          title_enable: true
          title: '{{ arguments.vid }}'
          default_argument_type: fixed
          default_argument_options:
            argument: ''
@@ -147,8 +134,8 @@ display:
          summary_options:
            base_path: ''
            count: true
            items_per_page: 25
            override: false
            items_per_page: 25
          summary:
            sort_order: asc
            number_of_records: 0
@@ -160,38 +147,51 @@ display:
          validate_options: {  }
          break_phrase: false
          not: false
          entity_type: node
          entity_field: vid
          plugin_id: node_vid
      display_extenders: {  }
      filters: {  }
      filter_groups:
        operator: AND
        groups: {  }
      style:
        type: default
      row:
        type: fields
      query:
        type: views_query
        options:
          query_comment: ''
          disable_sql_rewrite: false
          distinct: false
          replica: false
          query_tags: {  }
      relationships: {  }
      header: {  }
      footer: {  }
      display_extenders: {  }
    cache_metadata:
      max-age: -1
      contexts:
        - 'languages:language_content'
        - 'languages:language_interface'
        - url
        - 'user.node_grants:view'
        - user.permissions
      cacheable: false
      max-age: -1
      tags: {  }
      cacheable: false
  page_1:
    display_plugin: page
    id: page_1
    display_title: Page
    display_plugin: page
    position: 1
    display_options:
      display_extenders: {  }
      path: test-revision-vid-argument
    cache_metadata:
      max-age: -1
      contexts:
        - 'languages:language_content'
        - 'languages:language_interface'
        - url
        - 'user.node_grants:view'
        - user.permissions
      cacheable: false
      max-age: -1
      tags: {  }
      cacheable: false
+4 −1
Original line number Diff line number Diff line
@@ -46,13 +46,16 @@ public function testNodeRevisionRelationship() {
    NodeType::create(['type' => 'page', 'name' => 'page'])->save();
    $node = Node::create(['type' => 'page', 'title' => 'test1', 'uid' => 1]);
    $node->save();
    $first_revision_id = $node->getRevisionId();
    $node->setNewRevision();
    $node->setTitle('test2');
    $node->save();
    $second_revision_id = $node->getRevisionId();

    $view_nid = Views::getView('test_node_revision_id_argument');
    $this->executeView($view_nid, [$node->getRevisionId()]);
    $this->executeView($view_nid, [$second_revision_id]);
    $this->assertIdenticalResultset($view_nid, [['title' => 'test2']]);
    $this->assertSame('test2', $view_nid->getTitle());
  }

  /**