Fix component exesql bug (#2042)

### What problem does this PR solve?

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

---------

Co-authored-by: Kevin Hu <kevinhu.sh@gmail.com>
This commit is contained in:
H 2024-08-22 10:19:22 +08:00 committed by GitHub
parent 642006c8e2
commit f2c4d53c58
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 7 additions and 4 deletions

View File

@ -274,7 +274,7 @@ class Canvas(ABC):
def get_embedding_model(self):
return self._embed_id
def _find_loop(self, max_loops=2):
def _find_loop(self, max_loops=6):
path = self.path[-1][::-1]
if len(path) < 2: return False

View File

@ -14,7 +14,7 @@
# limitations under the License.
#
from abc import ABC
import re
import pandas as pd
from peewee import MySQLDatabase, PostgresqlDatabase
from agent.component.base import ComponentBase, ComponentParamBase
@ -59,6 +59,9 @@ class ExeSQL(ComponentBase, ABC):
ans = self.get_input()
ans = "".join(ans["content"]) if "content" in ans else ""
ans = re.sub(r'^.*?SELECT ', 'SELECT ', repr(ans), flags=re.IGNORECASE)
ans = re.sub(r';.*?SELECT ', '; SELECT ', ans, flags=re.IGNORECASE)
ans = re.sub(r';[^;]*$', r';', ans)
if not ans:
return ExeSQL.be_output("SQL statement not found!")
@ -75,7 +78,7 @@ class ExeSQL(ComponentBase, ABC):
sql_res = [{"content": rec + "\n"} for rec in [str(i) for i in query.fetchall()]]
db.close()
except Exception as e:
return ExeSQL.be_output("**Error**:" + str(e))
return ExeSQL.be_output("**Error**:" + str(e) + "\nError SQL Statement:" + ans)
if not sql_res:
return ExeSQL.be_output("No record in the database!")

View File

@ -175,6 +175,6 @@ def test_db_connect():
password=req["password"])
db.connect()
db.close()
return get_json_result(retmsg="Database Connection Successful!")
return get_json_result(data="Database Connection Successful!")
except Exception as e:
return server_error_response(e)