Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions src/google/adk/sessions/database_session_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -531,11 +531,14 @@ 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)
storage_events = result.scalars().all()
if config and config.num_recent_events == 0:
storage_events = []
else:
result = await sql_session.execute(stmt)
storage_events = result.scalars().all()

# Fetch states from storage
storage_app_state = await sql_session.get(
Expand Down
15 changes: 15 additions & 0 deletions tests/unittests/sessions/test_session_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -1067,6 +1067,21 @@ async def test_get_session_with_config(session_service):
assert len(events) == num_recent_events
assert events[0].timestamp == num_test_events - num_recent_events + 1

# num_recent_events=0 should return no events (boundary case).
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 session.events == []

# num_recent_events=2 should return the 2 most recent events.
config = GetSessionConfig(num_recent_events=2)
session = await session_service.get_session(
app_name=app_name, user_id=user_id, session_id=session.id, config=config
)
assert len(session.events) == 2
assert session.events[0].timestamp == num_test_events - 2 + 1

# Only expect events after timestamp 4.0 (inclusive), i.e., 2 events.
after_timestamp = 4.0
config = GetSessionConfig(after_timestamp=after_timestamp)
Expand Down
Loading