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