Skip to content

feat(bigquery): add bigquery_vector_search_brute_force sample to run … - #14747

Open
iennae wants to merge 1 commit into
mainfrom
feat/bq-vector-search-brute-force
Open

iennae wants to merge 1 commit into
mainfrom
feat/bq-vector-search-brute-force

Conversation

@iennae

@iennae iennae commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

…exact brute-force vector search

Problem:
The BigQuery documentation (https://cloud.google.com/bigquery/docs/vector-search) needs a standalone, tested Python code sample demonstrating how to run exact brute-force vector search (region tag bigquery_vector_search_brute_force).

Solution:

  • Add vector_search_brute_force(project_id: str) -> None in bigquery/vector_search/bigquery_vector_search_brute_force.py (Compute exact nearest-neighbor distances over embeddings using VECTOR_SEARCH with use_brute_force => TRUE.)
  • Add unit tests (bigquery/vector_search/bigquery_vector_search_brute_force_test.py) covering both the success path and API error handling (GoogleAPICallError)

Description

Fixes #

Checklist

Testing

  • I have tested this change on a live environment and verified it works as intended.

Compliance & Style


Post-Approval Actions

  • Please merge this PR for me once it is approved

@iennae
iennae requested review from a team and chalmerlowe as code owners November 2, 2026 23:27
@snippet-bot

snippet-bot Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Here is the summary of changes.

You are about to add 1 region tag.

This comment is generated by snippet-bot.
If you find problems with this result, please file an issue at:
https://github.com/googleapis/repo-automation-bots/issues.
To update this comment, add snippet-bot:force-run label or use the checkbox below:

  • Refresh this comment

@product-auto-label product-auto-label Bot added api: bigquery Issues related to the BigQuery API. samples Issues that are directly related to samples. labels Nov 2, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new Python sample for running an exact brute-force vector similarity search in BigQuery using the VECTOR_SEARCH function, along with its corresponding unit tests and configuration files. Feedback on the changes suggests updating noxfile_config.py to ensure Python 3.10 is not ignored, as it is the oldest supported Python version and should be tested according to repository guidelines.


TEST_CONFIG_OVERRIDE = {
# You can opt out from the test for specific Python versions.
"ignored_versions": ["2.7", "3.7", "3.8", "3.9", "3.10", "3.11"],

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

According to the repository guidelines, we should only test the oldest and newest supported Python releases in test configurations (such as noxfile_config.py), ignoring intermediate versions. Since Python 3.10 is the oldest supported version, it should not be ignored. Please remove '3.10' from the ignored_versions list so that both the oldest (3.10) and newest supported Python versions are tested, while intermediate versions (like 3.11) remain ignored.

Suggested change
"ignored_versions": ["2.7", "3.7", "3.8", "3.9", "3.10", "3.11"],
"ignored_versions": ["2.7", "3.7", "3.8", "3.9", "3.11"],
References
  1. Only test the oldest and newest supported Python releases in test configurations (such as noxfile_config.py), ignoring intermediate versions.

@iennae
iennae force-pushed the feat/bq-vector-search-brute-force branch 2 times, most recently from ededfa9 to ba85b15 Compare November 3, 2026 02:44
…exact brute-force vector search

Problem:
The BigQuery documentation (https://cloud.google.com/bigquery/docs/vector-search)
needs a standalone, tested Python code sample demonstrating how to
run exact brute-force vector search (region tag `bigquery_vector_search_brute_force`).

Solution:
- Add `vector_search_brute_force(project_id: str) -> None` in `bigquery/vector_search/bigquery_vector_search_brute_force.py`
  (Compute exact nearest-neighbor distances over embeddings using VECTOR_SEARCH with use_brute_force => TRUE.)
- Add unit tests (`bigquery/vector_search/bigquery_vector_search_brute_force_test.py`) covering both the success
  path and API error handling (`GoogleAPICallError`)
@iennae
iennae force-pushed the feat/bq-vector-search-brute-force branch from ba85b15 to 18cca94 Compare November 3, 2026 23:32

@XrossFox XrossFox left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code does LGTM, but i have a bit of a nit regarding monkeypatching the base dependency rather that the module instance.

def test_vector_search_brute_force_success(
capsys: pytest.CaptureFixture[str],
) -> None:
with mock.patch("google.cloud.bigquery.Client") as mock_client_cls:

@XrossFox XrossFox Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Patch should target the module instance under test rather than the dependency global instance

def test_vector_search_brute_force_error(
capsys: pytest.CaptureFixture[str],
) -> None:
with mock.patch("google.cloud.bigquery.Client") as mock_client_cls:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: bigquery Issues related to the BigQuery API. samples Issues that are directly related to samples.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants