Skip to content

Commit 10bd386

Browse files
committed
Merge branch 'main' into support-overload-control
2 parents 045b4f1 + 8008f86 commit 10bd386

File tree

4 files changed

+18
-6
lines changed

4 files changed

+18
-6
lines changed

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
main
22
----
33

4-
* Adding peak_memory_usage as a new property of AQL queries, available since ArangoDB 3.11.
4+
* The db.version() now has a new optional parameter "details" that can be used to return additional information about
5+
the server version. The default is still false, so the old behavior is preserved.
6+
7+
* Added peak_memory_usage as a new property of AQL queries, available since ArangoDB 3.11.
58

69
* The explain method of AQL queries includes the "stats" field in the returned object. Note that the REST API returns
710
it separately from the "plan" field, but for now we have to merge them together to ensure backward compatibility.

arango/database.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -307,21 +307,25 @@ def response_handler(resp: Response) -> Any:
307307

308308
return self._execute(request, response_handler)
309309

310-
def version(self) -> Result[str]:
310+
def version(self, details: bool = False) -> Result[Any]:
311311
"""Return ArangoDB server version.
312-
312+
:param details: Return more detailed version output
313+
:type details: bool | None
313314
:return: Server version.
314315
:rtype: str
315316
:raise arango.exceptions.ServerVersionError: If retrieval fails.
316317
"""
317318
request = Request(
318-
method="get", endpoint="/_api/version", params={"details": False}
319+
method="get", endpoint="/_api/version", params={"details": details}
319320
)
320321

321-
def response_handler(resp: Response) -> str:
322+
def response_handler(resp: Response) -> Any:
322323
if not resp.is_success:
323324
raise ServerVersionError(resp, request)
324-
return str(resp.body["version"])
325+
if not details:
326+
return str(resp.body["version"])
327+
else:
328+
return resp.body
325329

326330
return self._execute(request, response_handler)
327331

arango/formatter.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -902,6 +902,10 @@ def format_view(body: Json) -> Json:
902902
if "indexes" in body:
903903
result["indexes"] = body["indexes"]
904904

905+
# Introduced in 3.12 EE
906+
if "optimizeTopK" in body:
907+
result["optimizeTopK"] = body["optimizeTopK"]
908+
905909
return verify_format(body, result)
906910

907911

tests/test_database.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ def test_database_misc_methods(sys_db, db, bad_db):
6868

6969
# Test get server version
7070
assert isinstance(db.version(), str)
71+
assert isinstance(db.version(details=True), dict)
7172

7273
# Test get server version with bad database
7374
with assert_raises(ServerVersionError) as err:

0 commit comments

Comments
 (0)