Crossjoin-like operation except A x {} = A? Is there a way to implement operation (let's annotate it ∘) that behaves just like regular cross join except for empty sets it returns non empty side.

∘ - new operation
x - cross join
{} - empty result set


A ∘ B  = A x B
A ∘ {} = A
{} ∘ B = B
{} ∘ {} = {}


Columns of A and B differ and are non empty.
Will this work for you?

A FULL OUTER JOIN B ON TRUE