in evalbench/databases/bigquery.py [0:0]
def _get_column_name_to_type_mapping(self, sql_statements: List[str]) -> Dict[str, Dict[str, str]]:
schema_mapping = {}
for statement in sql_statements:
table_match = re.search(r'CREATE TABLE\s+`{{dataset}}\.(\w+)`', statement)
if not table_match:
continue
table_name = table_match.group(1)
column_section_match = re.search(r'\(\n(.*?)\n\)', statement, re.DOTALL)
if not column_section_match:
continue
columns_raw = column_section_match.group(1).split(",\n")
column_type_mapping = {}
for col in columns_raw:
if col.strip().startswith("PRIMARY KEY"):
continue
col_parts = col.strip().split()
if len(col_parts) >= 2:
column_name = col_parts[0]
column_type = col_parts[1]
column_type_mapping[column_name] = column_type
schema_mapping[table_name] = column_type_mapping
return schema_mapping