Using an empty driver table in a SELECT/FOR ALL ENTRIES table has a very important side effect: the complete
WHERE clause is not taken into account because a NO WHERE condition is generated. Thus a full table scan is unexpectedly
executed.
Noncompliant code example
SELECT carrid , connid , seatsocc FROM flights
INTO TABLE seatsocc_tab
FOR ALL ENTRIES IN conn_tab " Noncompliant; conn_tab may be empty.
WHERE carrid = conn_tab-carrid
AND connid = conn_tab-connid.
Compliant solution
IF conn_tab is not initial.
" ...
SELECT carrid , connid , seatsocc FROM flights
INTO TABLE seatsocc_tab
FOR ALL ENTRIES IN conn_tab
WHERE carrid = conn_tab-carrid
AND connid = conn_tab-connid.
" ...
ENDIF.