Skip to content

eliminate_ctes raises OptimizeError on Snowflake GENERATOR() without explicit alias #7194

@ricky-ho

Description

@ricky-ho

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: 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions