Skip to content

Reject multiple rows when the protobuf cannot represent groups - #560

Open
Unheilbar wants to merge 2 commits into
capabilities-developmentfrom
solana-gogen-fix-filter-gen
Open

Reject multiple rows when the protobuf cannot represent groups#560
Unheilbar wants to merge 2 commits into
capabilities-developmentfrom
solana-gogen-fix-filter-gen

Conversation

@Unheilbar

@Unheilbar Unheilbar commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Expected behavior

Multi-row Solana filter input should be interpreted as OR across rows, with AND inside each row.
Example intent:
Row 1: caller = Alice AND message = hello
Row 2: caller = Bob AND message = bye
Effective logic should be:
(caller = Alice AND message = hello) OR (caller = Bob AND message = bye)

Actual before this change

Generated comparers were flattened per field.
Log poller evaluated those comparers with AND.
This could create impossible predicates and silently inactive triggers.

Actual after this change

Unsupported multi-row input is rejected at configuration time with clear single-row guidance.
Conflicting same-subkey equality filters are rejected.
Valid single-row filters continue to work normally.

Prevents successful registration of triggers that can never match. Fails fast with actionable feedback instead of silent no-op behavior.

@Unheilbar
Unheilbar requested a review from a team as a code owner July 30, 2026 18:27
silaslenihan
silaslenihan previously approved these changes Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants