feat(firestore): add DML stages, literals source, and atomic execution option to iOS SDK pipelines - #16500
feat(firestore): add DML stages, literals source, and atomic execution option to iOS SDK pipelines#16500wu-hui wants to merge 2 commits into
Conversation
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. |
…n option to iOS SDK pipelines BUG=b/545234002 TAG=agy
7d36a1b to
54f611c
Compare
|
Quoting review comment from @ncooke3 on prototype PR #15801 (#15801 (comment)) for tracking on this PR:
Context & Implementation Details in this PR (#16500):
|
92283e7 to
73c1651
Compare
…ngs to iOS Pipeline DML - Default execute(options:) to concrete .init() and pass options.atomic directly - Add rich Swift docstrings with code examples to execute(options:), delete(), update(), insert(), and upsert() in Pipeline.swift - Explicitly note in docstrings why collectionPath is required for insert() and optional for upsert() - Add rich Swift docstrings with code examples to literals() array and variadic overloads in PipelineSource.swift BUG=b/545234002 TAG=agy
73c1651 to
b72add6
Compare
Summary
Adds complete DML stages (
DeleteStage,UpdateStage,InsertStage,UpsertStage), Literals source (LiteralsSourceStage), and atomic execution option (Pipeline.ExecuteOptions) to the iOS SDK (firebase-ios-sdk) Firestore Pipelines subsystem across the 3-layer architecture (C++ Core, Objective-C++ Bridge, Swift Public API).Key Changes
Firestore/core/src/api/&remote/):DeleteStage,UpdateStage,InsertStage,UpsertStage, andLiteralsSourceclasses instages.h/stages.cc.atomicexecution flag support toPipelineinpipeline.h/pipeline.ccand configured transaction options (new_transaction+auto_commit_transaction) inremote_objc_bridge.cc.Firestore/Source/API/):FIR*StageBridgeclasses inFIRPipelineBridge.hand implemented inFIRPipelineBridge.mm.FIRPipelineBridgeinitializer to pass atomic execution flag down to C++ Core.Firestore/Swift/Source/):Stageclass definitions inStages.swift.literals(...)entry point methods toPipelineSource.swift.delete(),update(...),insert(...),upsert(...), andPipeline.ExecuteOptionstoPipeline.swift.Firestore/Swift/Tests/Integration/):PipelineDmlTests.swiftmatching Web, Node, and Android test coverage.Buganizer Ticket
Fixes http://b/545234002 (under umbrella http://b/500350942)