Repository navigation
Relational functions
Maarten Hilferink edited this page Oct 14, 2026
·
53 revisions
Relational functions are used to relate data items of different domain units like lookup or rjoin or create new domain units like unique. For the spatial counterparts of a join, and how they lead on to allocation, see Spatial joins and allocation.
Selection functions can be found on the separate page: Selection functions.
- lookup - using a relation to find the relevant entries
- rlookup - using a foreign key attribute to make a relation
- rlookup_with_null - as rlookup(relational function), but a null value is looked up in a null entry of the target values instead of resulting in null
- rjoin - using a foreign key to find the relevant entries, combining lookup and rlookup
- join_equal_values - find all combinations of A and B where A.x_rel is equal to B.x_rel
- join_equal_values_uint8 - is the join_equal_values variant with a uint8 result domain
- join_equal_values_uint16 - is the join_equal_values variant with a uint16 result domain
- join_equal_values_uint32 - is the join_equal_values variant with a uint32 result domain
- join_equal_values_uint64 - is the join_equal_values variant with a uint64 result domain
- join_equal_values_uint8_16_32_64 - find all combinations of A and B where A.x_rel is equal to B.x_rel, resulting in a domain unit with the explicit value type
- pareto_optimal - the elements that are Pareto-optimal within their partition on one or more minimised criteria: the front per group by a sort and a sweep, instead of a self-join of the partition with itself
- pareto_optimal_eps - as pareto_optimal, with a relative tolerance per criterion (epsilon-dominance), to thin a front
- join_near_values - creates a new unit with points nearby other points
- join_near_values_uint8, join_near_values_uint16, join_near_values_uint32, join_near_values_uint64 - join_near_values variants with a typed result domain
- index - an index number based on a sort order
- direct_index
- invert - inverts a relation
- invertAll - inverts a relation with linked list for one-to-many navigation
- collect_attr_by_org_rel - collects a set of attributes to a new domain unit, using an org_rel attribute (lookup)
- collect_attr_by_cond - collects a set of attributes to a new domain unit, using a condition
- collect_spec - as above, with the choice of org_rel/condition and the collection scope taken from the first argument
- table_spec - as collect_spec, but returns the supplied selection domain as a new table with the collected attributes directly beneath it
- collect_by_cond - collects an attributes to a new domain unit, using a condition
- recollect_by_cond - recollects attribute values of a selection back to an original set using the condition for the selection.
- collect_by_org_rel - collects values via an org_rel relation; synonymous with lookup (the arrow/array-index operator)
- subindex - refines an index: within runs of an equal primary key, the elements are ordered by the secondary values
- ordinal - passes the ordinal value of an attribute through (identity on numeric attributes)
- unique - configures a new unit, based on the unique values
- unique_uint8 - is the unique variant with a uint8 result domain
- unique_uint16 - is the unique variant with a uint16 result domain
- unique_uint32 - is the unique variant with a uint32 result domain
- unique_uint64 - is the unique variant with a uint64 result domain
- unique_uint8_with_null - is the unique variant with a uint8 result domain that keeps a null entry
- unique_uint16_with_null - is the unique variant with a uint16 result domain that keeps a null entry
- unique_uint32_with_null - is the unique variant with a uint32 result domain that keeps a null entry
- unique_uint64_with_null - is the unique variant with a uint64 result domain that keeps a null entry
- unique_with_null - is the unique variant that keeps a null entry when the input contains null values
- unique_uint8_16_32_64 - configures a new unit, based on the unique values, with a uint8_16_32_64 values unit
- union - obsolete, only in use for backward compatibility
- union_unit - configures a new unit, based on the union of other units
- union_unit_uint8_16_32_64 - configures a new unit, based on the union of other units, with a uint8_16_32_64 values unit
- union_unit_uint8, union_unit_uint16, union_unit_uint32, union_unit_uint64 - union_unit variants with a typed result domain
- union_data - configures a new attribute, based on the union of other data items
- combine_uint8 - is the combine variant with a uint8 result domain
- combine_uint16 - is the combine variant with a uint16 result domain
- combine_uint32 - is the combine variant with a uint32 result domain
- combine_uint64 - is the combine variant with a uint64 result domain
- combine_unit_uint8 - is the combine variant without subitems, with a uint8 result domain
- combine_unit_uint16 - is the combine variant without subitems, with a uint16 result domain
- combine_unit_uint32 - is the combine variant without subitems, with a uint32 result domain
- combine_unit_uint64 - is the combine variant without subitems, with a uint64 result domain
- combine_unit - is the combine variant without subitems
- ordered_union_data - union_data variant, stating that all unioned values are non-decreasing; registered operator name ordererd_union_data (sic)
- combine - configures a new unit, based on the Cartesian product of other units
- combine_unit_uint8_16_32_64 - configures a new unit, without subitems, based on the Cartesian product of other units, with a uint8_16_32_64 values unit
- combine_uint8_16_32_64 - configures a new unit, based on the Cartesian product of other units, with a uint8_16_32_64 values unit
- combine_data - configures a new attribute, based on the Cartesian product of other data items
- combine_rel - the relation to one factor of a combined unit, per element: combine_rel(x_rel, position), or first_rel(x_rel) to sixteenth_rel(x_rel)
- merge - merges the values of a data item, based on an option data item
GeoDMS ©Object Vision BV. Source code distributed under GNU GPL-3. Documentation distributed under CC BY-SA 4.0.