Executing UDRs in parallel
The database server can execute the following UDRs in parallel
if they are part of a PDQ and PDQPRIORITY is turned on:
- C UDRs that call only DataBlade® API functions that are PDQ threadsafe can execute in parallel.
- Java™ UDRs that call only DataBlade
API functions
that are PDQ threadsafe can execute in parallel.
For more information, refer to Write PDQ threadsafe UDRs.
- Built-in function UDR
Examples of built-in function UDRs include overloaded operators for UDTs, such as the following operators that are used for a generic B-tree index:
- lessthan (<)
- lessthanorequal (<=)
- equal (=)
- greaterthanorequal (>=)
- greaterthan (>)
UDRs can execute in parallel in the following situations if they
are part of a PDQ and PDQPRIORITY is turned on:
- A UDR used as an expression in a query
- DataBlade API FastPath executing a UDR
- Implicit UDR execution when evaluating a user-defined aggregate on a column of a user-defined type
- Implicit UDR execution for overloading of comparison operator
- Assign UDR executed implicitly
- Comparison UDR execution for sort
- A UDR that a generic B-tree index executes
A UDR cannot execute the following SQL statements in parallel:
- Singleton execution with the EXECUTE FUNCTION statement in either DB-Access or
- INSERT INTO tablename EXECUTE udr()
- FOREACH EXECUTE udr() END FOREACH
- OPEN CURSOR EXECUTE udr()
- Remote UDR execution