Aryan Jain commited on
Commit
3bdece0
·
1 Parent(s): 12ed030

feat: update SQL query execution to use text() for improved safety and consistency

Browse files
src/services/_data_extractor.py CHANGED
@@ -12,7 +12,7 @@ from src.entities import (
12
  )
13
  from src.configs import DatabaseConfig
14
  from src.utils import PydanticAgent, ChromaClient
15
- from sqlalchemy import inspect
16
 
17
 
18
  class DataExtractorService:
@@ -61,7 +61,7 @@ class DataExtractorService:
61
  async def _get_data(self, sql_query: str):
62
  try:
63
  async with DatabaseConfig.async_session() as session:
64
- result = await session.execute(sql_query)
65
  return result.mapping().all()
66
  except Exception as e:
67
  raise e
 
12
  )
13
  from src.configs import DatabaseConfig
14
  from src.utils import PydanticAgent, ChromaClient
15
+ from sqlalchemy import inspect, text
16
 
17
 
18
  class DataExtractorService:
 
61
  async def _get_data(self, sql_query: str):
62
  try:
63
  async with DatabaseConfig.async_session() as session:
64
+ result = await session.execute(text(sql_query))
65
  return result.mapping().all()
66
  except Exception as e:
67
  raise e
src/utils/_pydantic_agent.py CHANGED
@@ -7,6 +7,8 @@ from src.configs import DatabaseConfig
7
  from src.schemas import SQLQueryExtractor, Message
8
  from src.prompts import SQL_QUERY_EXTRACTOR_PROMPT
9
 
 
 
10
  import os
11
 
12
 
@@ -55,7 +57,7 @@ class PydanticAgent:
55
  f"SQL query contains a destructive operation: {sql_query}. Only SELECT queries are allowed."
56
  )
57
  async with DatabaseConfig.async_session() as session:
58
- await session.execute(sql_query)
59
  except Exception as e:
60
  raise e
61
  return True
 
7
  from src.schemas import SQLQueryExtractor, Message
8
  from src.prompts import SQL_QUERY_EXTRACTOR_PROMPT
9
 
10
+ from sqlalchemy import text
11
+
12
  import os
13
 
14
 
 
57
  f"SQL query contains a destructive operation: {sql_query}. Only SELECT queries are allowed."
58
  )
59
  async with DatabaseConfig.async_session() as session:
60
+ await session.execute(text(sql_query))
61
  except Exception as e:
62
  raise e
63
  return True