An empty side gives no output pairs.

highlighted = computed this step

Empty side gives zero rows

If one side has no rows, there are no pairs to output.

empty side means no pairs\text{empty side means no pairs}

Read empty product

2 left rows and 0 right rows produce 0 output rows.

output rows=0\text{output rows}=0

CROSS JOIN examples are tiny finite-table transforms; SQL dialect completeness, type coercion, optimizer behavior, execution cost, indexing, and database-product claims are out of scope.

Empty side gives zero rows: left tablecolorredblue Empty side gives zero rows: right tablesizenone pair gridleftSourcerightSourceleftValuesrightValuesoutputnonenonenonenonenone CROSS JOIN output rowsleft.colorright.sizenonenone CROSS JOIN factsfactvalueleftRowCount2rightRowCount0pairCount0outputRowCount0outputColumnCount2rowOrderleft_source_then_right_sourceemptySideProductyes

No placeholder rows

This CROSS JOIN does not pad an empty side.

no padding\text{no padding}

Summary

Empty product means zero output rows.

zero pairs\text{zero pairs}