Spaces:
Sleeping
Sleeping
File size: 1,125 Bytes
05e3517 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
def execution_agent(state):
"""Executes the optimized SQL query against BigQuery."""
query = state.get("optimized_sql", "").strip()
client = state["client"]
if not query:
return {"execution_result": {"error": "No SQL query to execute."}}
print(f"DEBUG: Final SQL Query before execution:\n{query}")
if client is None:
return {"execution_result": {"error": "Failed to connect to BigQuery."}}
try:
# Execute the query
query_job = client.query(query)
results = query_job.result() # Wait for query to complete
# Convert results to a list of tuples (similar to SQLite format)
rows = []
for row in results:
# Convert each row to a tuple of values
row_values = tuple(row.values())
rows.append(row_values)
if not rows:
return {"execution_result": {"error": "Query executed successfully but returned no results."}}
return {"execution_result": rows}
except Exception as e:
return {"execution_result": {"error": str(e)}} |