Given a table, return an iterator of key/value pairs for stats
        column names/values.

def _get_stats_columns(cls, table, relation_type):
        """Given a table, return an iterator of key/value pairs for stats
        column names/values.
        """
        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)