Table of Contents

Set Table By Key

Description

Updates or inserts the sub-table corresponding to a given chain of keys in a table.

Inputs

Name Type Description
Table Table Type The input table.
Keys Tuple Type Chain of keys, starting from the first key column, identifying the sub-table that will be updated or inserted.
Sub Table Table Type Sub-table that will be inserted into Table. Its column names must match the corresponding names in Table, or this functor reports an error, unless Ignore Column Names is set. Its column types must also be compatible.

Optional Inputs

Name Type Description Default Value
Ignore Column Names Boolean Value Type If true, Sub Table's column names are not validated against Table's corresponding columns. False
Combine Sub Tables Boolean Value Type If true, Sub Table is merged into the existing sub-table already present at the given keys, instead of replacing it. False

Outputs

Name Type Description
Result Table Type The resulting table.

Group

Table

Notes

Keys is matched against Table's key columns starting from the leftmost one, the same way as in Get Table From Key; it is not possible to index by key columns other than a prefix of the leftmost ones. To index by a different key column, first bring it to the front with Reorder Table Column.

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 a sub-table already exists at the given keys, it is replaced by Sub Table (or merged with it, if Combine Sub Tables is true). If Sub Table is empty, the existing sub-table at those keys, if any, is removed from Table.

If the given keys are not yet present in Table and Sub Table is empty, this functor has no effect.

Table's own column names are always used as the column names of the resulting table, regardless of Ignore Column Names.

Internal Name

SetTableByKey

Usage examples

See practical examples of this functor in Lesson 7: Creating a new column and retrieving a data column from tables