diff --git a/Parse/Parse/Internal/Query/State/PFMutableQueryState.h b/Parse/Parse/Internal/Query/State/PFMutableQueryState.h index 9e841a21e..55ca46985 100644 --- a/Parse/Parse/Internal/Query/State/PFMutableQueryState.h +++ b/Parse/Parse/Internal/Query/State/PFMutableQueryState.h @@ -69,6 +69,7 @@ - (void)includeKey:(NSString *)key; - (void)includeKeys:(NSArray *)keys; +- (void)includeAll; ///-------------------------------------- #pragma mark - Excludes diff --git a/Parse/Parse/Internal/Query/State/PFMutableQueryState.m b/Parse/Parse/Internal/Query/State/PFMutableQueryState.m index b1c2b1532..1e54b9fb4 100644 --- a/Parse/Parse/Internal/Query/State/PFMutableQueryState.m +++ b/Parse/Parse/Internal/Query/State/PFMutableQueryState.m @@ -166,6 +166,10 @@ - (void)includeKeys:(NSArray *)keys { } } +- (void)includeAll { + [self includeKey:@"*"]; +} + ///-------------------------------------- #pragma mark - Excludes ///-------------------------------------- diff --git a/Parse/Parse/Source/PFQuery.h b/Parse/Parse/Source/PFQuery.h index 3235997b9..789f60648 100644 --- a/Parse/Parse/Source/PFQuery.h +++ b/Parse/Parse/Source/PFQuery.h @@ -107,6 +107,13 @@ typedef void (^PFQueryArrayResultBlock)(NSArray *_Nullable obje */ - (instancetype)includeKeys:(NSArray *)keys; +/** + Make the query include all `PFObject`s that have a reference. + + @return The same instance of `PFQuery` as the receiver. This allows method chaining. + */ +- (instancetype)includeAll; + /** Make the query restrict the fields of the returned `PFObject`s to exclude the provided key. diff --git a/Parse/Parse/Source/PFQuery.m b/Parse/Parse/Source/PFQuery.m index 4b4f4d625..1d8fab8d6 100644 --- a/Parse/Parse/Source/PFQuery.m +++ b/Parse/Parse/Source/PFQuery.m @@ -426,6 +426,12 @@ - (instancetype)includeKeys:(NSArray *)keys { return self; } +- (instancetype)includeAll { + [self checkIfCommandIsRunning]; + [self.state includeAll]; + return self; +} + ///-------------------------------------- #pragma mark - Exclude ///-------------------------------------- diff --git a/Parse/Tests/Unit/QueryStateUnitTests.m b/Parse/Tests/Unit/QueryStateUnitTests.m index 56e18a3b6..67cd97ddb 100644 --- a/Parse/Tests/Unit/QueryStateUnitTests.m +++ b/Parse/Tests/Unit/QueryStateUnitTests.m @@ -215,6 +215,14 @@ - (void)testIncludeMultipleKeys { XCTAssertEqualObjects(state.includedKeys, includedKeys); } +- (void)testIncludeAll { + PFMutableQueryState *state = [[PFMutableQueryState alloc] initWithParseClassName:@"Yarr"]; + [state includeAll]; + + NSSet *includedKeys = PF_SET(@"*"); + XCTAssertEqualObjects(state.includedKeys, includedKeys); +} + - (void)testExcludeKeys { PFMutableQueryState *state = [[PFMutableQueryState alloc] initWithParseClassName:@"Yarr"]; [state excludeKey:@"a"];