documentation/sphinx/source/api-version-upgrade-guide.rst
######################### API Version Upgrade Guide #########################
This document provides an overview of changes that an application developer may need to make or effects that they should consider when upgrading the API version in their code. For each version, a list is provided that details the relevant changes when upgrading to that version from a prior version. To upgrade across multiple versions, make sure you apply changes from each version starting after your start version up to and including your target version.
For more details about API versions, see :ref:api-versions.
.. _api-version-upgrade-guide-740:
.. _api-version-upgrade-guide-730:
.. _api-version-upgrade-guide-720:
\xff\xff/management/profiling/<client_txn_sample_rate|client_txn_size_limit> are removed in 7.2 and the functionalities they provide are now covered by the global configuration module... _api-version-upgrade-guide-710:
fdb_transaction_get_range_and_flat_map API is replaced by fdb_transaction_get_mapped_range in version 710. The function fdb_transaction_get_range_and_flat_map is not supported in any API version... _api-version-upgrade-guide-700:
get_estimated_range_size_bytes will now throw an error if the begin_key or end_key is None... _api-version-upgrade-guide-630:
\xff\xff/worker_interfaces ignored its arguments and returned keys outside the range requested. In api version 630, you can get similar behavior by reading from \xff\xff/worker_interfaces/ to \xff\xff/worker_interfaces0 and stripping the prefix \xff\xff/worker_interfaces/ from each key in the result.get_addresses_for_key function now returns strings that include the port in the address. Prior to API version 630, this required using the INCLUDE_PORT_IN_ADDRESS option, which has now been deprecated.ENABLE_SLOW_TASK_PROFILING network option has been replaced by ENABLE_RUN_LOOP_PROFILING and is now deprecated.FDBKeyValue struct's key and value members have changed type from void* to uint8_t*.@fdb.transactional decorated functions will now throw an error if they return a generator. Previously, it was very easy to write these generators in a way that resulted them committing or retrying earlier than intended... _api-version-upgrade-guide-620:
fdb_future_get_version has been renamed to fdb_future_get_int64... _api-version-upgrade-guide-610:
TIMEOUT, MAX_RETRY_DELAY, and RETRY_LIMIT transaction options are no longer reset by calls to onError.onError with a non-retryable error will now put a transaction into an error state. Previously, this would partially reset the transaction.TRANSACTION_LOGGING_ENABLE option has been deprecated. Its behavior can be replicated by setting the DEBUG_TRANSACTION_IDENTIFIER and LOG_TRANSACTION options.fdb_create_database, which is a synchronous operation.FDBCluster type has been eliminated and the following functions have been removed: fdb_create_cluster, fdb_cluster_create_database, fdb_cluster_set_option, fdb_cluster_destroy, fdb_future_get_cluster, and fdb_future_get_database.fdb.open no longer accepts a database_name parameter.fdb.init, fdb.create_cluster, and fdb.Cluster. fdb.open should be used instead.FDB.createCluster and the Cluster class have been deprecated. FDB.open should be used instead.FDB.open no longer accepts a database_name parameter.FDB.init, FDB.create_cluster, and FDB.Cluster. FDB.open should be used instead.fdb.OpenDatabase and fdb.MustOpenDatabase to open a connection to the database by specifying a cluster file.fdb.StartNetwork, fdb.Open, fdb.MustOpen, and fdb.CreateCluster. fdb.OpenDatabase or fdb.OpenDefault should be used instead... _api-version-upgrade-guide-600:
TLS_PLUGIN option is now a no-op and has been deprecated. TLS support is now included in the published binaries... _api-version-upgrade-guide-520:
SET_VERSIONSTAMPED_KEY atomic operation now uses four bytes instead of two to specify the versionstamp offset.SET_VERSIONSTAMPED_VALUE atomic operation now requires a four byte versionstamp offset to be specified at the end of the value, similar to the behavior with SET_VERSIONSTAMPED_KEY.READ_AHEAD_DISABLE option has been deprecated... _api-version-upgrade-guide-510:
AND and MIN have changed behavior when used on a key that isn't present in the database. Previously, these operations would set an unset key to a value of equal length with the specified value but containing all null bytes (0x00). Now, an unset key will be set with the value passed to the operation (equivalent to a set).com.apple.cie.foundationdb to com.apple.foundationdb.CompletableFuture are the only ones that remain.stderr if an object with native resources is not closed. This can be disabled by calling FDB.setUnclosedWarning().Disposable interface now implement AutoCloseable instead, with close() replacing dispose().AutoCloseable objects will continue to be closed in object finalizers, but this behavior is being deprecated. All AutoCloseable objects should be explicitly closed.AsyncIterator is no longer closeable.getBoundaryKeys() now returns a CloseableAsyncIterable rather than an AsyncIterator... _api-version-upgrade-guide-500:
FDB.open and Cluster.openDatabase no longer take a DB name parameter.Transaction.onError invalidates its transaction and asynchronously return a new replacement Transaction.Transaction.reset has been removed... _api-version-upgrade-guide-460:
There are no behavior changes in this API version.
.. _api-version-upgrade-guide-450:
There are no behavior changes in this API version.
.. _api-version-upgrade-guide-440:
There are no behavior changes in this API version.
.. _api-version-upgrade-guide-430:
There are no behavior changes in this API version.
.. _api-version-upgrade-guide-420:
There are no behavior changes in this API version.
.. _api-version-upgrade-guide-410:
.. _api-version-upgrade-guide-400:
com.foundationdb to com.apple.cie.foundationdb... _api-version-upgrade-guide-300:
SNAPSHOT_RYW_DISABLE transaction option.\xFF) now requires setting the READ_SYSTEM_KEYS or ACCESS_SYSTEM_KEYS option... _api-version-upgrade-guide-200:
.. _api-version-upgrade-guide-100:
Transaction.clearRangeStartsWith has been deprecated. Transaction.clear(Range) should be used instead.API versions from the beta and alpha releases of Foundationdb (pre-100) are not documented here. See :doc:release-notes/release-notes-023 for details about changes in those releases.