code: def _get_stats_columns(cls, table, relation_type):
          
          column_names = cls._get_stats_column_names()
  
          # agate does not handle the array of column names gracefully
          clustering_value = None
          if table.clustering_fields is not None:
              clustering_value = ','.join(table.clustering_fields)
          # cast num_bytes/num_rows to str before they get to agate, or else
          # agate will incorrectly decide they are booleans.
          column_values = (
              'Number of bytes',
              str(table.num_bytes),
              'The number of bytes this table consumes',
              relation_type == 'table',
  
              'Number of rows',
              str(table.num_rows),
              'The number of rows in this table',
              relation_type == 'table',
  
              'Location',
              table.location,
              'The geographic location of this table',
              True,
  
              'Partitioning Type',
              table.partitioning_type,
              'The partitioning type used for this table',
              relation_type == 'table',
  
              'Clustering Fields',
              clustering_value,
              'The clustering fields for this table',
              relation_type == 'table',
          )
          return zip(column_names, column_values)
docs: Given a table, return an iterator of key/value pairs for stats
          column names/values.