Skip to content

feat(firestore): [PQ] add raw stage#13280

Merged
bhshkh merged 4 commits intogoogleapis:feature/fs-pipeline-queriesfrom
bhshkh:feature/fspq-raw-stage
Nov 3, 2025
Merged

feat(firestore): [PQ] add raw stage#13280
bhshkh merged 4 commits intogoogleapis:feature/fs-pipeline-queriesfrom
bhshkh:feature/fspq-raw-stage

Conversation

@product-auto-label product-auto-label Bot added the api: firestore Issues related to the Firestore API. label Oct 31, 2025
@bhshkh
Copy link
Copy Markdown
Contributor Author

bhshkh commented Oct 31, 2025

/gemini review

@bhshkh bhshkh marked this pull request as ready for review October 31, 2025 21:36
@bhshkh bhshkh requested review from a team October 31, 2025 21:36
Copy link
Copy Markdown
Contributor

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

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 RawStage to the Firestore pipeline, which is a great addition for forward compatibility, allowing users to leverage new pipeline stages before they are formally added to the SDK. The implementation is clear, follows the existing design patterns of the library, and includes integration tests to validate the new functionality. The code looks good, I just have one minor suggestion to simplify the code in pipeline_stage.go.

Comment thread firestore/pipeline_stage.go Outdated
Copy link
Copy Markdown
Contributor

@shollyman shollyman left a comment

Choose a reason for hiding this comment

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

Approving, but would another consideration be to have a stage builder that simply accepts the service's proto message corresponding to a stage?


// RawStage represents a pipeline stage that is not yet implemented in the SDK.
// This allows users to call stages that are supported by the Firestore backend
// but not yet available in the current SDK version.
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.

nit: The first line of this description seems like it could be a bit confusing. It seems like it's saying RawStage itself is unimplemented, but it means to say RawStage lets you use unimplemented stages

I just used the description from the java client

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good catch. Updated. Thanks for the review !!

@bhshkh bhshkh merged commit ffdb927 into googleapis:feature/fs-pipeline-queries Nov 3, 2025
180 of 182 checks passed
@bhshkh bhshkh deleted the feature/fspq-raw-stage branch November 3, 2025 18:38
bhshkh added a commit that referenced this pull request Nov 3, 2025
Add raw stage similar to Java

https://github.com/googleapis/java-firestore/blob/742fab6583c9a6f9c47cf0496124c3c9b05fe0ee/google-cloud-firestore/src/main/java/com/google/cloud/firestore/Pipeline.java#L997-L1021


The raw stage is an escape hatch to allow customers to consume new
stages supported by the backend without having to update their SDK to a
version that adds the stage.



Previous pull requests

- #12217
- #12425
- #12538
- #13147
- #13199
- #13218
- #13194
- #13245
- #13270
- #13271
- #13279
bhshkh added a commit that referenced this pull request Nov 10, 2025
#13283)

Changes in this PR:

1. firestore_client.go : Updated generated client as per
googleapis/gapic-generator-go#1661 . Removed
retries from tests since the headers have now been fixed.
2. Remove Equivalent since it was removed from backend.
3. Add/update comments
4. Add timestamp truncate (pending from
#13194) and string
split (pending from
#13245) functions.
5. add all the private preview general, key, logical (except iferror),
type and object functions.
See "Firestore Features (Pipeline)" sheet in
[go/firestore-query-tracker](http://go/firestore-query-tracker) for the
list of functions.
    Java reference:
-
https://github.com/googleapis/java-firestore/blob/ccaf9d4fac5bd87a4da3d37493ca66fdc7681bc3/google-cloud-firestore/src/main/java/com/google/cloud/firestore/pipeline/expressions/Expression.java



Previous pull requests

- #12217
- #12425
- #12538
- #13147
- #13199
- #13218
- #13194
- #13245
- #13270
- #13271
- #13279
- #13280
- #13281
- #13282
- googleapis/gapic-generator-go#1661
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: firestore Issues related to the Firestore API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants