Lately I’ve been reading the documentation for Apache Calcite.

The natural join is associative and commutative.


d1 = do.call(data.frame, as.list(1:10))
d1$key12 = 

d3 = do.call(data.frame, as.list(letters))