fix(logql): correct OR filter behavior when one side is a TrueFilter #20145
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it
This PR fixes incorrect OR behavior in LogQL line filters when one side contains an empty match. Previously, expressions such as
{app="foo"} |= "notfound"or""or regex patterns like (notfound|) incorrectly evaluated to false, even though the empty branch should act as a TrueFilter.The fix updates newOrFilter so that the OR operation returns TrueFilter when either side is a TrueFilter, ensuring consistent and correct LogQL semantics.
Which issue(s) this PR fixes
Fixes #19523
Special notes for your reviewer
This change aligns OR filter behavior with how LogQL already treats empty string and empty regex branches individually ("" → TrueFilter). A small test was added to ensure empty-match OR behavior remains consistent going forward.
Checklist
CONTRIBUTING.mdguide (required)featPRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.docs/sources/setup/upgrade/_index.mddeprecated-config.yamlanddeleted-config.yamlfiles respectively in thetools/deprecated-config-checkerdirectory. Example PR