Repository navigation
Python: Fix OracleCollection search with multiple filters - #14541
Open
PRABHU KIRAN VANDRANKI (VANDRANKI) wants to merge 1 commit into
Open
PRABHU KIRAN VANDRANKI (VANDRANKI) wants to merge 1 commit into
PRABHU KIRAN VANDRANKI (VANDRANKI) wants to merge 1 commit into
Conversation
PRABHU KIRAN VANDRANKI (VANDRANKI)
requested a review
from a team
as a code owner
October 4, 2026 20:44
PRABHU KIRAN VANDRANKI (VANDRANKI)
deployed
to
github-app-auth
October 4, 2026 20:44 — with
GitHub Actions
Active
PRABHU KIRAN VANDRANKI (VANDRANKI)
deployed
to
github-app-auth
October 4, 2026 20:44 — with
GitHub Actions
Active
Copilot started reviewing on behalf of
PRABHU KIRAN VANDRANKI (VANDRANKI)
October 4, 2026 20:44
View session
Contributor
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The focused implementation resolves both filter composition and bind-name collisions with appropriate regression coverage.
Review effort: Balanced
Findings: None
What changed in this PR
Fixes Oracle vector searches using multiple filters by combining them with AND and generating unique bind names.
Changes:
- Adds Oracle-specific multi-filter construction with a shared bind counter.
- Adds single- and multi-filter regression tests.
| File | Description |
|---|---|
python/semantic_kernel/connectors/oracle.py |
Combines filters and binds safely. |
python/tests/unit/connectors/memory/test_oracle.py |
Covers single and multiple filters. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Motivation and Context
OracleCollection._inner_search_vectoronly handled a single filter. With a list of filters,_build_filterreturns a list of(sql, binds)tuples and the code raisedAttributeError: 'tuple' object has no attribute 'values'. Each filter was also parsed with its ownBindCounter, so bind names would have collided (:bind_val1in every filter).Fixes #14539
Description
Override
_build_filterinOracleCollectionso all filters share oneBindCounterand are combined with AND into one(sql, binds)tuple, asVectorSearchOptionsdocuments. A single filter returns the same tuple as before.Added two tests in
test_oracle.py: multiple filters (fails on main with the AttributeError) and a single filter regression check.Checked locally:
tests/unit/connectors/memory/test_oracle.pypasses, ruff check and format are clean, mypy is clean onoracle.py. No database was needed, the tests build the query only.Contribution Checklist