All of the schema information in EdgeDB is stored in the schema
module and is accessible via
introspection queries.
All the introspection types are themselves extending
Object
, so they are also subject to introspection as
object types. So the following
query will give a list of all the types used in introspection:
SELECT name := schema::ObjectType.name
FILTER name LIKE 'schema::%';
There’s also a couple of ways of getting the introspection type of a
particular expression. Any Object
has a __type__
link
to the schema::ObjectType
. For scalars there’s the
INTROSPECT
and TYPEOF
operators that can be used
to get the type of an expression.
Finally, the command DESCRIBE
can be used to get
information about EdgeDB types in a variety of human-readable formats.