Issue #3259671 by alexpott, _KASH_, Lendude: Slow query in titleQuery Vid.php
							parent
							
								
									5b89b5353b
								
							
						
					
					
						commit
						334790ce2d
					
				| 
						 | 
				
			
			@ -59,6 +59,7 @@ class Vid extends NumericArgument {
 | 
			
		|||
      ->accessCheck(FALSE)
 | 
			
		||||
      ->allRevisions()
 | 
			
		||||
      ->groupBy('title')
 | 
			
		||||
      ->condition('vid', $this->value, 'IN')
 | 
			
		||||
      ->execute();
 | 
			
		||||
 | 
			
		||||
    foreach ($results as $result) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,13 +45,16 @@ class ArgumentNodeRevisionIdTest extends ViewsKernelTestBase {
 | 
			
		|||
    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());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue