public static List<List<String>> flat(List<List<String>> uniqSkewedElements)
        throws SemanticException {
      if (uniqSkewedElements == null) {
        return null;
      }
      List<List<String>> collection = new ArrayList<List<String>>();
      walker(collection, uniqSkewedElements, new ArrayList<String>(), 0);
      return collection;
    }
Flat a dynamic-multi-dimension collection.

For example:
1. skewed column (list): C1, C2, C3
2. skewed value (list of list): (1,a,x), (2,b,x), (1,c,x), (2,a,y)

Unique skewed elements for each skewed column (list of list):
(1,2,other), (a,b,c,other)
Index: (0,1,2) (0,1,2,3)

Complete dynamic-multi-dimension collection
(0,0) (1,a) * -&gt; T
(0,1) (1,b) -&gt; T
(0,2) (1,c) *-&gt; F
(0,3) (1,other)-&gt; F
(1,0) (2,a)-&gt; F
(1,1) (2,b) * -&gt; T
(1,2) (2,c)-&gt; F
(1,3) (2,other)-&gt; F
(2,0) (other,a) -&gt; T
(2,1) (other,b) -&gt; T
(2,2) (other,c) -&gt; T
(2,3) (other,other) -&gt; T
* is skewed value entry

@param uniqSkewedElements

@return
ql/src/java/org/apache/hadoop/hive/ql/optimizer/listbucketingpruner/ListBucketingPruner.java