Class UnnestImpl

All Implemented Interfaces:

public class UnnestImpl extends Object implements Unnest
Contains the actual unnest operation. Unnest is a simple transfer operation in this implementation. Additionally, unnest produces an implicit rowId column that allows unnest to output batches with many rows of incoming data being unnested in a single call to innerNext(). Downstream blocking operators need to be aware of this rowId column and include the rowId as the sort or group by key. This class follows the pattern of other operators that generate code at runtime. Normally this class would be abstract and have placeholders for doSetup and doEval. Unnest however, doesn't require code generation so we can simply implement the code in a simple class that looks similar to the code gen templates used by other operators but does not implement the doSetup and doEval methods.