Operator UnionByKey

Takes a list of concepts, plus attributes indicating their primary keys, and unifies the concepts. In contrast to the operator JoinByKey, the output columnset is a union of the input columnsets rather than a join. For each value occuring in one of the key attributes of an input columnset a tuple in the output columnset is created. If a value is not present in all key attributes of the input columnsets, the corresponding (non-key) attributes of the output columnset are filled by NULL values.

In TheOutputConcept, only one of the keys must be present. Each `BaseAttribute` specified in TheKeys must be a primary key of one of TheConcepts; thus, the number of entries in TheConcepts and TheKeys must be equal.

If several of the input concepts contain a `BaseAttribute` (or a `MultiColumnFeature`) with the same name, a special mapping mechanism is needed to relate them to different features in TheOutputConcept. For this, the parameters MapInput and MapOutput exist. Use MapInput to specify any feature in one of TheConcepts, and use MapOutput to specify the corresponding feature in TheOutputConcept. To make sure that for each MapInput the right MapOutput is found by this operator, it uses the looping mechanism. Although the parameter is not looped, the loop numbers in the parameter table in M4 are used to ensure the correspondence between MapInput and MapOutput. However, these two parameters only need to be specified for every pair of equally-named features in TheConcepts. So there are not necessarily as many "loops" as there are features in TheOutputConcept.

The field `par_stloopnr` in the M4 parameter table must be set to the number of pairs of MapInput/MapOutput parameters (may be 0). Each of these pairs gets a different loop number while all the other parameters get loop number 0.

### Parameter

Parameter | Object | Type | optional | min_arg | max_arg | coordinated | Remarks
TheConcepts | Concept | Input | no | 2 |  | no |
TheKeys | BaseAttribute | Input | no | 2 |  | no |
MapInput | Feature | Input | yes | 0 | 1 | yes |
MapOutput | Feature | Output | yes | 0 | 1 | yes |
TheOutputConcept | Concept | Output | no | 1 | 1 | no | inherited

### Coordinated ParameterArrays

Group | ParameterNames
Group 1 | MapOutput and MapInput