Issue:
eliminate_ctes raises OptimizeError: Alias already used: (with an empty-string alias) when the SQL contains a Snowflake GENERATOR() table function without an explicit alias (e.g., SELECT 1 FROM TABLE(GENERATOR(10))).
This seemed to be working in a previous version 28.5.0 but when I upgraded to 28.10.1, the error started happening.
Fully reproducible code snippet
import sqlglot
from sqlglot.optimizer import eliminate_ctes
sql = "SELECT 1 FROM TABLE(GENERATOR(10))"
parsed = sqlglot.parse_one(sql, read="snowflake")
eliminate_ctes.eliminate_ctes(parsed)
# sqlglot.errors.OptimizeError: Alias already used:
sql = "SELECT 1 FROM GENERATOR(10)"
parsed = sqlglot.parse_one(sql, read="snowflake")
eliminate_ctes.eliminate_ctes(parsed)
# sqlglot.errors.OptimizeError: Alias already used: