You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"attribute sets" is an extension to the bandicoot language with the following goals:
make the type composition easier
improve the readability and safety of certain relational operators
when working with the relational types the same attributes appear in multiple relations, e.g.:
type Queue {position int, taskId long}
type Task {taskId long, command string}
with the help of attribute sets the attribute taskId could be moved out into a separate type and then reused by both types:
type TaskId {taskId long}
type Queue {position int, TaskId}
type Task {TaskId, command string}
this way users can evolve the binding types independently from the main types. in other words if a user needs to change the TaskId he needs to perform the change in only one place.
another aspect of this enhancement is the extension of the following relational operators:
join: join TaskId queue tasks
minus: minus TaskId queue tasks
project: project TaskId queue
this way it becomes clear which attributes are involved in the join operation. the safety aspect comes from the fact that if the Queue and Task types get extended it does not impact the result of the corresponding join operation.
The text was updated successfully, but these errors were encountered:
"attribute sets" is an extension to the bandicoot language with the following goals:
when working with the relational types the same attributes appear in multiple relations, e.g.:
with the help of attribute sets the attribute
taskId
could be moved out into a separate type and then reused by both types:this way users can evolve the binding types independently from the main types. in other words if a user needs to change the TaskId he needs to perform the change in only one place.
another aspect of this enhancement is the extension of the following relational operators:
join TaskId queue tasks
minus TaskId queue tasks
project TaskId queue
this way it becomes clear which attributes are involved in the join operation. the safety aspect comes from the fact that if the Queue and Task types get extended it does not impact the result of the corresponding join operation.
The text was updated successfully, but these errors were encountered: