This functor updates or inserts a sub-table corresponding to the given chain of keys into a table.
| Name | Type | Description |
|---|---|---|
| Table | Table Type | The input table. |
| Keys | Tuple Type | Chain of keys identifying the sub-table that will be updated or insert. |
| Sub Table | Table Type | Sub-table that will be inserted into the input table. The column names in the sub-table must match the corresponding names in the input table. The column types must also be compatible. |
| Name | Type | Description |
|---|---|---|
| Result | Table Type | The resulting table. |
This functor inserts elements corresponding to the given tuple of keys into the input table.
Example 1:
Given the table below
| Key1* | Key2* | Key3* | Value1 | Value2 | Value3 |
|---|---|---|---|---|---|
| 1 | “a” | 11 | 12 | “bbbb” | 23 |
| 1 | “b” | 22 | 12 | “cccc” | 23 |
| 2 | “d” | 22 | 12 | “dddd” | 12 |
inserting a sub-table corresponding to the tuple of keys <2, “a”>, where 2 corresponds to column “Key1” and “a” corresponds to column “Key2”,
| Key3* | Value1 | Value2 | Value3 |
|---|---|---|---|
| 11 | 12 | “bbbb” | 14 |
| 22 | 12 | “aaaa” | 23 |
results in
| Key1* | Key2* | Key3* | Value1 | Value2 | Value3 |
|---|---|---|---|---|---|
| 1 | “a” | 11 | 12 | “bbbb” | 23 |
| 1 | “b” | 22 | 12 | “cccc” | 23 |
| 2 | “a” | 11 | 12 | “bbbb” | 14 |
| 2 | “a” | 22 | 12 | “aaaa” | 23 |
| 2 | “d” | 22 | 12 | “dddd” | 12 |
Example 2:
Inserting the sub-table corresponding to the tuple of keys <2>, where 2 corresponds to column “Key1”,
| Key2* | Key3* | Value1 | Value2 | Value3 |
|---|---|---|---|---|
| “a” | 11 | 12 | “bbbb” | 14 |
| “a” | 22 | 12 | “aaaa” | 23 |
| “d” | 22 | 12 | “dddd” | 12 |
results in
| Key1* | Key2* | Key3* | Value1 | Value2 | Value3 |
|---|---|---|---|---|---|
| 1 | “a” | 11 | 12 | “bbbb” | 23 |
| 1 | “b” | 22 | 12 | “cccc” | 23 |
| 2 | “a” | 11 | 12 | “bbbb” | 14 |
| 2 | “a” | 22 | 12 | “aaaa” | 23 |
| 2 | “d” | 22 | 12 | “dddd” | 12 |
If there is already a sub-table corresponding to the sub-table being inserted in the table, the existent sub-table is replaced by the new sub-table. The same is true if the sub-table being inserted is empty. In this case, the existent sub-table is removed from the input table.
It is not possible to insert a sub-table indexed by keys from arbitrary key columns. For example, in the example above, it is not possible to insert a sub-table corresponding to keys <2, 22>, where 2 corresponds to the first column (“Key1”) and 22 corresponds to the third column (“Key3”). To do this, first reorder the key columns using the Reorder Table Column functor.
SetTableByKey