We know we can create a computed property based on other properties like so as per the docs,
type Person {
property first_name -> str;
property last_name -> str;
property full_name := .first_name ++ ' ' ++ .last_name;
}
I'd like to create a computed property that shows whether a given combination of non-required properties are all present or all absent, conceptually like this,
type Person {
property first_name -> str;
property last_name -> str;
property has_name := .first_name is not null and .last_name is not null;
}
However, EdgeDB does not have a concept of null so this does not work. Is it possible to accomplish this? If so, could the resulting computed property itself be required?
You can check optional properties for emptiness using the exists operator: