Skip to content

Commit 25dc794

Browse files
committed
implement count
1 parent 77e5775 commit 25dc794

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

spec/InstallationsRouter.spec.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ describe('InstallationsRouter', () => {
103103
});
104104
});
105105

106-
it_exclude_dbs(['postgres'])('query installations with count = 1', (done) => {
106+
it('query installations with count = 1', done => {
107107
var androidDeviceRequest = {
108108
'installationId': '12345678-abcd-abcd-abcd-123456789abc',
109109
'deviceType': 'android'
@@ -130,7 +130,11 @@ describe('InstallationsRouter', () => {
130130
expect(response.results.length).toEqual(2);
131131
expect(response.count).toEqual(2);
132132
done();
133-
});
133+
})
134+
.catch(error => {
135+
fail(JSON.stringify(error));
136+
done();
137+
})
134138
});
135139

136140
it_exclude_dbs(['postgres'])('query installations with limit = 0 and count = 1', (done) => {

spec/ParseObject.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1478,7 +1478,7 @@ describe('Parse.Object testing', () => {
14781478
expectError(Parse.Error.MISSING_OBJECT_ID, done));
14791479
});
14801480

1481-
it("fetchAll error on deleted object", function(done) {
1481+
it_exclude_dbs(['postgres'])("fetchAll error on deleted object", function(done) {
14821482
var numItems = 11;
14831483
var container = new Container();
14841484
var subContainer = new Container();

src/Adapters/Storage/Postgres/PostgresStorageAdapter.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,10 @@ export class PostgresStorageAdapter {
360360
let where = buildWhereClause({ schema, query, index: 2 })
361361
values.push(...where.values);
362362

363-
const qs = `SELECT * FROM $1:name WHERE ${where.pattern} ${limit !== undefined ? `LIMIT $${values.length + 1}` : ''}`;
363+
const wherePattern = where.pattern.length > 0 ? `WHERE ${where.pattern}` : '';
364+
const limitPattern = limit !== undefined ? `LIMIT $${values.length + 1}` : '';
365+
366+
const qs = `SELECT * FROM $1:name ${wherePattern} ${limitPattern}`;
364367
if (limit !== undefined) {
365368
values.push(limit);
366369
}
@@ -416,7 +419,14 @@ export class PostgresStorageAdapter {
416419

417420
// Executs a count.
418421
count(className, schema, query) {
419-
return Promise.reject('Not implented yet.')
422+
let values = [className];
423+
let where = buildWhereClause({ schema, query, index: 2 });
424+
values.push(...where.values);
425+
426+
const wherePattern = where.pattern.length > 0 ? `WHERE ${where.pattern}` : '';
427+
const qs = `SELECT COUNT(*) FROM $1:name ${wherePattern}`;
428+
return this._client.query(qs, values)
429+
.then(result => parseInt(result[0].count))
420430
}
421431
}
422432

0 commit comments

Comments
 (0)