From 451cd0764c0eda299746f1fec4023036d60df29e Mon Sep 17 00:00:00 2001 From: mangod12 <2329095@kiit.ac.in> Date: Mon, 18 May 2026 08:56:29 +0530 Subject: [PATCH 1/2] fix(sessions): return empty events when num_recent_events=0 in DatabaseSessionService `DatabaseSessionService.get_session` returned all events when `num_recent_events=0` because `0` is falsy in Python, skipping the LIMIT clause entirely. Changed truthiness check to `is not None`, consistent with InMemorySessionService and SqliteSessionService. `LIMIT 0` in SQL correctly returns zero rows across all supported dialects (PostgreSQL, MySQL, SQLite). Added regression test for num_recent_events=0 in the existing test_get_session_with_config test. Fixes #5730 Co-Authored-By: Claude Opus 4.6 (1M context) --- src/google/adk/sessions/database_session_service.py | 2 +- tests/unittests/sessions/test_session_service.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index d033f1f234..b36614fd3d 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -520,7 +520,7 @@ async def get_session( stmt = stmt.order_by(schema.StorageEvent.timestamp.desc()) - if config and config.num_recent_events: + if config and config.num_recent_events is not None: stmt = stmt.limit(config.num_recent_events) result = await sql_session.execute(stmt) diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index 02f5159a45..b1cc2ca52e 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -1057,6 +1057,13 @@ async def test_get_session_with_config(session_service): events = session.events assert len(events) == num_test_events + # num_recent_events=0 should return no events. + config = GetSessionConfig(num_recent_events=0) + session = await session_service.get_session( + app_name=app_name, user_id=user_id, session_id=session.id, config=config + ) + assert len(session.events) == 0 + # Only expect the most recent 3 events. num_recent_events = 3 config = GetSessionConfig(num_recent_events=num_recent_events) From f18250ba0c726b4c7b61ec3c4cea5896fee25881 Mon Sep 17 00:00:00 2001 From: mangod12 <2329095@kiit.ac.in> Date: Mon, 18 May 2026 09:50:53 +0530 Subject: [PATCH 2/2] chore: retrigger CI after CLA signing