diff --git a/block_wrapper.py b/block_wrapper.py index d305535..0a29eb0 100644 --- a/block_wrapper.py +++ b/block_wrapper.py @@ -111,9 +111,13 @@ def construct_sql(input_data): replacement = "NULL" elif isinstance(value, bool): replacement = "TRUE" if value else "FALSE" + elif isinstance(value, (list, tuple)): + # Serialize list/tuple safely to avoid quote issues in SQL. + replacement = f"'{json.dumps(value)}'" elif isinstance(value, str): - # Escape quotes if needed, or just do naive single quote - replacement = f"'{value}'" + # Escape single quotes to keep SQL well-formed. + sanitized = value.replace("'", "''") + replacement = f"'{sanitized}'" else: replacement = str(value) @@ -273,4 +277,4 @@ async def main(): raise if __name__ == "__main__": - asyncio.run(main()) \ No newline at end of file + asyncio.run(main())