1
0
Fork 0
mirror of synced 2024-10-03 19:53:33 +13:00

Merge pull request #5143 from appwrite/feat-remove-limits

Remove count, limit and offset limitations for queries
This commit is contained in:
Jake Barnby 2023-03-24 23:48:32 +13:00 committed by GitHub
commit d43d0cf293
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 132 additions and 57 deletions

View file

@ -43,14 +43,13 @@
"ext-sockets": "*",
"appwrite/php-clamav": "1.1.*",
"appwrite/php-runtimes": "0.11.*",
"utopia-php/abuse": "0.21.*",
"utopia-php/abuse": "0.22.*",
"utopia-php/analytics": "0.2.*",
"utopia-php/audit": "0.23.*",
"utopia-php/audit": "0.24.*",
"utopia-php/cache": "0.8.*",
"utopia-php/cli": "0.13.*",
"utopia-php/config": "0.2.*",
"utopia-php/database": "0.33.*",
"utopia-php/preloader": "0.2.*",
"utopia-php/database": "0.34.*",
"utopia-php/domains": "1.1.*",
"utopia-php/framework": "0.28.*",
"utopia-php/image": "0.5.*",
@ -58,6 +57,7 @@
"utopia-php/logger": "0.3.*",
"utopia-php/messaging": "0.1.*",
"utopia-php/orchestration": "0.6.*",
"utopia-php/preloader": "0.2.*",
"utopia-php/registry": "0.5.*",
"utopia-php/storage": "0.13.*",
"utopia-php/swoole": "0.5.*",

158
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "db9e7adb4caf775eaa200d3888b65579",
"content-hash": "f8ec9ffac67a27b14c6a213d14c8706a",
"packages": [
{
"name": "adhocore/jwt",
@ -1808,23 +1808,23 @@
},
{
"name": "utopia-php/abuse",
"version": "0.21.0",
"version": "0.22.1",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/abuse.git",
"reference": "7483068b192b27d698da9534c80091f69666d5eb"
"reference": "9360a026d18809e35523b254ab57e51055008203"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/abuse/zipball/7483068b192b27d698da9534c80091f69666d5eb",
"reference": "7483068b192b27d698da9534c80091f69666d5eb",
"url": "https://api.github.com/repos/utopia-php/abuse/zipball/9360a026d18809e35523b254ab57e51055008203",
"reference": "9360a026d18809e35523b254ab57e51055008203",
"shasum": ""
},
"require": {
"ext-curl": "*",
"ext-pdo": "*",
"php": ">=8.0",
"utopia-php/database": "0.33.*"
"utopia-php/database": "0.34.*"
},
"require-dev": {
"laravel/pint": "1.2.*",
@ -1851,9 +1851,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/abuse/issues",
"source": "https://github.com/utopia-php/abuse/tree/0.21.0"
"source": "https://github.com/utopia-php/abuse/tree/0.22.1"
},
"time": "2023-03-10T08:49:10+00:00"
"time": "2023-03-23T07:30:49+00:00"
},
{
"name": "utopia-php/analytics",
@ -1912,22 +1912,21 @@
},
{
"name": "utopia-php/audit",
"version": "0.23.0",
"version": "0.24.1",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/audit.git",
"reference": "f16e893a22b93560d2af02afcb4761b3a940148a"
"reference": "237538b618506bbc0efc0e7884d49cdf52c20004"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/audit/zipball/f16e893a22b93560d2af02afcb4761b3a940148a",
"reference": "f16e893a22b93560d2af02afcb4761b3a940148a",
"url": "https://api.github.com/repos/utopia-php/audit/zipball/237538b618506bbc0efc0e7884d49cdf52c20004",
"reference": "237538b618506bbc0efc0e7884d49cdf52c20004",
"shasum": ""
},
"require": {
"ext-pdo": "*",
"php": ">=8.0",
"utopia-php/database": "0.33.*"
"utopia-php/database": "0.34.*"
},
"require-dev": {
"laravel/pint": "1.2.*",
@ -1954,9 +1953,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/audit/issues",
"source": "https://github.com/utopia-php/audit/tree/0.23.0"
"source": "https://github.com/utopia-php/audit/tree/0.24.1"
},
"time": "2023-03-10T08:51:26+00:00"
"time": "2023-03-23T07:29:11+00:00"
},
{
"name": "utopia-php/cache",
@ -2113,19 +2112,20 @@
},
{
"name": "utopia-php/database",
"version": "0.33.0",
"version": "0.34.1",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/database.git",
"reference": "7453256728053cddfb0c872ac8ca60157c4d8a11"
"reference": "b592ab1bab9d7412cf5b756fdcdf850c03b1470d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/database/zipball/7453256728053cddfb0c872ac8ca60157c4d8a11",
"reference": "7453256728053cddfb0c872ac8ca60157c4d8a11",
"url": "https://api.github.com/repos/utopia-php/database/zipball/b592ab1bab9d7412cf5b756fdcdf850c03b1470d",
"reference": "b592ab1bab9d7412cf5b756fdcdf850c03b1470d",
"shasum": ""
},
"require": {
"ext-pdo": "*",
"php": ">=8.0",
"utopia-php/cache": "0.8.*",
"utopia-php/framework": "0.*.*",
@ -2135,11 +2135,14 @@
"ext-mongodb": "*",
"ext-redis": "*",
"fakerphp/faker": "^1.14",
"laravel/pint": "1.4.*",
"mongodb/mongodb": "1.8.0",
"pcov/clobber": "^2.0",
"phpstan/phpstan": "1.9.*",
"phpunit/phpunit": "^9.4",
"rregeer/phpunit-coverage-check": "^0.3.1",
"swoole/ide-helper": "4.8.0",
"utopia-php/cli": "^0.14.0",
"vimeo/psalm": "4.0.1"
"utopia-php/cli": "^0.14.0"
},
"type": "library",
"autoload": {
@ -2151,7 +2154,7 @@
"license": [
"MIT"
],
"description": "A simple library to manage application persistency using multiple database adapters",
"description": "A simple library to manage application persistence using multiple database adapters",
"keywords": [
"database",
"framework",
@ -2161,9 +2164,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/database/issues",
"source": "https://github.com/utopia-php/database/tree/0.33.0"
"source": "https://github.com/utopia-php/database/tree/0.34.1"
},
"time": "2023-03-08T08:46:35+00:00"
"time": "2023-03-23T07:23:41+00:00"
},
{
"name": "utopia-php/domains",
@ -3085,6 +3088,49 @@
},
"time": "2023-02-03T05:44:59+00:00"
},
{
"name": "doctrine/deprecations",
"version": "v1.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
"reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
"reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
"shasum": ""
},
"require": {
"php": "^7.1|^8.0"
},
"require-dev": {
"doctrine/coding-standard": "^9",
"phpunit/phpunit": "^7.5|^8.5|^9.5",
"psr/log": "^1|^2|^3"
},
"suggest": {
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
"source": "https://github.com/doctrine/deprecations/tree/v1.0.0"
},
"time": "2022-05-02T15:47:09+00:00"
},
{
"name": "doctrine/instantiator",
"version": "1.5.0",
@ -3617,24 +3663,27 @@
},
{
"name": "phpdocumentor/type-resolver",
"version": "1.6.2",
"version": "1.7.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d"
"reference": "1534aea9bde19a5c85c5d1e1f834ab63f4c5dcf5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d",
"reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/1534aea9bde19a5c85c5d1e1f834ab63f4c5dcf5",
"reference": "1534aea9bde19a5c85c5d1e1f834ab63f4c5dcf5",
"shasum": ""
},
"require": {
"doctrine/deprecations": "^1.0",
"php": "^7.4 || ^8.0",
"phpdocumentor/reflection-common": "^2.0"
"phpdocumentor/reflection-common": "^2.0",
"phpstan/phpdoc-parser": "^1.13"
},
"require-dev": {
"ext-tokenizer": "*",
"phpbench/phpbench": "^1.2",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan": "^1.8",
"phpstan/phpstan-phpunit": "^1.1",
@ -3666,9 +3715,9 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2"
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.0"
},
"time": "2022-10-14T12:47:21+00:00"
"time": "2023-03-12T10:13:29+00:00"
},
{
"name": "phpspec/prophecy",
@ -3738,6 +3787,51 @@
},
"time": "2023-02-02T15:41:36+00:00"
},
{
"name": "phpstan/phpdoc-parser",
"version": "1.16.1",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "e27e92d939e2e3636f0a1f0afaba59692c0bf571"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/e27e92d939e2e3636f0a1f0afaba59692c0bf571",
"reference": "e27e92d939e2e3636f0a1f0afaba59692c0bf571",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
"php-parallel-lint/php-parallel-lint": "^1.2",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^1.5",
"phpstan/phpstan-phpunit": "^1.1",
"phpstan/phpstan-strict-rules": "^1.0",
"phpunit/phpunit": "^9.5",
"symfony/process": "^5.2"
},
"type": "library",
"autoload": {
"psr-4": {
"PHPStan\\PhpDocParser\\": [
"src/"
]
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.16.1"
},
"time": "2023-02-07T18:11:17+00:00"
},
{
"name": "phpunit/php-code-coverage",
"version": "9.2.26",

View file

@ -15,7 +15,7 @@ class Limit extends Base
*
* @param int $maxLimit
*/
public function __construct(int $maxLimit = 100)
public function __construct(int $maxLimit = PHP_INT_MAX)
{
$this->maxLimit = $maxLimit;
}

View file

@ -2,7 +2,6 @@
namespace Appwrite\Utopia\Database\Validator\Query;
use Appwrite\Utopia\Database\Validator\Query\Base;
use Utopia\Database\Query;
use Utopia\Validator\Range;
@ -15,7 +14,7 @@ class Offset extends Base
*
* @param int $maxOffset
*/
public function __construct(int $maxOffset = 5000)
public function __construct(int $maxOffset = PHP_INT_MAX)
{
$this->maxOffset = $maxOffset;
}

View file

@ -1080,15 +1080,6 @@ trait UsersBase
$this->assertEquals($response['headers']['status-code'], 400);
$response = $this->client->call(Client::METHOD_GET, '/users/' . $data['userId'] . '/logs', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()), [
'queries' => ['limit(101)']
]);
$this->assertEquals($response['headers']['status-code'], 400);
$response = $this->client->call(Client::METHOD_GET, '/users/' . $data['userId'] . '/logs', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
@ -1098,15 +1089,6 @@ trait UsersBase
$this->assertEquals($response['headers']['status-code'], 400);
$response = $this->client->call(Client::METHOD_GET, '/users/' . $data['userId'] . '/logs', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()), [
'queries' => ['offset(5001)']
]);
$this->assertEquals($response['headers']['status-code'], 400);
$response = $this->client->call(Client::METHOD_GET, '/users/' . $data['userId'] . '/logs', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],