Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions mcp_server_snowflake/semantic_manager/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,11 +185,12 @@ def write_semantic_view_query(
bindvars = [f"{database_name}.{schema_name}.{view_name}"]

# Add clauses in order (affects output column order)
# Use AS alias to preserve column names when using bind variables
if dimensions:
statement += " DIMENSIONS"
for index, expr in enumerate(dimensions):
is_last = index == len(dimensions) - 1
statement += " identifier(?)"
statement += f" identifier(?) AS {expr.name}"
bindvars.extend([f"{expr.table}.{expr.name}"])
if not is_last:
statement += ","
Expand All @@ -198,7 +199,7 @@ def write_semantic_view_query(
statement += " METRICS"
for index, expr in enumerate(metrics):
is_last = index == len(metrics) - 1
statement += " identifier(?)"
statement += f" identifier(?) AS {expr.name}"
bindvars.extend([f"{expr.table}.{expr.name}"])
if not is_last:
statement += ","
Expand All @@ -207,7 +208,7 @@ def write_semantic_view_query(
statement += " FACTS"
for index, expr in enumerate(facts):
is_last = index == len(facts) - 1
statement += " identifier(?)"
statement += f" identifier(?) AS {expr.name}"
bindvars.extend([f"{expr.table}.{expr.name}"])
if not is_last:
statement += ","
Expand Down