company logo

ObjectSpace :: eraseExtent - Erase extent

The function deletes the extent with the extent name passed in sExtentName. The extent name may contain a scope prefix, when the extent has been defined in a namespace.

The extent will be removed completely, which includes removing all instances from derived extents. When the extent owns the instances, instances are deleted, too, which may take some time.

Extents should be erased, before deleting extent definitions in the dictionary. When the extent definition is not available anymore, the extent will be deleted without deleting owned instances. This may cause database errors, which can be repaired calling Database::checkDatabase().

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

Notes:

The function does not delete the extent reference, i.e. before removing an extent definition from the dictionary, eraseExtentReference() has to be called.

Implementation overview

Implementation details

  1. Erase extent by extent name and namespace scope
    ObjectSpace  :: eraseExtent ( 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  :: eraseExtent ( 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