Wrap
Tuple-valued attribute
Signature
wrap(operand: Relation, attributes: AttrList, as: AttrName) -> Relation
Examples
wrap(suppliers, [:city, :status], :extra)
wrap(suppliers, [:city, :status], :extra, allbut: true)
Description
Computes the relation obtained by removing attributes
and replacing them
by a single attribute (as
). The latter is a tuple-valued attribute
obtained by projecting the input tuple on attributes
.
This operators supports an ALL BUT variant, through the allbut
option.
When set to true, the operator keeps specified attributes and wraps all the
remaining ones as a tuple-valued attribute.
Implementation notes
This operator does not compile to SQL so far. Contributions are welcome to provide it with a SQL compilation for SQL DBMSs that support this kind of feature (e.g. PostgreSQL with JSON data type)