diff --git a/core/modules/action/tests/action_bulk_test/config/views.view.test_bulk_form.yml b/core/modules/action/tests/action_bulk_test/config/views.view.test_bulk_form.yml
index b1bb8eb..6ff8ef2 100644
--- a/core/modules/action/tests/action_bulk_test/config/views.view.test_bulk_form.yml
+++ b/core/modules/action/tests/action_bulk_test/config/views.view.test_bulk_form.yml
@@ -71,6 +71,7 @@ display:
           hide_empty: '0'
           empty_zero: '0'
           link_to_node: '1'
+          plugin_id: node
         bulk_form:
           id: action_bulk_form
           table: action
@@ -119,6 +120,7 @@ display:
           hide_empty: '0'
           empty_zero: '0'
           hide_alter_empty: '1'
+          plugin_id: action_bulk_form
       filters:
         status:
           value: '1'
@@ -128,12 +130,14 @@ display:
           expose:
             operator: '0'
           group: '1'
+          plugin_id: boolean
       sorts:
         created:
           id: created
           table: node
           field: created
           order: DESC
+          plugin_id: date
       title: form
   page_1:
     display_plugin: page
diff --git a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
index 249fa76..fd9efb8 100644
--- a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
+++ b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
@@ -35,6 +35,7 @@ display:
           id: subject
           table: comment
           field: subject
+          plugin_id: comment
           label: ''
           alter:
             alter_text: '0'
@@ -61,4 +62,3 @@ human_name: test_comment_rss
 module: views
 id: test_comment_rss
 tag: ''
-uuid: 9b1b1e58-d41b-468a-9d04-4e6bde742c29
diff --git a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml
index c3ef2e4..a513d27 100644
--- a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml
+++ b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml
@@ -19,6 +19,7 @@ display:
           summary_options:
             items_per_page: '25'
           table: node
+          plugin_id: argument_comment_user_uid
       cache:
         type: none
       exposed_form:
@@ -28,6 +29,7 @@ display:
           field: nid
           id: nid
           table: node
+          plugin_id: node
       pager:
         type: full
       query:
diff --git a/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml b/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml
index 914a79c..32b1574 100644
--- a/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml
+++ b/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml
@@ -12,10 +12,12 @@ display:
           field: nid
           id: nid
           table: node
+          plugin_id: node
         field_name_0:
           id: field_name_0
           table: field_data_field_name_0
           field: field_name_0
+          plugin_id: field
       cache:
         type: none
       exposed_form:
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml
index 120999d..a5279a2 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml
@@ -16,6 +16,7 @@ display:
           id: nid
           table: node
           field: nid
+          plugin_id: node
       filter_groups:
         groups:
           1: AND
@@ -31,6 +32,7 @@ display:
           table: node
           value:
             - '1'
+          plugin_id: node_uid_revision
       sorts: {  }
       pager:
         type: full
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml
index ac9e115..58e7e64 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml
@@ -9,26 +9,31 @@ display:
           id: nid
           table: node_revision
           field: nid
-          required: TRUE
+          required: true
+          plugin_id: standard
       fields:
         vid:
           id: vid
           table: node_revision
           field: vid
+          plugin_id: standard
         nid_1:
           id: nid_1
           table: node_revision
           field: nid
+          plugin_id: standard
         nid:
           id: nid
           table: node
           field: nid
           relationship: nid
+          plugin_id: node
       arguments:
         nid:
-          id: nid:
+          id: nid
           table: node_revision
           field: nid
+          plugin_id: node_nid
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml
index bdb33d6..fe29d14 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml
@@ -9,26 +9,31 @@ display:
           id: vid
           table: node_revision
           field: vid
-          required: TRUE
+          required: true
+          plugin_id: standard
       fields:
         vid:
           id: vid
           table: node_revision
           field: vid
+          plugin_id: standard
         nid_1:
           id: nid_1
           table: node_revision
           field: nid
+          plugin_id: standard
         nid:
           id: nid
           table: node
           field: nid
           relationship: vid
+          plugin_id: node
       arguments:
         nid:
-          id: nid:
+          id: nid
           table: node_revision
           field: nid
+          plugin_id: node_nid
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml
index e4a140d..9c75665 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml
@@ -75,6 +75,7 @@ display:
           empty_zero: '0'
           hide_alter_empty: '1'
           link_to_node: '0'
+          plugin_id: node
       filters:
         status_extra:
           id: status_extra
@@ -111,12 +112,14 @@ display:
             default_group: All
             default_group_multiple: {  }
             group_items: {  }
+          plugin_id: node_status
       sorts:
         nid:
           id: nid
           table: node
           field: nid
           order: ASC
+          plugin_id: standard
       filter_groups:
         operator: AND
         groups:
diff --git a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml
index 9fd8876..d074f2f 100644
--- a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml
+++ b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml
@@ -31,6 +31,7 @@ display:
           table: entity_test
           field: id
           order: DESC
+          plugin_id: date
       title: 'Test serialize'
       arguments: {  }
   rest_export_1:
diff --git a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml
index 1afee8f..3efcf4d 100644
--- a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml
+++ b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml
@@ -31,6 +31,7 @@ display:
           table: views_test_data
           field: name
           label: ''
+          plugin_id: string
         nothing:
           id: nothing
           table: views
@@ -43,12 +44,14 @@ display:
           alter:
             alter_text: '1'
             text: TEST
+          plugin_id: custom
       sorts:
         created:
           id: created
           table: views_test_data
           field: created
           order: DESC
+          plugin_id: date
       title: 'Test serialize'
       arguments: {  }
   rest_export_1:
diff --git a/core/modules/system/lib/Drupal/system/Plugin/views/row/EntityRow.php b/core/modules/system/lib/Drupal/system/Plugin/views/row/EntityRow.php
index 0a5ef91..34e705e 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/views/row/EntityRow.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/views/row/EntityRow.php
@@ -117,7 +117,7 @@ public function pre_render($result) {
     parent::pre_render($result);
 
     if ($result) {
-      // Get all entities which will be used to render in rows.
+      // Get all entities which will be used to render in rows.c
       $entities = array();
       foreach ($result as $row) {
         $entity = $row->_entity;
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml
index 7a9cacd..d9c32cf 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml
@@ -17,11 +17,13 @@ display:
           field: name
           id: name
           table: taxonomy_term_data
+          plugin_id: taxonomy
         nid:
           field: nid
           id: nid
           relationship: tid_representative
           table: node
+          plugin_id: node
       pager:
         options:
           items_per_page: '10'
@@ -43,6 +45,7 @@ display:
           subquery_sort: node.nid
           subquery_view: ''
           table: taxonomy_term_data
+          plugin_id: groupwise_max
       row:
         type: fields
       sorts:
@@ -51,6 +54,7 @@ display:
           id: tid
           order: DESC
           table: taxonomy_term_data
+          plugin_id: standard
       style:
         type: default
       title: test_groupwise
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml
index 02db809..25cc78d 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml
@@ -19,6 +19,7 @@ display:
           summary_options:
             items_per_page: '25'
           table: taxonomy_term_data
+          plugin_id: taxonomy
         tid_1:
           default_argument_type: fixed
           field: tid
@@ -30,6 +31,7 @@ display:
           summary_options:
             items_per_page: '25'
           table: taxonomy_term_data
+          plugin_id: taxonomy
       cache:
         type: none
       exposed_form:
@@ -46,6 +48,7 @@ display:
           table: node
           vocabularies:
             tags: '0'
+          plugin_id: node_term_data
         term_node_tid_1:
           field: term_node_tid
           id: term_node_tid_1
@@ -53,6 +56,7 @@ display:
           table: node
           vocabularies:
             tags: '0'
+          plugin_id: node_term_data
       sorts:
         nid:
           field: nid
diff --git a/core/modules/translation_entity/tests/modules/translation_entity_test_views/test_views/views.view.test_entity_translations_link.yml b/core/modules/translation_entity/tests/modules/translation_entity_test_views/test_views/views.view.test_entity_translations_link.yml
index c431338..a9f8bf0 100644
--- a/core/modules/translation_entity/tests/modules/translation_entity_test_views/test_views/views.view.test_entity_translations_link.yml
+++ b/core/modules/translation_entity/tests/modules/translation_entity_test_views/test_views/views.view.test_entity_translations_link.yml
@@ -43,6 +43,7 @@ display:
           label: Username
           link_to_user: '1'
           format_username: '1'
+          plugin_id: user_name
         translation_link:
           id: translation_link
           table: users
@@ -58,6 +59,7 @@ display:
           empty_zero: '0'
           hide_alter_empty: '1'
           text: Translate
+          plugin_id: translation_entity_link
       filters:
         uid_raw:
           id: uid_raw
@@ -68,12 +70,14 @@ display:
             value: '0'
           group: '1'
           exposed: '0'
+          plugin_id: numeric
       sorts:
         created:
           id: created
           table: users
           field: created
           order: DESC
+          plugin_id: date
       title: People
       empty:
         area:
@@ -83,6 +87,7 @@ display:
           empty: '1'
           content: 'No people available.'
           format: filtered_html
+          plugin_id: text
   page_1:
     display_plugin: page
     id: page_1
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml
index 8b09600..83e2507 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml
@@ -18,11 +18,13 @@ display:
           field: name
           id: name
           table: users
+          plugin_id: user_name
         nid:
           field: nid
           id: nid
           relationship: uid_representative
           table: node
+          plugin_id: node
       filters:
         status:
           expose:
@@ -32,6 +34,7 @@ display:
           id: status
           table: users
           value: '1'
+          plugin_id: boolean
       pager:
         options:
           items_per_page: '10'
@@ -53,6 +56,7 @@ display:
           subquery_sort: node.nid
           subquery_view: ''
           table: users
+          plugin_id: groupwise_max
       row:
         type: fields
       sorts:
@@ -61,6 +65,7 @@ display:
           id: created
           order: DESC
           table: users
+          plugin_id: date
       style:
         type: default
       title: test_groupwise_user
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml
index 3c19d4e..bf4b75f 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml
@@ -36,6 +36,7 @@ display:
           link_to_user: '1'
           overwrite_anonymous: '0'
           table: users
+          plugin_id: user_name
         title:
           alter:
             absolute: '0'
@@ -53,6 +54,7 @@ display:
           label: ''
           link_to_node: '1'
           table: node
+          plugin_id: node
         uid:
           alter:
             absolute: '0'
@@ -76,6 +78,7 @@ display:
           id: uid
           link_to_user: '1'
           table: users
+          plugin_id: user
       pager:
         options:
           items_per_page: '10'
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml
index 6309f8a..ca37d6b 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml
@@ -10,6 +10,7 @@ display:
           id: uid
           table: users
           field: uid
+          plugin_id: user
       arguments:
         uid:
           id: uid
@@ -17,6 +18,7 @@ display:
           field: uid
           title_enable: true
           title: %1
+          plugin_id: user_uid
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml
index dba19db..6273bda 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml
@@ -17,6 +17,7 @@ display:
           table: views
           validate:
             type: user
+          plugin_id: 'null'
       cache:
         type: none
       exposed_form:
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml
index 193c15b..fca67b0 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml
@@ -80,6 +80,7 @@ display:
           overwrite_anonymous: '0'
           anonymous_text: ''
           format_username: '1'
+          plugin_id: user_name
         rid:
           id: rid
           table: users_roles
@@ -130,6 +131,7 @@ display:
           hide_alter_empty: '1'
           type: separator
           separator: ''
+          plugin_id: user_roles
       filters:
         status:
           value: '1'
@@ -139,6 +141,7 @@ display:
           expose:
             operator: '0'
           group: '1'
+          plugin_id: boolean
       sorts: {  }
       title: test_user_role
   page_1:
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml
index f068501..33bed69 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml
@@ -30,6 +30,7 @@ display:
           link_to_user: '1'
           overwrite_anonymous: '0'
           table: users
+          plugin_id: user_name
       pager:
         type: full
       query:
diff --git a/core/modules/views/config/views.view.archive.yml b/core/modules/views/config/views.view.archive.yml
index 1623e79..38d6cc9 100644
--- a/core/modules/views/config/views.view.archive.yml
+++ b/core/modules/views/config/views.view.archive.yml
@@ -32,6 +32,7 @@ display:
           table: node
           field: created
           order: DESC
+          plugin_id: date
       arguments:
         created_year_month:
           id: created_year_month
@@ -50,6 +51,7 @@ display:
             override: true
             items_per_page: '30'
           specify_validation: 1
+          plugin_id: node_created_year_month
       filters:
         status:
           id: status
@@ -59,6 +61,7 @@ display:
           group: 0
           expose:
             operator: false
+          plugin_id: boolean
       style:
         type: default
       row:
@@ -100,3 +103,4 @@ display:
           summary_options:
             items_per_page: '30'
           specify_validation: 1
+          plugin_id: node_created_year_month
diff --git a/core/modules/views/config/views.view.backlinks.yml b/core/modules/views/config/views.view.backlinks.yml
index 58de2ca..a909cec 100644
--- a/core/modules/views/config/views.view.backlinks.yml
+++ b/core/modules/views/config/views.view.backlinks.yml
@@ -35,6 +35,7 @@ display:
           empty: false
           content: 'No backlinks found.'
           format: '1'
+          plugin_id: text
       fields:
         title:
           id: title
@@ -42,6 +43,7 @@ display:
           field: title
           label: ''
           link_to_node: 1
+          plugin_id: node
       arguments:
         nid:
           id: nid
@@ -65,6 +67,7 @@ display:
           group: 0
           expose:
             operator: false
+          plugin_id: boolean
       style:
         type: html_list
         options:
diff --git a/core/modules/views/config/views.view.comments_recent.yml b/core/modules/views/config/views.view.comments_recent.yml
index 57aab63..6560938 100644
--- a/core/modules/views/config/views.view.comments_recent.yml
+++ b/core/modules/views/config/views.view.comments_recent.yml
@@ -34,6 +34,7 @@ display:
           id: nid
           table: comment
           field: nid
+          plugin_id: standard
       fields:
         subject:
           id: subject
@@ -41,18 +42,21 @@ display:
           field: subject
           label: ''
           link_to_comment: 1
+          plugin_id: comment
         timestamp:
           id: timestamp
           table: comment
           field: changed
           label: ''
           date_format: 'time ago'
+          plugin_id: date
       sorts:
         timestamp:
           id: timestamp
           table: comment
           field: changed
           order: DESC
+          plugin_id: date
       filters:
         status_extra:
           id: status_extra
@@ -60,6 +64,7 @@ display:
           field: status_extra
           relationship: nid
           group: 0
+          plugin_id: node_status
       style:
         type: html_list
       row:
@@ -87,23 +92,27 @@ display:
           relationship: nid
           label: 'Reply to'
           link_to_node: 1
+          plugin_id: node
         timestamp:
           id: timestamp
           table: comment
           field: changed
           label: ''
           date_format: 'time ago'
+          plugin_id: date
         subject:
           id: subject
           table: comment
           field: subject
           label: ''
           link_to_comment: 1
+          plugin_id: comment
         comment:
           id: comment
           table: field_data_comment_body
           field: comment_body
           label: ''
+          plugin_id: field
       path: comments/recent
       style:
         type: html_list
diff --git a/core/modules/views/config/views.view.frontpage.yml b/core/modules/views/config/views.view.frontpage.yml
index 09c507d..04347f6 100644
--- a/core/modules/views/config/views.view.frontpage.yml
+++ b/core/modules/views/config/views.view.frontpage.yml
@@ -37,11 +37,13 @@ display:
           table: node
           field: sticky
           order: DESC
+          plugin_id: standard
         created:
           id: created
           table: node
           field: created
           order: DESC
+          plugin_id: date
       filters:
         promote:
           id: promote
@@ -51,6 +53,7 @@ display:
           group: 0
           expose:
             operator: false
+          plugin_id: boolean
         status:
           id: status
           table: node
@@ -59,6 +62,7 @@ display:
           group: 0
           expose:
             operator: false
+          plugin_id: boolean
   page_1:
     id: page_1
     display_title: Page
diff --git a/core/modules/views/config/views.view.glossary.yml b/core/modules/views/config/views.view.glossary.yml
index 6ac297a..8d49017 100644
--- a/core/modules/views/config/views.view.glossary.yml
+++ b/core/modules/views/config/views.view.glossary.yml
@@ -34,6 +34,7 @@ display:
           table: node
           field: title
           link_to_node: 1
+          plugin_id: node
         name:
           id: name
           table: users
@@ -41,12 +42,14 @@ display:
           label: Author
           link_to_user: 1
           relationship: uid
+          plugin_id: user_name
         changed:
           id: changed
           table: node
           field: changed
           label: 'Last update'
           date_format: long
+          plugin_id: date
       arguments:
         title:
           id: title
@@ -66,11 +69,13 @@ display:
           case: upper
           path_case: lower
           transform_dash: 0
+          plugin_id: string
       relationships:
         uid:
           id: uid
           table: node
           field: uid
+          plugin_id: standard
       style:
         type: table
         options:
@@ -143,6 +148,7 @@ display:
           case: upper
           path_case: lower
           transform_dash: 0
+          plugin_id: string
       displays:
         default: default
         page: page_1
diff --git a/core/modules/views/config/views.view.taxonomy_term.yml b/core/modules/views/config/views.view.taxonomy_term.yml
index 704bb67..5ee0c0a 100644
--- a/core/modules/views/config/views.view.taxonomy_term.yml
+++ b/core/modules/views/config/views.view.taxonomy_term.yml
@@ -31,11 +31,13 @@ display:
           table: node
           field: sticky
           order: DESC
+          plugin_id: standard
         created:
           id: created
           table: node
           field: created
           order: DESC
+          plugin_id: date
       arguments:
         term_node_tid_depth:
           id: term_node_tid_depth
@@ -54,6 +56,7 @@ display:
             type: taxonomy_term
           depth: '0'
           break_phrase: 1
+          plugin_id: taxonomy_index_tid_depth
         term_node_tid_depth_modifier:
           id: term_node_tid_depth_modifier
           table: node
@@ -64,6 +67,7 @@ display:
           summary:
             format: default_summary
           specify_validation: 1
+          plugin_id: taxonomy_index_tid_depth_modifier
       filters:
         status_extra:
           id: status_extra
@@ -72,6 +76,7 @@ display:
           group: 0
           expose:
             operator: false
+          plugin_id: node_status
       style:
         type: default
       row:
diff --git a/core/modules/views/config/views.view.tracker.yml b/core/modules/views/config/views.view.tracker.yml
index 253259f..04c8112 100644
--- a/core/modules/views/config/views.view.tracker.yml
+++ b/core/modules/views/config/views.view.tracker.yml
@@ -33,31 +33,37 @@ display:
           id: uid
           table: node
           field: uid
+          plugin_id: standard
       fields:
         type:
           id: type
           table: node
           field: type
+          plugin_id: node_type
         title:
           id: title
           table: node
           field: title
+          plugin_id: node
         name:
           id: name
           table: users
           field: name
           relationship: uid
           label: Author
+          plugin_id: user_name
         comment_count:
           id: comment_count
           table: node_comment_statistics
           field: comment_count
           label: Replies
+          plugin_id: numeric
         last_comment_timestamp:
           id: last_comment_timestamp
           table: node_comment_statistics
           field: last_comment_timestamp
           label: 'Last Post'
+          plugin_id: comment_last_timestamp
         timestamp:
           id: timestamp
           table: history
@@ -65,6 +71,7 @@ display:
           label: ''
           link_to_node: 0
           comments: 1
+          plugin_id: node_history_user_timestamp
         new_comments:
           id: new_comments
           table: node
@@ -73,11 +80,13 @@ display:
           hide_empty: true
           suffix: ' new'
           link_to_comment: 1
+          plugin_id: node_new_comments
       sorts:
         last_comment_timestamp:
           id: last_comment_timestamp
           table: node_comment_statistics
           field: last_comment_timestamp
+          plugin_id: date
       arguments:
         uid_touch:
           id: uid_touch
@@ -91,6 +100,7 @@ display:
           summary:
             format: default_summary
           specify_validation: 1
+          plugin_id: argument_comment_user_uid
       filters:
         status:
           id: status
@@ -100,6 +110,7 @@ display:
           group: 0
           expose:
             operator: false
+          plugin_id: boolean
       style:
         type: table
         options:
diff --git a/core/modules/views/lib/Drupal/views/Tests/ViewStorageTest.php b/core/modules/views/lib/Drupal/views/Tests/ViewStorageTest.php
index ec36ae1..7357d96 100644
--- a/core/modules/views/lib/Drupal/views/Tests/ViewStorageTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/ViewStorageTest.php
@@ -67,6 +67,12 @@ public static function getInfo() {
     );
   }
 
+  protected function setUp() {
+    parent::setUp();
+
+    $this->enableViewsTestModule();
+  }
+
   /**
    * Tests CRUD operations.
    */
@@ -318,9 +324,10 @@ protected function displayMethodTests() {
     $expected_items[$id1] = $expected_item = array(
       'id' => 'id',
       'table' => 'views_test_data',
-      'field' => 'id'
+      'field' => 'id',
+      'plugin_id' => 'numeric',
     );
-    $this->assertEqual($item1, $expected_item);
+    $this->assertArrayEqual($item1, $expected_item);
 
     $options = array(
       'alter' => array(
@@ -332,12 +339,13 @@ protected function displayMethodTests() {
     $expected_items[$id2] = $expected_item = array(
       'id' => 'name',
       'table' => 'views_test_data',
-      'field' => 'name'
+      'field' => 'name',
+      'plugin_id' => 'standard',
     ) + $options;
-    $this->assertEqual($item2, $expected_item);
+    $this->assertArrayEqual($item2, $expected_item);
 
     // Tests the expected fields from the previous additions.
-    $this->assertEqual($view->getItems('field', $display_id), $expected_items);
+    $this->assertArrayEqual($view->getItems('field', $display_id), $expected_items);
 
     // Alter an existing item via setItem and check the result via getItem
     // and getItems.
@@ -348,8 +356,8 @@ protected function displayMethodTests() {
     ) + $item1;
     $expected_items[$id1] = $item;
     $view->setItem($display_id, 'field', $id1, $item);
-    $this->assertEqual($view->getItem($display_id, 'field', 'id'), $item);
-    $this->assertEqual($view->getItems('field', $display_id), $expected_items);
+    $this->assertArrayEqual($view->getItem($display_id, 'field', 'id'), $item);
+    $this->assertArrayEqual($view->getItems('field', $display_id), $expected_items);
 
     // Test removeItem method.
     unset($expected_items[$id2]);
diff --git a/core/modules/views/lib/Drupal/views/Tests/ViewTestBase.php b/core/modules/views/lib/Drupal/views/Tests/ViewTestBase.php
index 93685aa..34bd6ed 100644
--- a/core/modules/views/lib/Drupal/views/Tests/ViewTestBase.php
+++ b/core/modules/views/lib/Drupal/views/Tests/ViewTestBase.php
@@ -60,6 +60,35 @@ protected function enableViewsTestModule() {
   }
 
   /**
+   * Asserts that two arrays are the same, but not checking the order of it.
+   *
+   * @param array $first
+   *   The first value to check.
+   * @param array $second
+   *   The second value to check.
+   * @param string $message
+   *   (optional) A message to display with the assertion. Do not translate
+   *   messages: use format_string() to embed variables in the message text, not
+   *   t(). If left blank, a default message will be displayed.
+   * @param string $group
+   *   (optional) The group this message is in, which is displayed in a column
+   *   in test output. Use 'Debug' to indicate this is debugging output. Do not
+   *   translate this string. Defaults to 'Other'; most tests do not override
+   *   this default.
+   * @return bool
+   *   TRUE on pass, FALSE on fail.
+   */
+  protected function assertArrayEqual(array $first, array $second, $message = '', $group = 'Other') {
+    $diff = array_diff($first, $second);
+    if (empty($diff)) {
+      $this->assert(TRUE, $message ? $message : format_string('Value @first is equal to value @second.', array('@first' => var_export($first, TRUE), '@second' => var_export($second, TRUE))), $group);
+    }
+    else {
+      $this->assert(FALSE, $message ? $message : format_string('The first value differs from the second by @diff.', array('@diff' => var_export($diff, TRUE))));
+    }
+  }
+
+  /**
    * Verifies that a result set returned by a View matches expected values.
    *
    * The comparison is done on the string representation of the columns of the
diff --git a/core/modules/views/lib/Drupal/views/ViewExecutable.php b/core/modules/views/lib/Drupal/views/ViewExecutable.php
index 7447488..fa48ba4 100644
--- a/core/modules/views/lib/Drupal/views/ViewExecutable.php
+++ b/core/modules/views/lib/Drupal/views/ViewExecutable.php
@@ -1989,9 +1989,6 @@ public function addItem($display_id, $type, $table, $field, $options = array(),
     // If the desired type is not found, use the original value directly.
     $handler_type = !empty($types[$type]['type']) ? $types[$type]['type'] : $type;
 
-    // @todo This variable is never used.
-    $handler = views_get_handler($table, $field, $handler_type);
-
     $fields[$id] = array(
       'id' => $id,
       'table' => $table,
@@ -2000,6 +1997,12 @@ public function addItem($display_id, $type, $table, $field, $options = array(),
 
     $this->displayHandlers->get($display_id)->setOption($types[$type]['plural'], $fields);
 
+    // Load the plugin ID if available.
+    $data = drupal_container()->get('views.views_data')->get($table);
+    if (isset($data[$field][$handler_type]['id'])) {
+      $fields[$id]['plugin_id'] = $data[$field][$handler_type]['id'];
+    }
+
     return $id;
   }
 
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml
index 95ebe54..308f59a 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml
@@ -16,6 +16,7 @@ display:
           summary:
             format: default_summary
           table: node
+          plugin_id: node_type
       cache:
         type: none
       exposed_form:
@@ -36,6 +37,7 @@ display:
           id: nid
           link_to_node: '0'
           table: node
+          plugin_id: node
       group_by: '1'
       pager:
         type: some
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_alias.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_alias.yml
index e1e4478..62fc858 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_alias.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_alias.yml
@@ -31,6 +31,7 @@ display:
           link_to_user: '1'
           overwrite_anonymous: '0'
           table: users
+          plugin_id: user_name
       filters:
         uid_raw:
           admin_label: ''
@@ -70,6 +71,7 @@ display:
             max: ''
             min: ''
             value: '1'
+          plugin_id: numeric
       pager:
         type: full
       query:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_argument_default_current_user.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_argument_default_current_user.yml
index 6ba4d7f..5e2854e 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_argument_default_current_user.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_argument_default_current_user.yml
@@ -13,6 +13,7 @@ display:
           field: uid
           id: uid
           table: node
+          plugin_id: numeric
       cache:
         type: none
       exposed_form:
@@ -33,6 +34,7 @@ display:
           id: title
           link_to_node: '0'
           table: node
+          plugin_id: node
       pager:
         options:
           id: '0'
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_argument_default_fixed.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_argument_default_fixed.yml
index ea0540c..d403918 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_argument_default_fixed.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_argument_default_fixed.yml
@@ -16,6 +16,7 @@ display:
           must_not_be: '0'
           style_plugin: default_summary
           table: views
+          plugin_id: 'null'
       cache:
         type: none
       exposed_form:
@@ -36,6 +37,7 @@ display:
           id: title
           link_to_node: '0'
           table: node
+          plugin_id: node
       pager:
         options:
           id: '0'
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_attachment_ui.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_attachment_ui.yml
index d114623..6dbb100 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_attachment_ui.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_attachment_ui.yml
@@ -24,6 +24,7 @@ display:
           id: id
           table: views_test_data
           field: id
+          plugin_id: numeric
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_click_sort.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_click_sort.yml
index f212edc..40f7656 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_click_sort.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_click_sort.yml
@@ -10,14 +10,17 @@ display:
           id: id
           table: views_test_data
           field: id
+          plugin_id: numeric
         name:
           id: name
           table: views_test_data
           field: name
+          plugin_id: string
         created:
           id: created
           table: views_test_data
           field: created
+          plugin_id: date
       display_options:
         access:
           type: none
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_destroy.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_destroy.yml
index 800179f..f7df985 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_destroy.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_destroy.yml
@@ -36,18 +36,21 @@ display:
           id: created_day
           style_plugin: default_summary
           table: node
+          plugin_id: node_created_day
         created_fulldate:
           default_argument_type: fixed
           field: created_fulldate
           id: created_fulldate
           style_plugin: default_summary
           table: node
+          plugin_id: node_created_fulldate
         created_month:
           default_argument_type: fixed
           field: created_month
           id: created_month
           style_plugin: default_summary
           table: node
+          plugin_id: node_created_month
       cache:
         type: none
       empty:
@@ -56,11 +59,13 @@ display:
           field: area
           id: area
           table: views
+          plugin_id: text
         area_1:
           empty: '0'
           field: area
           id: area_1
           table: views
+          plugin_id: text
       exposed_form:
         type: basic
       fields:
@@ -68,49 +73,59 @@ display:
           field: created
           id: created
           table: node
+          plugin_id: date
         nid:
           field: nid
           id: nid
           table: node
+          plugin_id: node
         path:
           field: path
           id: path
           table: node
+          plugin_id: node_path
       filters:
         nid:
           field: nid
           id: nid
           table: node
+          plugin_id: numeric
         status:
           field: status
           id: status
           table: node
+          plugin_id: boolean
         title:
           field: title
           id: title
           table: node
+          plugin_id: string
       footer:
         area:
           empty: '0'
           field: area
           id: area
           table: views
+          plugin_id: text
         area_1:
           empty: '0'
           field: area
           id: area_1
           table: views
+          plugin_id: text
       header:
         area:
           empty: '0'
           field: area
           id: area
           table: views
+          plugin_id: text
         area_1:
           empty: '0'
           field: area
           id: area_1
           table: views
+          plugin_id: text
       pager:
         type: full
       query:
@@ -120,25 +135,30 @@ display:
           field: cid
           id: cid
           table: node
+          plugin_id: standard
         pid:
           field: pid
           id: pid
           table: comment
           relationship: cid
+          plugin_id: standard
         uid:
           field: uid
           id: uid
           table: comment
           relationship: cid
+          plugin_id: standard
       sorts:
         last_comment_name:
           field: last_comment_name
           id: last_comment_name
           table: node_comment_statistics
+          plugin_id: comment_ncs_last_comment_name
         last_comment_timestamp:
           field: last_comment_timestamp
           id: last_comment_timestamp
           table: node_comment_statistics
+          plugin_id: date
       style:
         type: default
       row:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_display.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_display.yml
index b5c70f4..b368ce5 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_display.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_display.yml
@@ -15,6 +15,7 @@ display:
       field:
         title:
           link_to_node: '1'
+          plugin_id: node
       pager:
         options:
           items_per_page: '5'
@@ -44,6 +45,7 @@ display:
           field: title
           id: title
           table: node
+          plugin_id: node
       filters:
         status:
           field: status
@@ -51,6 +53,7 @@ display:
           id: status
           table: node
           value: '1'
+          plugin_id: boolean
       pager:
         options:
           items_per_page: '10'
@@ -68,6 +71,7 @@ display:
           id: created
           order: DESC
           table: node
+          plugin_id: date
       style_plugin: default
       title: 'Test Display'
     display_plugin: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_dropbutton.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_dropbutton.yml
index b985e0b..c9034c4 100755
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_dropbutton.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_dropbutton.yml
@@ -31,6 +31,7 @@ display:
           id: nid
           table: node
           field: nid
+          plugin_id: node
           relationship: none
           group_type: group
           admin_label: ''
@@ -80,6 +81,7 @@ display:
           id: title
           table: node
           field: title
+          plugin_id: node
           label: ''
           alter:
             alter_text: '0'
@@ -97,6 +99,7 @@ display:
           id: nothing
           table: views
           field: nothing
+          plugin_id: custom
           relationship: none
           group_type: group
           admin_label: ''
@@ -146,6 +149,7 @@ display:
           table: views
           field: dropbutton
           relationship: none
+          plugin_id: dropbutton
           group_type: group
           admin_label: ''
           label: Dropbutton
@@ -200,6 +204,7 @@ display:
           table: node
           field: status
           id: status
+          plugin_id: boolean
           expose:
             operator: '0'
           group: '1'
@@ -209,6 +214,7 @@ display:
           table: node
           field: created
           order: DESC
+          plugin_id: date
       title: test_dropbutton
   page_1:
     display_plugin: page
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_example_area.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_example_area.yml
index 39fcb4e..27b7008 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_example_area.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_example_area.yml
@@ -14,16 +14,19 @@ display:
           field: test_example
           id: test_example
           table: views
+          plugin_id: test_example
       footer:
         test_example:
           field: test_example
           id: test_example
           table: views
+          plugin_id: test_example
       empty:
         test_example:
           field: test_example
           id: test_example
           table: views
+          plugin_id: test_example
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_executable_displays.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_executable_displays.yml
index 18031d8..8dc7495 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_executable_displays.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_executable_displays.yml
@@ -15,7 +15,7 @@ display:
     position: '1'
   page_2:
     display_plugin: page
-    display_title: Page 2
+    display_title: 'Page 2'
     id: page_2
     position: '2'
 human_name: ''
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_exposed_admin_ui.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
index 92b775f..53bca29 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
@@ -22,6 +22,7 @@ display:
           field: type
           id: type
           table: node
+          plugin_id: node_type
       pager:
         type: full
       sorts:
@@ -29,6 +30,7 @@ display:
           field: created
           id: created
           table: node
+          plugin_id: date
       style:
         type: default
       row:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_feed_display.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_feed_display.yml
index bf58c2a..1b30d58 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_feed_display.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_feed_display.yml
@@ -29,6 +29,7 @@ display:
           label: ''
           link_to_node: '1'
           table: node
+          plugin_id: node
       filters:
         status:
           expose:
@@ -38,6 +39,7 @@ display:
           id: status
           table: node
           value: '1'
+          plugin_id: boolean
       pager:
         options:
           items_per_page: '10'
@@ -56,6 +58,7 @@ display:
           id: created
           order: DESC
           table: node
+          plugin_id: date
       style:
         type: default
       title: test_feed_display
@@ -65,7 +68,7 @@ display:
     position: '0'
   feed:
     display_options:
-      displays: {}
+      displays: {  }
       pager:
         type: some
       path: test-feed-display.xml
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_classes.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_classes.yml
index a3a118f..fea8e8a 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_classes.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_classes.yml
@@ -14,6 +14,7 @@ display:
           id: id
           table: views_test_data
           field: id
+          plugin_id: numeric
       style:
         type: html_list
     display_plugin: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_get_entity.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_get_entity.yml
index f39d416..2951397 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_get_entity.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_get_entity.yml
@@ -16,16 +16,19 @@ display:
           field: cid
           id: cid
           table: comment
+          plugin_id: comment
         nid:
           field: nid
           id: nid
           table: node
           relationship: nid
+          plugin_id: node
         uid:
           field: uid
           id: uid
           table: users
           relationship: uid
+          plugin_id: user
       filter_groups:
         groups: {  }
         operator: AND
@@ -40,6 +43,7 @@ display:
           id: nid
           required: '1'
           table: comment
+          plugin_id: standard
         uid:
           admin_label: ''
           field: uid
@@ -49,6 +53,7 @@ display:
           relationship: nid
           required: '0'
           table: node
+          plugin_id: standard
       sorts: {  }
       style:
         type: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_output.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_output.yml
index b6275ce..665561f 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_output.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_output.yml
@@ -14,6 +14,7 @@ display:
           id: name
           table: views_test_data
           field: name
+          plugin_id: string
       style:
         type: html_list
     display_plugin: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_tokens.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_tokens.yml
index 18afed9..3cd3255 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_tokens.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_tokens.yml
@@ -20,18 +20,22 @@ display:
           id: name
           table: views_test_data
           field: name
+          plugin_id: string
         name_1:
           id: name_1
           table: views_test_data
           field: name
+          plugin_id: string
         name_2:
           id: name_2
           table: views_test_data
           field: name
+          plugin_id: string
         job:
           id: job
           table: views_test_data
           field: job
+          plugin_id: string
       style:
         type: default
       row:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_type.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_type.yml
index a031aab..5cbbe86 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_type.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_type.yml
@@ -10,6 +10,7 @@ display:
           field: type
           id: type
           table: node
+          plugin_id: node_type
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter.yml
index aedaf23..799e76b 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter.yml
@@ -19,11 +19,13 @@ display:
           id: name
           label: ''
           table: views_test_data
+          plugin_id: string
       filters:
         type:
           field: name
           id: test_filter
           table: views_test_data
+          plugin_id: string
       query:
         type: views_query
       use_more_always: '0'
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_date_between.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_date_between.yml
index 9a2e16d..ca3b2f3 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_date_between.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_date_between.yml
@@ -16,11 +16,13 @@ display:
           field: nid
           id: nid
           table: node
+          plugin_id: node
       filters:
         created:
           field: created
           id: created
           table: node
+          plugin_id: date
       pager:
         type: full
       query:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_group_override.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_group_override.yml
index a4de3cb..7c0c700 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_group_override.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_group_override.yml
@@ -20,6 +20,7 @@ display:
           id: title
           label: ''
           table: node
+          plugin_id: node
       filters:
         status:
           expose:
@@ -29,6 +30,7 @@ display:
           id: status
           table: node
           value: '1'
+          plugin_id: boolean
       pager:
         type: full
       query:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_groups.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_groups.yml
index de084bc..ab47173 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_groups.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_groups.yml
@@ -20,6 +20,7 @@ display:
           id: title
           label: ''
           table: node
+          plugin_id: node
       filter_groups:
         groups:
           1: AND
@@ -32,6 +33,7 @@ display:
           table: node
           value:
             value: '1'
+          plugin_id: numeric
         nid_1:
           field: nid
           group: '2'
@@ -39,6 +41,7 @@ display:
           table: node
           value:
             value: '2'
+          plugin_id: numeric
         status:
           expose:
             operator: '0'
@@ -47,6 +50,7 @@ display:
           id: status
           table: node
           value: '1'
+          plugin_id: boolean
       pager:
         options:
           items_per_page: '10'
@@ -59,6 +63,7 @@ display:
           id: created
           order: DESC
           table: node
+          plugin_id: date
       title: test_filter_groups
       style:
         type: default
@@ -85,6 +90,7 @@ display:
           table: node
           value:
             value: '1'
+          plugin_id: numeric
         nid_1:
           field: nid
           group: '2'
@@ -92,6 +98,7 @@ display:
           table: node
           value:
             value: '2'
+          plugin_id: numeric
         status:
           expose:
             operator: '0'
@@ -100,6 +107,7 @@ display:
           id: status
           table: node
           value: '1'
+          plugin_id: boolean
       path: test-filter-groups
     display_plugin: page
     display_title: Page
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
index 6cfe7e1..9fdc078 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
@@ -23,6 +23,7 @@ display:
           field: type
           id: type
           table: node
+          plugin_id: string
       pager:
         type: full
       style:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_get_attach_displays.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_get_attach_displays.yml
index 89b6ce1..63534a9 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_get_attach_displays.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_get_attach_displays.yml
@@ -36,6 +36,7 @@ display:
           id: title
           table: node
           field: title
+          plugin_id: node
           label: ''
           alter:
             alter_text: '0'
@@ -55,6 +56,7 @@ display:
           table: node
           field: status
           id: status
+          plugin_id: boolean
           expose:
             operator: '0'
           group: '1'
@@ -64,6 +66,7 @@ display:
           table: node
           field: created
           order: DESC
+          plugin_id: date
       title: test_get_attach_displays
   page_1:
     display_plugin: page
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_glossary.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_glossary.yml
index 71dbbc5..1050f23 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_glossary.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_glossary.yml
@@ -20,6 +20,7 @@ display:
           summary_options:
             items_per_page: '25'
           table: node
+          plugin_id: string
       cache:
         type: none
       exposed_form:
@@ -30,6 +31,7 @@ display:
           id: title
           label: ''
           table: node
+          plugin_id: node
       pager:
         type: full
       query:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml
index 22e9a5d..c97e775 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml
@@ -28,6 +28,7 @@ display:
           id: nid
           link_to_node: '0'
           table: node
+          plugin_id: node
         type:
           alter:
             alter_text: '0'
@@ -43,6 +44,7 @@ display:
           id: type
           link_to_node: '0'
           table: node
+          plugin_id: node_type
       group_by: '1'
       pager:
         type: some
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml
index 446c6d8..bb256ca 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml
@@ -27,6 +27,7 @@ display:
           id: type
           link_to_node: '0'
           table: node
+          plugin_id: node_type
       filters:
         nid:
           field: nid
@@ -36,6 +37,7 @@ display:
           table: node
           value:
             value: '3'
+          plugin_id: numeric
       group_by: '1'
       pager:
         type: some
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_handler_relationships.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_handler_relationships.yml
index b60fa39..efa8ccc 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_handler_relationships.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_handler_relationships.yml
@@ -10,16 +10,19 @@ display:
           id: title
           table: node
           field: title
+          plugin_id: node
       relationships:
         cid:
           id: cid
           table: node
           field: cid
+          plugin_id: standard
         nid:
           id: nid
           table: comment
           field: nid
           relationship: cid
+          plugin_id: standard
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_handler_test_access.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_handler_test_access.yml
index 4063a89..11f590a 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_handler_test_access.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_handler_test_access.yml
@@ -8,37 +8,45 @@ display:
           id: access_callback
           table: views_test_data
           field: access_callback
+          plugin_id: numeric
         access_callback_arguments:
           id: access_callback_arguments
           table: views_test_data
           field: access_callback_arguments
+          plugin_id: numeric
       filters:
         access_callback:
           id: access_callback
           table: views_test_data
           field: access_callback
+          plugin_id: numeric
         access_callback_arguments:
           id: access_callback_arguments
           table: views_test_data
           field: access_callback_arguments
+          plugin_id: numeric
       arguments:
         access_callback:
           id: access_callback
           table: views_test_data
           field: access_callback
+          plugin_id: numeric
         access_callback_arguments:
           id: access_callback_arguments
           table: views_test_data
           field: access_callback_arguments
+          plugin_id: numeric
       sorts:
         access_callback:
           id: access_callback
           table: views_test_data
           field: access_callback
+          plugin_id: standard
         access_callback_arguments:
           id: access_callback_arguments
           table: views_test_data
           field: access_callback_arguments
+          plugin_id: standard
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_history.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_history.yml
index ba96ad1..a22b001 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_history.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_history.yml
@@ -29,6 +29,7 @@ display:
           id: title
           table: node
           field: title
+          plugin_id: node
           label: ''
           alter:
             alter_text: '0'
@@ -46,6 +47,7 @@ display:
           id: timestamp
           table: history
           field: timestamp
+          plugin_id: history_user_timestamp
           relationship: none
           group_type: group
           admin_label: ''
@@ -97,6 +99,7 @@ display:
           value: '1'
           table: node
           field: status
+          plugin_id: boolean
           id: status
           expose:
             operator: '0'
@@ -106,6 +109,7 @@ display:
           id: created
           table: node
           field: created
+          plugin_id: date
           order: DESC
   page_1:
     display_plugin: page
@@ -128,6 +132,7 @@ display:
           id: status
           table: node
           field: status
+          plugin_id: boolean
           relationship: none
           group_type: group
           admin_label: ''
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_mini_pager.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_mini_pager.yml
index 83c7a70..e673912 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_mini_pager.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_mini_pager.yml
@@ -64,6 +64,7 @@ display:
           hide_empty: '0'
           empty_zero: '0'
           link_to_node: '1'
+          plugin_id: node
       filters: {  }
       sorts: {  }
       title: test_mini_pager
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_preview.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_preview.yml
index 0c2eb5f..0a34988 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_preview.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_preview.yml
@@ -37,6 +37,7 @@ display:
           admin_label: ''
           label: Name
           exclude: '0'
+          plugin_id: standard
       filters: {  }
       sorts: {  }
       filter_groups:
@@ -54,6 +55,7 @@ display:
           default_action: ignore
           title_enable: '0'
           title: ''
+          plugin_id: numeric
 human_name: test_preview
 module: views
 id: test_preview
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_redirect_view.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_redirect_view.yml
index 31cfe08..4afdfa3 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_redirect_view.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_redirect_view.yml
@@ -49,6 +49,7 @@ display:
           hide_empty: '0'
           empty_zero: '0'
           link_to_node: '1'
+          plugin_id: node
       filters:
         status:
           value: '1'
@@ -58,12 +59,14 @@ display:
           expose:
             operator: '0'
           group: '1'
+          plugin_id: boolean
       sorts:
         created:
           id: created
           table: node
           field: created
           order: DESC
+          plugin_id: date
       title: test_redirect_view
   page_1:
     display_plugin: page
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_reset_button.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_reset_button.yml
index e66e2fc..f7b07ec 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_reset_button.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_reset_button.yml
@@ -24,6 +24,7 @@ display:
           field: type
           id: type
           table: node
+          plugin_id: node_type
       pager:
         type: full
       query:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_style_mapping.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_style_mapping.yml
index a4339fc..0a877e9 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_style_mapping.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_style_mapping.yml
@@ -16,16 +16,19 @@ display:
           id: age
           relationship: none
           table: views_test_data
+          plugin_id: numeric
         job:
           field: job
           id: job
           relationship: none
           table: views_test_data
+          plugin_id: string
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
+          plugin_id: string
       pager:
         options:
           offset: '0'
@@ -38,6 +41,7 @@ display:
           order: ASC
           relationship: none
           table: views_test_data
+          plugin_id: numeric
       style:
         type: mapping_test
         options:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_tokens.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_tokens.yml
index 58c8433..e43f75a 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_tokens.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_tokens.yml
@@ -19,16 +19,19 @@ display:
           id: age
           relationship: none
           table: views_test_data
+          plugin_id: numeric
         id:
           field: id
           id: id
           relationship: none
           table: views_test_data
+          plugin_id: numeric
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
+          plugin_id: string
       pager:
         type: full
         options:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_view.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_view.yml
index 7200766..3f673f2 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_view.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_view.yml
@@ -16,16 +16,19 @@ display:
           id: age
           relationship: none
           table: views_test_data
+          plugin_id: numeric
         id:
           field: id
           id: id
           relationship: none
           table: views_test_data
+          plugin_id: numeric
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
+          plugin_id: string
       pager:
         options:
           offset: '0'
@@ -38,6 +41,7 @@ display:
           order: ASC
           relationship: none
           table: views_test_data
+          plugin_id: numeric
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml
index 515aa6a..1535a97 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml
@@ -17,6 +17,7 @@ display:
           table: views
           validate:
             type: numeric
+          plugin_id: 'null'
       cache:
         type: none
       exposed_form:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_argument_validate_php.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_argument_validate_php.yml
index 3ec9cb2..2a3fa35 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_argument_validate_php.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_argument_validate_php.yml
@@ -17,6 +17,7 @@ display:
           table: views
           validate:
             type: php
+          plugin_id: 'null'
       cache:
         type: none
       exposed_form:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_handler_weight.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_handler_weight.yml
index ebcfd0e..5e6c1ce 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_handler_weight.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_handler_weight.yml
@@ -16,16 +16,19 @@ display:
           id: id
           relationship: none
           table: views_test_data
+          plugin_id: numeric
         age:
           field: age
           id: age
           relationship: none
           table: views_test_data
+          plugin_id: numeric
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
+          plugin_id: string
       pager:
         options:
           offset: '0'
@@ -38,21 +41,25 @@ display:
           order: ASC
           relationship: none
           table: views_test_data
+          plugin_id: numeric
         age:
           field: age
           id: standard
           order: ASC
           relationship: none
           table: views_test_data
+          plugin_id: numeric
       filters:
         name:
           field: name
           id: string
           table: views_test_data
+          plugin_id: string
         age:
           field: age
           id: numeric
           table: views_test_data
+          plugin_id: numeric
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml
index 105a3f8..5a45f91 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml
@@ -27,6 +27,7 @@ display:
           id: title
           link_to_node: '0'
           table: node
+          plugin_id: node
       pager:
         options:
           id: '0'
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_render.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_render.yml
index c63da26..9447185 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_render.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_render.yml
@@ -16,16 +16,19 @@ display:
           id: age
           relationship: none
           table: views_test_data
+          plugin_id: numeric
         id:
           field: id
           id: id
           relationship: none
           table: views_test_data
+          plugin_id: numeric
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
+          plugin_id: string
       pager:
         options:
           offset: '0'
@@ -38,6 +41,7 @@ display:
           order: ASC
           relationship: none
           table: views_test_data
+          plugin_id: standard
       style:
         type: table
     display_plugin: default
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_storage.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_storage.yml
index ab0c603..2105453 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_view_storage.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_view_storage.yml
@@ -17,6 +17,7 @@ display:
           id: id
           relationship: none
           table: views_test_data
+          plugin_id: numeric
       sorts:
         id:
           field: id
@@ -24,6 +25,7 @@ display:
           order: ASC
           relationship: none
           table: views_test_data
+          plugin_id: standard
     display_plugin: default
     display_title: Master
     id: default
