Skip to content

Commit 591816b

Browse files
committed
Fix replace with
1 parent d5be6a0 commit 591816b

File tree

6 files changed

+5
-41
lines changed

6 files changed

+5
-41
lines changed

Firestore/Source/API/FIRPipelineBridge.mm

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,6 @@ - (id)initWithOrderings:(NSArray<id> *)orderings {
625625

626626
@implementation FIRReplaceWithStageBridge {
627627
FIRExprBridge *_expr;
628-
NSString *_fieldName;
629628
Boolean isUserDataRead;
630629
std::shared_ptr<ReplaceWith> cpp_replace_with;
631630
}
@@ -634,29 +633,14 @@ - (id)initWithExpr:(FIRExprBridge *)expr {
634633
self = [super init];
635634
if (self) {
636635
_expr = expr;
637-
_fieldName = nil;
638-
isUserDataRead = NO;
639-
}
640-
return self;
641-
}
642-
643-
- (id)initWithFieldName:(NSString *)fieldName {
644-
self = [super init];
645-
if (self) {
646-
_fieldName = fieldName;
647-
_expr = nil;
648636
isUserDataRead = NO;
649637
}
650638
return self;
651639
}
652640

653641
- (std::shared_ptr<api::Stage>)cppStageWithReader:(FSTUserDataReader *)reader {
654642
if (!isUserDataRead) {
655-
if (_expr) {
656-
cpp_replace_with = std::make_shared<ReplaceWith>([_expr cppExprWithReader:reader]);
657-
} else {
658-
cpp_replace_with = std::make_shared<ReplaceWith>(MakeString(_fieldName));
659-
}
643+
cpp_replace_with = std::make_shared<ReplaceWith>([_expr cppExprWithReader:reader]);
660644
}
661645

662646
isUserDataRead = YES;

Firestore/Source/Public/FirebaseFirestore/FIRPipelineBridge.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ NS_SWIFT_SENDABLE
173173
NS_SWIFT_NAME(ReplaceWithStageBridge)
174174
@interface FIRReplaceWithStageBridge : FIRStageBridge
175175
- (id)initWithExpr:(FIRExprBridge *)expr;
176-
- (id)initWithFieldName:(NSString *)fieldName;
177176
@end
178177

179178
NS_SWIFT_SENDABLE

Firestore/Swift/Source/SwiftAPI/Pipeline/Pipeline.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ public struct Pipeline: @unchecked Sendable {
581581
/// - Parameter fieldName: The name of the field containing the nested map.
582582
/// - Returns: A new `Pipeline` object with this stage appended.
583583
public func replace(with fieldName: String) -> Pipeline {
584-
return Pipeline(stages: stages + [ReplaceWith(fieldName: fieldName)], db: db)
584+
return Pipeline(stages: stages + [ReplaceWith(expr: Field(fieldName))], db: db)
585585
}
586586

587587
/// Performs pseudo-random sampling of input documents, returning a specific count.

Firestore/Swift/Source/SwiftAPI/Stages.swift

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -256,20 +256,12 @@ class Sort: Stage {
256256
class ReplaceWith: Stage {
257257
var name: String = "replaceWith"
258258
var bridge: StageBridge
259-
private var expr: Expr?
260-
private var fieldName: String?
259+
private var expr: Expr
261260

262261
init(expr: Expr) {
263262
self.expr = expr
264-
fieldName = nil
265263
bridge = ReplaceWithStageBridge(expr: expr.toBridge())
266264
}
267-
268-
init(fieldName: String) {
269-
self.fieldName = fieldName
270-
expr = nil
271-
bridge = ReplaceWithStageBridge(fieldName: fieldName)
272-
}
273265
}
274266

275267
class Sample: Stage {

Firestore/core/src/api/stages.cc

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -312,24 +312,15 @@ google_firestore_v1_Pipeline_Stage ReplaceWith::to_proto() const {
312312

313313
result.args_count = 1;
314314
result.args = nanopb::MakeArray<google_firestore_v1_Value>(1);
315-
if (expr_) {
316-
result.args[0] = expr_->to_proto();
317-
} else {
318-
result.args[0].which_value_type =
319-
google_firestore_v1_Value_string_value_tag;
320-
result.args[0].string_value = nanopb::MakeBytesArray(field_name_.value());
321-
}
315+
result.args[0] = expr_->to_proto();
322316

323317
result.options_count = 0;
324318
result.options = nullptr;
325319
return result;
326320
}
327321

328322
ReplaceWith::ReplaceWith(std::shared_ptr<Expr> expr)
329-
: expr_(std::move(expr)), field_name_(absl::nullopt) {
330-
}
331-
ReplaceWith::ReplaceWith(std::string field_name)
332-
: expr_(nullptr), field_name_(std::move(field_name)) {
323+
: expr_(std::move(expr)) {
333324
}
334325

335326
Sample::Sample(std::string type, int64_t count, double percentage)

Firestore/core/src/api/stages.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,13 +253,11 @@ class RemoveFieldsStage : public Stage {
253253
class ReplaceWith : public Stage {
254254
public:
255255
explicit ReplaceWith(std::shared_ptr<Expr> expr);
256-
explicit ReplaceWith(std::string field_name);
257256
~ReplaceWith() override = default;
258257
google_firestore_v1_Pipeline_Stage to_proto() const override;
259258

260259
private:
261260
std::shared_ptr<Expr> expr_;
262-
absl::optional<std::string> field_name_;
263261
};
264262

265263
class Sample : public Stage {

0 commit comments

Comments
 (0)