Lookup cf_col_rows once, with a default value

fixes a problem trying to iterate 'None' when the cf has no rows in col_rows
Disambiguate row parameter in list comprehensions from function argument
Disambiguate row parameter in list comprehensions from function argument