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.
----

