From a2bbd31f278ed6709965d9644d476e1592a068a9 Mon Sep 17 00:00:00 2001 From: "Bobby (aider)" Date: Tue, 11 Feb 2025 19:18:36 -0800 Subject: [PATCH] fix: Modify trade linking query to correctly handle ClickHouse IN clause --- src/trading/trading_plan.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/trading/trading_plan.py b/src/trading/trading_plan.py index c31c890..a4c2345 100644 --- a/src/trading/trading_plan.py +++ b/src/trading/trading_plan.py @@ -346,17 +346,14 @@ def link_trades_to_plan(plan_id: int, trade_ids: List[int]) -> bool: """Link existing trades to a trading plan""" with create_client() as client: try: - # Update trades to link them to the plan - trade_ids_str = ", ".join(map(str, trade_ids)) - query = """ + # Format the trade_ids properly for the IN clause + trade_ids_str = ", ".join(str(id) for id in trade_ids) + query = f""" ALTER TABLE stock_db.trades - UPDATE plan_id = %(plan_id)s - WHERE id IN (%(trade_ids)s) + UPDATE plan_id = {plan_id} + WHERE id IN ({trade_ids_str}) """ - client.command(query, { - 'plan_id': plan_id, - 'trade_ids': trade_ids_str - }) + client.command(query) return True except Exception as e: print(f"Error linking trades to plan: {e}")