code: def read_raw_table(self, table):
          
          fields = self.table_relations(table) if self.cast else None
          field_names = [f.name for f in self.table_relations(table)]
          field_len = len(field_names)
          table_path = os.path.join(self.root, table)
          with _open_table(table_path, self.encoding) as tbl:
              for line in tbl:
                  cols = decode_row(line, fields=fields)
                  if len(cols) != field_len:
                      # should this throw an exception instead?
                      logging.error('Number of stored fields ({}) '
                                    'differ from the expected number({}); '
                                    'fields may be misaligned!'
                                    .format(len(cols), field_len))
                  row = OrderedDict(zip(field_names, cols))
                  yield row
docs: Yield rows in the [incr tsdb()] *table*. A row is a dictionary
          mapping column names to values. Data from a profile is decoded
          by decode_row(). No filters or applicators are used.