<query> ::= <select> | <with-recursive>
<select> ::= 'SELECT' <columns> 'FROM' <source>
[ 'WHERE' <predicate> ]
[ 'GROUP BY' <columns> ]
[ 'HAVING' <predicate> ]
[ 'ORDER BY' <columns> [ 'ASC' | 'DESC' ] ]
[ 'LIMIT' <integer> ]
<source> ::= <table>
| <subquery>
| <lineage-traversal>
<lineage-traversal>
::= 'LINEAGE' '(' <did> [ ',' <integer> ] ')'
<predicate> ::= <comparison>
| <in-list>
| <contains>
| <attested-by>
<contains> ::= <expr> 'CONTAINS' <literal>
<attested-by>::= <expr> 'ATTESTED_BY' <did> [ 'TYPE' <literal> ]
<did> ::= 'did' ':' <namespace> ':' <kind> ':' <name>
[ '@' <version> ]
Tables
| Name | Columns |
|---|---|
entries |
entry_did, entry_type, version, publisher_did, published_at, content_hash, bond_amount, bond_tier, tags, data, sequence |
lineage |
did, parent, signed_at |
attestations |
id, entry_did, attester_did, type, issued_at, evidence, signature |
bonds |
did, amount, tier, posted_at, status |
enr |
did, namespace, parent, created_at |
Reserved words
In addition to all SQL-92 keywords:
DID, LINEAGE, ATTESTED_BY, CONTAINS, TYPE (in attestation context).