def _get_column_name_to_type_mapping()

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