1
0
Fork 0
arangodb/Documentation/Books/Manual/ReleaseNotes/UpgradingChanges34.md

2.3 KiB

Incompatible changes in ArangoDB 3.4

It is recommended to check the following list of incompatible changes before upgrading to ArangoDB 3.4, and adjust any client programs if necessary.

The following incompatible changes have been made in ArangoDB 3.4:

Geo-Index

  • The RocksDB on-disk storage format for indexes with type geo has changed (also affects geo1 and geo2 indexes). This requires users to start the arangod process with the --database.auto-upgrade true option to allow arangodb to recreate these indexes with the new on-disk format.

  • Geo-Indexes will now reported themselves no longer as geo1 or geo2 but with type geo . The two previously known geo-index types (geo1and geo2) are deprecated. APIs to create indexes (ArangoCollection.ensureIndex) will continue to support geo1and geo2.

Client tools

HTTP API

  • GET /_api/aqlfunction was migrated to match the general structure of ArangoDB Replies. It now returns an object with a "result" attribute that contains the list of available AQL user functions:

    {
      "code": 200,
      "error": false,
      "result": [
        {
          "name": "UnitTests::mytest1",
          "code": "function () { return 1; }",
          "isDeterministic": false
        }
      ]
    }
    

    In previous versions, this REST API returned only the list of available AQL user functions on the top level of the response. Each AQL user function description now also contains the 'isDeterministic' attribute.

  • POST /_api/aqlfunction now includes an "isNewlyCreated" attribute that indicates if a new function was created or if an existing one was replaced (in addition to the "code" attribute, which remains 200 for replacement and 201 for creation):

    {
      "code": "201",
      "error": false,
      "isNewlyCreated": true
    }
    
  • DELETE /_api/aqlfunction now returns the number of deleted functions:

    {
      "code": 200,
      "error": false,
      "deletedCount": 10
    }
    

Miscellaneous

AQL Functions

  • CALL / APPLY
    • may emmit ERROR_QUERY_FUNCTION_NAME_UNKNOWN or ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH instead of ERROR_QUERY_FUNCTION_NOT_FOUND in some situations.
    • are now able to be invoked recursive