Fix for count being very slow on large Parse Classes' collections (Postgres) (#5330)
* Changed count to be approximate. Should help with postgres slowness * refactored last commit to only fall back to estimate if no complex query * handlign variables correctly * Trying again because it was casting to lowercase table names which doesnt work for us/ * syntax error * Adding quotations to pg query * hopefully final pg fix * Postgres will now use an approximate count unless there is a more complex query specified * handling edge case * Fix for count being very slow on large Parse Classes' collections in Postgres. Replicating fix for Mongo in issue 5264 * Fixed silly spelling error resulting from copying over notes * Lint fixes * limiting results to 1 on approximation * suppress test that we can no longer run for postgres * removed tests from Postgres that no longer apply * made changes requested by dplewis * fixed count errors * updated package.json * removed test exclude for pg * removed object types from method * test disabled for postgres * returned type * add estimate count test * fix mongo test
This commit is contained in:
committed by
Diamond Lewis
parent
e396612254
commit
c7eb7daeae
@@ -152,10 +152,7 @@ export class MongoStorageAdapter implements StorageAdapter {
|
||||
// encoded
|
||||
const encodedUri = formatUrl(parseUrl(this._uri));
|
||||
|
||||
this.connectionPromise = MongoClient.connect(
|
||||
encodedUri,
|
||||
this._mongoOptions
|
||||
)
|
||||
this.connectionPromise = MongoClient.connect(encodedUri, this._mongoOptions)
|
||||
.then(client => {
|
||||
// Starting mongoDB 3.0, the MongoClient.connect don't return a DB anymore but a client
|
||||
// Fortunately, we can get back the options and use them to select the proper DB.
|
||||
@@ -385,8 +382,8 @@ export class MongoStorageAdapter implements StorageAdapter {
|
||||
deleteAllClasses(fast: boolean) {
|
||||
return storageAdapterAllCollections(this).then(collections =>
|
||||
Promise.all(
|
||||
collections.map(
|
||||
collection => (fast ? collection.deleteMany({}) : collection.drop())
|
||||
collections.map(collection =>
|
||||
fast ? collection.deleteMany({}) : collection.drop()
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -952,6 +949,8 @@ export class MongoStorageAdapter implements StorageAdapter {
|
||||
readPreference = ReadPreference.NEAREST;
|
||||
break;
|
||||
case undefined:
|
||||
case null:
|
||||
case '':
|
||||
break;
|
||||
default:
|
||||
throw new Parse.Error(
|
||||
|
||||
Reference in New Issue
Block a user