'Initialize the header Column objects from the table ``lines``.
This is a specialized get_cols for the RDB type:
Line 0: RDB col names
Line 1: RDB col definitions
Line 2+: RDB data rows
Parameters
lines : list
List of table lines
Returns
None'

def get_cols(self, lines):

    header_lines = self.process_lines(lines)
    header_vals_list = [hl for (_, hl) in zip(range(2), self.splitter(header_lines))]
    if (len(header_vals_list) != 2):
        raise ValueError('RDB    header    requires    2    lines')
    (self.names, raw_types) = header_vals_list
    if (len(self.names) != len(raw_types)):
        raise ValueError('RDB    header    mismatch    between    number    of    column    names    and    column    types')
    if any(((not re.match('\\d*(N|S)$', x, re.IGNORECASE)) for x in raw_types)):
        raise ValueError('RDB    types    definitions    do    not    all    match    [num](N|S):    {}'.format(raw_types))
    self._set_cols_from_names()
    for (col, raw_type) in zip(self.cols, raw_types):
        col.raw_type = raw_type
        col.type = self.get_col_type(col)
