[CALCITE-4215] Handle nulls in RelMdCollation#enumerableJoin0
diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdCollation.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdCollation.java
index 0be433b..8de0275 100644
--- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdCollation.java
+++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdCollation.java
@@ -519,6 +519,9 @@
     // (i) join type is INNER or LEFT;
     // (ii) RelCollation always orders nulls last.
     final ImmutableList<RelCollation> leftCollations = mq.collations(left);
+    if (leftCollations == null) {
+      return null;
+    }
     switch (joinType) {
     case SEMI:
     case ANTI:
@@ -530,12 +533,12 @@
       for (RelCollation collation : leftCollations) {
         for (RelFieldCollation field : collation.getFieldCollations()) {
           if (!(RelFieldCollation.NullDirection.LAST == field.nullDirection)) {
-            return ImmutableList.of();
+            return null;
           }
         }
       }
       return leftCollations;
     }
-    return ImmutableList.of();
+    return null;
   }
 }