Java SDK Documentation
12.0.0
|
Public Member Functions | |
int | getDesiredThreads (ServerInterface srvInterface, ExecutorPlanContext planCtxt) throws UdfException |
void | getParameterType (ServerInterface srvInterface, SizedColumnTypes parameterTypes) |
void | getPerInstanceResources (ServerInterface srvInterface, VResources res) |
void | getPerInstanceResources (ServerInterface srvInterface, VResources res, SizedColumnTypes argTypes) |
void | getPrototype (ServerInterface srvInterface, ColumnTypes argTypes, ColumnTypes returnType) |
void | getReturnType (ServerInterface srvInterface, SizedColumnTypes argTypes, SizedColumnTypes returnType) |
UDXType | getUDXFactoryType () |
boolean | isSourceApportionable () |
void | plan (ServerInterface srvInterface, NodeSpecifyingPlanContext planCtxt) throws UdfException |
SourceIterator | prepare (ServerInterface srvInterface, NodeSpecifyingPlanContext planCtxt) throws UdfException |
SourceIterator | prepare (ServerInterface srvInterface, ExecutorPlanContext planCtxt) throws UdfException |
Protected Attributes | |
long | libOid |
String | sqlName |
Source factory that works with a SourceIterator to produce UDSources.
Usually it is easier to subclass SourceFactory and have its prepareUDSources() method return a vector of UDSource objects. Behind the scenes, Vertica uses a built-in iterator to pull sources from that vector. However, if you need to be able to control source management at this level, you can instead write your own SourceIterator and use it with an IterativeSourceFactory.
This class performs initial validation and planning of a query, before it is distributed over the network. It also instantiates objects to perform further initialization on each node, once the query has been distributed.
Note that SourceFactories are singletons. Subclasses should be stateless, with no fields containing data, just methods. plan() and prepare() methods must never modify any global variables or state; they may only modify the variables that they are given as arguments. (If global state must be modified, use SourceIterator.)
int com.vertica.sdk.IterativeSourceFactory.getDesiredThreads | ( | ServerInterface | srvInterface, |
ExecutorPlanContext | planCtxt | ||
) | throws UdfException |
Request the number of threads that the SourceFactory wants to use. This function is called on each node before prepare().
'planCtxt' contains the same parameters stored by plan() method. It also exposes the maximum number of allowed threads, via 'getMaxAllowedThreads()'. Further computations can be stored in its 'ExecutorParamWriter' object, for use in prepare().
srvInterface | a ServerInterface object used to communicate with Vertica |
planCtxt | plan context specifying nodes |
UdfException | UDF problem |
|
inherited |
Function to tell Vertica the name and types of parameters that this function uses. Vertica will use this to warn function callers that certain parameters they provide are not affecting anything, or that certain parameters that are not being set are reverting to default values.
srvInterface | a ServerInterface object used to communicate with Vertica |
parameterTypes | SizedColumnTypes describing the parameters |
|
inherited |
Set the resource required for each instance of the UDX Object subclass
srvInterface | a ServerInterface object used to communicate with Vertica |
res | a VResources object used to tell Vertica what resources are needed by the UDX |
argTypes | Provides the data types of arguments that this UDx was called with. This may be used to calculate the resources required by the UDx. |
|
virtualinherited |
Provides the argument and return types of the UDL. UDL's take no input tuples; as such, their prototype is empty.
Implements com.vertica.sdk.UDXFactory.
|
virtualinherited |
Not used in this form
Implements com.vertica.sdk.UDXFactory.
|
virtual |
User subclasses should use the appropriate subclass of UDXFactory and not override this method on their own.
Implements com.vertica.sdk.UDXFactory.
boolean com.vertica.sdk.IterativeSourceFactory.isSourceApportionable | ( | ) |
void com.vertica.sdk.IterativeSourceFactory.plan | ( | ServerInterface | srvInterface, |
NodeSpecifyingPlanContext | planCtxt | ||
) | throws UdfException |
Execute any planning logic required at query plan time. This method is run once per query, during query initialization. Its job is to perform parameter validation, and to modify the set of nodes that the COPY statement will run on.
plan() runs exactly once per query, on the initiator node. If it throws an exception, the query will not proceed; it will be aborted prior to distributing the query to the other nodes and running prepare().
srvInterface | a ServerInterface object used to communicate with Vertica |
planCtxt | plan context specifying nodes |
UdfException | UDF problem |
SourceIterator com.vertica.sdk.IterativeSourceFactory.prepare | ( | ServerInterface | srvInterface, |
NodeSpecifyingPlanContext | planCtxt | ||
) | throws UdfException |
Prepare this SourceFactory to start creating sources. This function will be called on each node, prior to the Load operator starting to execute and prior to any other virtual functions on this class being called.
srvInterface | Interface to server operations and functionality, including (not-per-column) parameter lookup. |
planCtxt | Context for storing and retrieving arbitrary data, for use just by this instance of this query. The same context is shared with plan() and getDesiredThreads(). It also provides functionality for determining which nodes this query is running on. |
UdfException | UDF problem |
Referenced by com.vertica.sdk.IterativeSourceFactory.prepare().
SourceIterator com.vertica.sdk.IterativeSourceFactory.prepare | ( | ServerInterface | srvInterface, |
ExecutorPlanContext | planCtxt | ||
) | throws UdfException |
Prepare this SourceFactory to start creating sources. This function will be called on each node, prior to the Load operator starting to execute and prior to any other virtual functions on this class being called.
srvInterface | Interface to server operations and functionality, including (not-per-column) parameter lookup. |
planCtxt | Context for storing and retrieving arbitrary data, for use just by this instance of this query. The same context is shared with plan() and getDesiredThreads(). It provides functionality for determining which nodes this query is running on, as well as the number of threads allowed by the resource pool (via getMaxAllowedThreads()) and, more importantly, the actual load concurrency (via getLoadConcurrency()). |
UdfException | UDF problem |