From 3167639894b1ef39b9c0d1d9b26a03ae52e01d1b Mon Sep 17 00:00:00 2001 From: hj24 Date: Mon, 2 Mar 2026 10:37:02 +0800 Subject: [PATCH] fix: optimize workflow_run iter query --- .../sqlalchemy_api_workflow_run_repository.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/api/repositories/sqlalchemy_api_workflow_run_repository.py b/api/repositories/sqlalchemy_api_workflow_run_repository.py index 7935dfb2255..5ba7a7e7e8e 100644 --- a/api/repositories/sqlalchemy_api_workflow_run_repository.py +++ b/api/repositories/sqlalchemy_api_workflow_run_repository.py @@ -29,7 +29,7 @@ from typing import Any, cast import sqlalchemy as sa from pydantic import ValidationError -from sqlalchemy import and_, delete, func, null, or_, select +from sqlalchemy import and_, delete, func, null, or_, select, tuple_ from sqlalchemy.engine import CursorResult from sqlalchemy.orm import Session, selectinload, sessionmaker @@ -423,9 +423,10 @@ class DifyAPISQLAlchemyWorkflowRunRepository(APIWorkflowRunRepository): if last_seen: stmt = stmt.where( - or_( - WorkflowRun.created_at > last_seen[0], - and_(WorkflowRun.created_at == last_seen[0], WorkflowRun.id > last_seen[1]), + tuple_(WorkflowRun.created_at, WorkflowRun.id) + > tuple_( + sa.literal(last_seen[0], type_=sa.DateTime()), + sa.literal(last_seen[1], type_=WorkflowRun.id.type), ) )