@@ -1586,7 +1586,7 @@ def render_seed(self) -> t.Iterator[QueryOrDF]:
15861586 string_columns = []
15871587
15881588 columns_to_types = self .columns_to_types_ or {}
1589- column_names = set (columns_to_types )
1589+ column_names_to_check = set (columns_to_types )
15901590 for name , tpe in columns_to_types .items ():
15911591 if tpe .this in (exp .DataType .Type .DATE , exp .DataType .Type .DATE32 ):
15921592 date_columns .append (name )
@@ -1598,12 +1598,6 @@ def render_seed(self) -> t.Iterator[QueryOrDF]:
15981598 string_columns .append (name )
15991599
16001600 for df in self ._reader .read (batch_size = self .kind .batch_size ):
1601- missing_columns = column_names - set (df .columns )
1602- if missing_columns :
1603- raise_config_error (
1604- f"Seed model '{ self .name } ' has missing columns: { missing_columns } " , self ._path
1605- )
1606-
16071601 rename_dict = {}
16081602 for column in columns_to_types :
16091603 if column not in df :
@@ -1612,6 +1606,14 @@ def render_seed(self) -> t.Iterator[QueryOrDF]:
16121606 rename_dict [normalized_name ] = column
16131607 if rename_dict :
16141608 df .rename (columns = rename_dict , inplace = True )
1609+ # These names have already been checked
1610+ column_names_to_check -= set (rename_dict )
1611+
1612+ missing_columns = column_names_to_check - set (df .columns )
1613+ if missing_columns :
1614+ raise_config_error (
1615+ f"Seed model '{ self .name } ' has missing columns: { missing_columns } " , self ._path
1616+ )
16151617
16161618 # convert all date/time types to native pandas timestamp
16171619 for column in [* date_columns , * datetime_columns ]:
0 commit comments