Annotations

This section describes the DDL commands pertaining to annotations.

Create abstract annotation

Define a new annotation.

  1. [ with with-item [, ...] ]
  2. create abstract [ inheritable ] annotation name
  3. [ "{"
  4. create annotation annotation-name := value ;
  5. [...]
  6. "}" ] ;

Description

The command create abstract annotation defines a new annotation for use in the current database.

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.

Example

Declare an annotation extrainfo.

  1. create abstract annotation extrainfo;

Alter abstract annotation

Change the definition of an annotation.

  1. alter abstract annotation name
  2. [ "{" ] subcommand; [...] [ "}" ];
  3. where subcommand is one of
  4. rename to newname
  5. create annotation annotation-name := value
  6. alter annotation annotation-name := value
  7. drop annotation annotation-name

Description

alter abstract annotation changes the definition of an abstract annotation.

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.

Examples

Rename an annotation:

  1. alter abstract annotation extrainfo
  2. rename to extra_info;

Drop abstract annotation

Remove a schema annotation.

  1. [ with with-item [, ...] ]
  2. 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.

Example

Drop the annotation extra_info:

  1. drop abstract annotation extra_info;

Create annotation

Define an annotation value for a given schema item.

  1. 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.

Example

Create an object type User and set its title annotation to "User type".

  1. create type User {
  2. create annotation title := "User type";
  3. };

Alter annotation

Alter an annotation value for a given schema item.

  1. 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.

Example

Alter an object type User and alter the value of its previously set title annotation to "User type".

  1. alter type User {
  2. alter annotation title := "User type";
  3. };

Drop annotation

Remove an annotation from a given schema item.

  1. 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:

  1. alter type User {
  2. drop annotation title;
  3. };

See also

Schema > Annotations

SDL > Annotations

Cheatsheets > Annotations

Introspection > Object types