Parallel UDR in WHERE clause

The following example is a typical PDQ that contains two UDRs:
SELECT c_udr1(tabid) FROM tab 
   WHERE tabname = c_udr2(3) AND 
      tabid > 100;
If the table tab has multiple fragments and the optimizer decides to run the select statement in parallel, the following operations can execute in parallel:
  • The scan of table tab is performed by multiple scan threads in parallel. Each scan thread fetches a row from a fragment of tab.
  • Each scan thread also evaluates the WHERE condition in parallel. Each scan thread executes the UDR c_udr2() in parallel.
  • Each scan thread also executes the UDR c_udr1() in the select list in parallel.