The %Storage.SQL class contains a set of storage interface methods
that use embedded SQL statements, as well as an advanced set of data
mapping definition, to provide a way to layer objects on top of pre-existing
InterSystems IRIS data structures.
The storage interface methods, which are implemented as
method generators, work in conjunction
with the persistent interface methods of the %Persistent class to
provide persistent behavior for objects.
The methods of %Storage.SQL are not meant to be called directly.
Use the methods of the %Persistent class which, in turn, call the
appropriate %Storage.Persistent method.
Acquire (s)hared or (e)xclusive locks based on locktype parameter
classmethod %PurgeIndices(idxlist As %List = "", lockExtent As %Boolean = 0, pIgnoreIndexList As %RawString = "") as %Status [ Language = objectscript ]
Inherited description: Deletes all entries from each index specified in the idxlist argument.
If idxlist is empty then all indices that originate
in the class are purged. The index definition remains intact.
If pIgnoreIndexList is defined, it should be a $listbuild of index names that should not be purged.
This argument allows you to purge all indices except those defined in pIgnoreIndexList.
The default value of this argument is "", which means all indices, or all indices specified in pIndexList, will be purged.
Returns a %Status value indicating success or failure.
This method is normally generated by the storage class for persistent classes using
%Storage.Persistent or %Storage.SQL. Persistent
classes using some other storage class, such as %Library.CustomStorage must override this
method.
classmethod %UnlockExtent(shared As %Boolean = 0, immediate As %Boolean = 0) as %Status [ Language = objectscript ]
Release (s)hared or (e)xclusive locks based on locktype parameter
classmethod %UnlockId(id As %String, shared As %Boolean = 0, immediate As %Boolean = 0) as %Status [ Language = objectscript ]
Release locks held on an object (identified by the id parameter).
If shared is true then the lock released is a shared lock. If immediate is
true then release the lock immediately (lock not held until completion of the
current transaction)