From 8cc775d9f2a40b20b11f8c8af675fb9559e76cf6 Mon Sep 17 00:00:00 2001 From: hj24 Date: Mon, 2 Mar 2026 11:01:11 +0800 Subject: [PATCH] fix: optimize workflow_run iter query (#32815) --- .../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 7935dfb225..5ba7a7e7e8 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), ) )