Reporting join conditions
- Last Updated: May 12, 2026
- 1 minute read
- OpenAccess SDK
- Version 8.1
- Documentation
When executing queries on inner tables so that join conditions are expanded to match the block of outer table records, the following OpenAccess SDK SQL engine API behavior occurs:
-
dam_getRestrictionList
This function returns a condition list with conditions on a single column. The condition list should be interpreted as having a list of OR conditions. When the condition on the column is a join condition (
emp.deptno=dept.deptno),dam_getRestrictionList("deptno")returns the condition list that contains conditions for each outer table BlockJoinRowList (the list that has unique outer table rows).(deptno=1 OR deptno=2 OR deptno=5 OR deptno=8)To navigate all of the conditions, the IP should use
dam_getFirstCond()anddam_getNextCond(). -
dam_getOptimalIndexAndConditions
This function returns condition lists where each list has conditions on the different columns in the index: (CONDA1 AND CONDB1) OR (CONDA2 AND CONDB2). When a condition on one or more of the index columns is a join condition, the condition lists are expanded to contain a condition for each outer table BlockJoinRowList (the list that has unique outer table rows).
order.orderno = 1 AND order.customerno=CUSTOMER.customernoWhen the IP is processing a query on an
ordertable that has multiple column index oncustomerno,orderno, thedam_getOptimalIndexAndConditions()returns:orderno=1 AND customerno=1) OR
orderno=1 AND customerno=2) OR
orderno=1 AND customerno=5) OR
orderno=1 AND customerno=8)
Note: The IP should use
dam_getFirstCondList(),dam_getNextCondList()to navigate all of the condition lists. -
dam_getSetOfConditionLists, dam_getSetOfConditionListsEx
These functions expand the condition lists reported to contain the condition for each of the outer table BlockJoinRowList. To navigate all of the condition lists, the IP should use
dam_getFirstCondList()anddam_getNextCondList().