Session is a long-lasting environment supporting caching and Copy-On-Write optimization of Vecs. This session may
last over many different Rapids calls (provided they refer to the same session). When the session ends, all the
cached Vecs will be deleted (except those in user facing Frames).
Constructor and Description
(java.lang.String id) Session
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Val exec( AstRoot ast,
Execute an AstRoot in the current Session with much assertion-checking
ast - Rapids expression to execute
scope - ?
Returns: the result from the Rapids expression
Val end( Val returning)
Normal session exit. Returned Frames are fully deep-copied, and are responsibility of the caller to delete.
Returned Frames have their refcnts currently up by 1 (for the returned value itself).
public java.lang.RuntimeException endQuietly(java.lang.Throwable ex)
The Rapids call threw an exception. Best-effort cleanup, no more exceptions
Frame track_tmp( Frame fr)
Track a freshly minted tmp frame. This frame can be removed when the session ends (unlike global frames), or
anytime during the session when the client removes it.
public void remove(
Remove and delete a session-tracked frame.
Remove from all session tracking spaces.
Remove any newly-unshared Vecs, but keep the shared ones.
Frame assign( Key< Frame> id,
Update a global ID, maintaining sharing of Vecs
Vec copyOnWrite( Frame fr,
Support C-O-W optimizations: the following list of columns are about to be updated. Copy them as-needed and
replace in the Frame. Return the updated Frame vecs for flow-coding.