Syntactic separator/terminator for relations
I initially found it surprising that there's nothing that goes after a relation declaration to terminate it or to separate it from the next declaration. Even now, I occasionally find it confusing since it isn't obvious if the definition of a primary key corresponds to the relation before or after. For example, here's an excerpt from the generated OVN_Southbound.dl for OVN:
primary key (x) x._uuid
input relation Encap (
_uuid: uuid,
__type: string,
options: Map<string,string>,
ip: string,
chassis_name: string
)
primary key (x) x._uuid
The (optional?) support for separators or terminators would be helpful.
Another option that would work in this particular situation is to move primary key declaration inside the parenthesis (SQL-style):
primary key (x) x._uuid
input relation Encap (
_uuid: uuid,
__type: string,
options: Map<string,string>,
ip: string,
chassis_name: string,
primary key (x) x._uuid
)
In simple cases where the primary key consist of a single field, we could simply annotate this field (also SQL-style)
primary key (x) x._uuid
input relation Encap (
_uuid: uuid primary key,
__type: string,
options: Map<string,string>,
ip: string,
chassis_name: string
)
Another option that would work in this particular situation is to move primary key declaration inside the parenthesis (SQL-style):
Good idea.