company logo

ObjectSpace :: eraseExtentReference - Delete extent reference

The function deletes the offset for the extent. After deleting an extent offset, the extent does practically not exist anymore. Future requests for the extent will recreate an empty extent. When the extent has sub extents, those are deleted as well.

The use of the function is critical, since instances owned by the extent are not maintained and may cause problems later on. Also Database::checkDatabase() will not be able to solve the problems, i.e. database copy might become necessary.

The function should be called, only, for databases which have been opened exclusive. No extent must be opened before calling the function.

Notes:

Running the function within a transaction may cause problems in further actions within the same transaction.

Implementation overview

Implementation details

  1. Erase extent by extent name and namespace scope
    ObjectSpace  :: eraseExtentReference ( odaba::String &sScope, odaba::String &sExtentName )

    The function is called in order to delete an extent defined in a namespace (sScope). The extent name (without scope) passed in sExtentName will be deleted. The namespace name or hierarchy (scope name) is passed in sScope.

    • sScope - Scope name

      The scope name addresses a namespace (or class) defined in the database. The scope name may refer to a namespace hierarchy. Namespace names in a hierarchical path are separated by double colon (::).

    • sExtentName - Extent name
  2. to list
  3. Erase extent by name
    ObjectSpace  :: eraseExtentReference ( odaba::String &sExtentName )

    The complete scoped name of the extent to be deleted has to be passed in sExtentName. When the extent is defined in the global scope, only the extent name has to be passed.

    • sExtentName - Extent name
  4. to list