Fix chat_history message order (#10869)

Not all databases uses id as default order, so add it explicitly

sqlite uses rawid as default order in select statement:
[https://www.sqlite.org/lang_createtable.html#rowid](https://www.sqlite.org/lang_createtable.html#rowid),
but some other databases like postgresql not behaves like this. since
this class supports multiple db engine. we should have an order.
pull/10938/head
wo0d 11 months ago committed by GitHub
parent 3d40de75c5
commit 4e58b78102
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -109,9 +109,13 @@ class SQLChatMessageHistory(BaseChatMessageHistory):
def messages(self) -> List[BaseMessage]: # type: ignore
"""Retrieve all messages from db"""
with self.Session() as session:
result = session.query(self.sql_model_class).where(
getattr(self.sql_model_class, self.session_id_field_name)
== self.session_id
result = (
session.query(self.sql_model_class)
.where(
getattr(self.sql_model_class, self.session_id_field_name)
== self.session_id
)
.order_by(self.sql_model_class.id.asc())
)
messages = []
for record in result:

Loading…
Cancel
Save