Skip to content

Commit 811d8b0

Browse files
dplewisflovilmart
authored andcommitted
pg support for null in containedAll (#4026)
1 parent 3c79cae commit 811d8b0

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

spec/ParseQuery.spec.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,21 @@ describe('Parse.Query testing', () => {
274274
});
275275
});
276276

277+
it('containedIn null array', (done) => {
278+
const emails = ['[email protected]', '[email protected]', null];
279+
const user = new Parse.User();
280+
user.setUsername(emails[0]);
281+
user.setPassword('asdf');
282+
user.signUp().then(() => {
283+
const query = new Parse.Query(Parse.User);
284+
query.containedIn('username', emails);
285+
return query.find({ useMasterKey: true });
286+
}).then((results) => {
287+
equal(results.length, 1);
288+
done();
289+
}, done.fail);
290+
});
291+
277292
it("containsAll number array queries", function(done) {
278293
var NumberSet = Parse.Object.extend({ className: "NumberSet" });
279294

src/Adapters/Storage/Postgres/PostgresStorageAdapter.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,8 +301,10 @@ const buildWhereClause = ({ schema, query, index }) => {
301301
const inPatterns = [];
302302
values.push(fieldName);
303303
baseArray.forEach((listElem, listIndex) => {
304-
values.push(listElem);
305-
inPatterns.push(`$${index + 1 + listIndex}`);
304+
if (listElem !== null) {
305+
values.push(listElem);
306+
inPatterns.push(`$${index + 1 + listIndex}`);
307+
}
306308
});
307309
patterns.push(`$${index}:name ${not} IN (${inPatterns.join(',')})`);
308310
index = index + 1 + inPatterns.length;

0 commit comments

Comments
 (0)