Search
ctrl/
Ask AI
Light
Dark
System

Indexes

This section describes introspection of indexes.

Introspection of the schema::Index:

Copy
db> 
... 
... 
... 
... 
... 
... 
... 
... 
... 
... 
with module schema
select ObjectType {
    name,
    links: {
        name,
    },
    properties: {
        name,
    }
}
filter .name = 'schema::Index';
{
    Object {
        name: 'schema::Index',
        links: {Object { name: '__type__' }},
        properties: {
            Object { name: 'expr' },
            Object { name: 'id' },
            Object { name: 'name' }
        }
    }
}

Consider the following schema:

Copy
abstract type Addressable {
    property address -> str;
}

type User extending Addressable {
    # define some properties and a link
    required property name -> str;

    multi link friends -> User;

    # define an index for User based on name
    index on (.name);
}

Introspection of User.name index:

Copy
db> 
... 
... 
... 
... 
with module schema
select Index {
    expr,
}
filter .expr like '%.name';
{
    Object {
        expr: '.name'
    }
}

For introspection of the index within the context of its host type see object type introspection.