Control / flow · All operations

Act on an empty input

A variant of Branch or loop

Do something different when the input has no rows: emit a placeholder row, switch branch or take another table.

Status

In arcform

Not built yet

arcform does not do this yet; it would live in how a Protocol runs. Its place on the roadmap

What other tools call it

Meridian's classification; an independent blind rating agreed on 95.7% of 324 rows (variant, version 3).

Apache Hop (1)
EasyMorph (1)
  • Either tableread 2026-09-27

    Pass on whichever of the current table and another table is not empty

KNIME Analytics Platform (1)
  • Empty Table Switchread 2026-09-27

    Route data to the first output when the table has rows, otherwise to the second

Pentaho Data Integration (1)

Background

In Apache Hop, the Detect Empty Stream transform outputs one single empty row when its input stream holds no rows, and nothing otherwise.[1] KNIME's Empty Table Switch node sends its input to the first output if the table has rows, and activates the second output if it has none.[2] In EasyMorph, the Either table action chooses whichever of two tables is not empty.[3]

When to use it

Plan for an empty input as a normal outcome, such as a day with no new orders, so that a quiet day is not mistaken for a failure. (Meridian's view) Emit a placeholder row when something downstream must run once regardless, such as a report that says there was nothing; switch to another branch when the empty case needs different work altogether. (Meridian's view) The row Apache Hop's Detect Empty Stream outputs has the same field layout as the input, with every value empty (null).[1] A placeholder row is still a row, so filter it out before anything counts or sums the output. (Meridian's view)

EasyMorph's Either table supports if-then workflows, in which the workflow makes one table empty when a condition holds and another table empty when it does not.[3] When both tables are not empty, EasyMorph's Either table gives preference to the one its Mode setting chooses.[3]

The method

Each output of KNIME's Empty Table Switch carries the input table or is inactive: the first output is inactive when the input is empty, and the second when it is not.[2] In Pentaho Data Integration, the Detect empty stream step outputs one empty row if its input stream does not contain any row.[4]

Compared with the alternatives

In object-oriented programming, a null object is an object with no referenced value or with defined neutral behaviour.[5] Returning an empty list as a null object lets the calling code iterate over the result exactly as it would over a non-empty list, with no special-case handling.[5] A step that acts on an empty input is the opposite choice: it makes the empty case visible and handles it on purpose, where a null object lets the code after it carry on without a special case. (Meridian's view)