@Override
  public void init() {
    super.init();
    for(int i =0; i < fields.length; ++i) {
      fields[i].init();
    }
  }
Set the element in this column vector from the given input vector.

The inputElementNum will be adjusted to 0 if the input column has isRepeating set.

On the other hand, the outElementNum must have been adjusted to 0 in ADVANCE when the output
has isRepeating set.

IMPORTANT: if the output entry is marked as NULL, this method will do NOTHING.  This
supports the caller to do output NULL processing in advance that may cause the output results
operation to be ignored.  Thus, make sure the output isNull entry is set in ADVANCE.

The inputColVector noNulls and isNull entry will be examined.  The output will only
be set if the input is NOT NULL.  I.e. noNulls || !isNull[inputElementNum] where
inputElementNum may have been adjusted to 0 for isRepeating.

If the input entry is NULL or out-of-range, the output will be marked as NULL.
I.e. set output noNull = false and isNull[outElementNum] = true.  An example of out-of-range
is the DecimalColumnVector which can find the input decimal does not fit in the output
precision/scale.

(Since we return immediately if the output entry is NULL, we have no need and do not mark
the output entry to NOT NULL).
storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/UnionColumnVector.java