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)