This is an old revision of the document!
Set Table By Key
Description
This functor updates or inserts a sub-table corresponding to the given chain of keys into a table.
Inputs
Name | Type | Description |
---|---|---|
Table | Table | The input table. |
Keys | Tuple | Chain of keys identifying the sub-table that will be updated or insert. |
Sub Table | Table | 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. |
Outputs
Name | Type | Description |
---|---|---|
Result | Table | The resulting table. |
Group
Notes
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 Columns functor.
Internal Name
SetTableByKey