code: func compareColumnSet(l, r *intsets.Sparse) (int, bool) {
  	lLen, rLen := l.Len(), r.Len()
  	if lLen < rLen {
  		// -1 is meaningful only when l.SubsetOf(r) is true.
  		return -1, l.SubsetOf(r)
  	}
  	if lLen == rLen {
  		// 0 is meaningful only when l.SubsetOf(r) is true.
  		return 0, l.SubsetOf(r)
  	}
  	// 1 is meaningful only when r.SubsetOf(l) is true.
  	return 1, r.SubsetOf(l)
  }
docs: // compareColumnSet will compares the two set. The last return value is used to indicate
  // if they are comparable, it is false when both two sets have columns that do not occur in the other.
  // When the second return value is true, the value of first:
  // (1) -1 means that `l` is a strict subset of `r`;
  // (2) 0 means that `l` equals to `r`;
  // (3) 1 means that `l` is a strict superset of `r`.