== Why is this an issue?

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

[source,abap]
----
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

[source,abap]
----
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.
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

Driver table "xxxxx" should be checked for emptiness before being used.


endif::env-github,rspecator-view[]
