Annotations
This section describes the DDL commands pertaining to annotations.
Create abstract annotation
Define a new annotation.
[ with with-item [, ...] ]
create abstract [ inheritable ] annotation name
[ "{"
create annotation annotation-name := value ;
[...]
"}" ] ;
Description
The command create abstract annotation
defines a new annotation
for use in the current branch.
If name is qualified with a module name, then the annotation is created in that module, otherwise it is created in the current module. The annotation name must be distinct from that of any existing schema item in the module.
The annotations are non-inheritable by default. That is, if a schema item
has an annotation defined on it, the descendants of that schema item will
not automatically inherit the annotation. Normal inheritance behavior can
be turned on by declaring the annotation with the inheritable
qualifier.
Most sub-commands and options of this command are identical to the
SDL annotation declaration.
There’s only one subcommand that is allowed in the create
annotation
block:
- create annotation annotation-name := value
-
Annotations can also have annotations. Set the annotation-name of the enclosing annotation to a specific value. See
create annotation
for details.
Alter abstract annotation
Change the definition of an annotation.
alter abstract annotation name
[ "{" ] subcommand; [...] [ "}" ];
where subcommand is one of
rename to newname
create annotation annotation-name := value
alter annotation annotation-name := value
drop annotation annotation-name
Parameters
- name
-
The name (optionally module-qualified) of the annotation to alter.
The following subcommands are allowed in the alter abstract annotation
block:
- rename to newname
-
Change the name of the annotation to newname.
- alter annotation annotation-name;
-
Annotations can also have annotations. Change annotation-name to a specific value. See
alter annotation
for details. - drop annotation annotation-name;
-
Annotations can also have annotations. Remove annotation annotation-name. See
drop annotation
for details.
All the subcommands allowed in the create abstract annotation
block are also valid subcommands for alter annotation
block.
Drop abstract annotation
Remove a schema annotation.
[ with with-item [, ...] ]
drop abstract annotation name ;
Description
The command drop abstract annotation
removes an existing schema
annotation from the database schema. Note that the inheritable
qualifier is not necessary in this statement.
Create annotation
Define an annotation value for a given schema item.
create annotation annotation-name := value
Description
The command create annotation
defines an annotation for a schema item.
annotation-name refers to the name of a defined annotation, and value must be a constant EdgeQL expression evaluating into a string.
This statement can only be used as a subcommand in another DDL statement.
Alter annotation
Alter an annotation value for a given schema item.
alter annotation annotation-name := value
Description
The command alter annotation
alters an annotation value on a schema item.
annotation-name refers to the name of a defined annotation, and value must be a constant EdgeQL expression evaluating into a string.
This statement can only be used as a subcommand in another DDL statement.
Drop annotation
Remove an annotation from a given schema item.
drop annotation annotation-name ;
Description
The command drop annotation
removes an annotation value from a schema item.
annotaion_name refers to the name of a defined annotation. The annotation value does not have to exist on a schema item.
This statement can only be used as a subcommand in another DDL statement.
Example
Drop the title
annotation from the User
object type:
alter type User {
drop annotation title;
};