implements vertical partitioner for Thrift unions