From 4168506dd2c86371b5249b3ec0b6390c4e4c57a8 Mon Sep 17 00:00:00 2001 From: Sarah Wooders Date: Mon, 6 Oct 2025 14:14:25 -0700 Subject: [PATCH] feat: replace composite runs index to not include is_err (#5177) --- ...b595051e48_replace_composite_runs_index.py | 33 +++++++++++++++++++ letta/orm/message.py | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 alembic/versions/89b595051e48_replace_composite_runs_index.py diff --git a/alembic/versions/89b595051e48_replace_composite_runs_index.py b/alembic/versions/89b595051e48_replace_composite_runs_index.py new file mode 100644 index 00000000..8988a376 --- /dev/null +++ b/alembic/versions/89b595051e48_replace_composite_runs_index.py @@ -0,0 +1,33 @@ +"""replace composite runs index + +Revision ID: 89b595051e48 +Revises: f9ad1c25fd2b +Create Date: 2025-10-06 13:17:09.918439 + +""" + +from typing import Sequence, Union + +import sqlalchemy as sa + +from alembic import op + +# revision identifiers, used by Alembic. +revision: str = "89b595051e48" +down_revision: Union[str, None] = "f9ad1c25fd2b" +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index(op.f("ix_messages_run_err_sequence"), table_name="messages") + op.create_index("ix_messages_run_sequence", "messages", ["run_id", "sequence_id"], unique=False) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index("ix_messages_run_sequence", table_name="messages") + op.create_index(op.f("ix_messages_run_err_sequence"), "messages", ["run_id", "is_err", "sequence_id"], unique=False) + # ### end Alembic commands ### diff --git a/letta/orm/message.py b/letta/orm/message.py index c7669646..86904e67 100644 --- a/letta/orm/message.py +++ b/letta/orm/message.py @@ -23,7 +23,7 @@ class Message(SqlalchemyBase, OrganizationMixin, AgentMixin): Index("ix_messages_org_agent", "organization_id", "agent_id"), Index("ix_messages_run_id", "run_id"), # Composite index for optimizing the frequently-run query: - Index("ix_messages_run_err_sequence", "run_id", "is_err", "sequence_id"), + Index("ix_messages_run_sequence", "run_id", "sequence_id"), ) __pydantic_model__ = PydanticMessage