From c06973261a259bead828eced79f4a0482290a8b7 Mon Sep 17 00:00:00 2001 From: Aidan Boland Date: Fri, 19 May 2023 04:30:38 +0100 Subject: [PATCH] Fix for syntax when setting search_path for Snowflake database (#4747) # Fixes syntax for setting Snowflake database search_path An error occurs when using a Snowflake database and providing a schema argument. I have updated the syntax to run a Snowflake specific query when the database dialect is 'snowflake'. --- langchain/sql_database.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/langchain/sql_database.py b/langchain/sql_database.py index 337af0e8..83541aec 100644 --- a/langchain/sql_database.py +++ b/langchain/sql_database.py @@ -224,7 +224,12 @@ class SQLDatabase: """ with self._engine.begin() as connection: if self._schema is not None: - connection.exec_driver_sql(f"SET search_path TO {self._schema}") + if self.dialect == "snowflake": + connection.exec_driver_sql( + f"ALTER SESSION SET search_path='{self._schema}'" + ) + else: + connection.exec_driver_sql(f"SET search_path TO {self._schema}") cursor = connection.execute(text(command)) if cursor.returns_rows: if fetch == "all":