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)