def generate_ddl()

in evalbench/databases/util.py [0:0]


def generate_ddl(data, db_name, comments_data=None):
    ddl_statements = []
    current_table = None
    if comments_data is None:
        comments_data = dict()

    for table_name, column_name, data_type in data:
        if table_name != current_table:
            if current_table is not None:
                ddl_statements.append(";\n")  # End previous table statement
            ddl_statements.append(f"CREATE TABLE {table_name} (\n")
            current_table = table_name

        column_comment = None
        if len(comments_data) > 0:
            try:
                column_comment = comments_data[db_name][table_name][column_name][
                    "column_description"
                ]
            except Exception as e:
                print(e)

        if column_comment is None:
            ddl_statements.append(f"    {column_name} {data_type},\n")
        else:
            ddl_statements.append(
                f"    {column_name} {data_type}, -- {column_comment} \n"
            )

    if current_table is not None:
        ddl_statements.append(");\n")  # End the last table statement

    return "".join(ddl_statements)