Prefix: graphitron_.

What the generator understands the author to have asked for. Each row is the decoded reading of one directive application: the same information that stands in the schema documents, restated in the generator’s own vocabulary so later questions can be asked with plain joins instead of re-parsing strings. Decoding is tolerant: a value that does not fit the declared shape is quarantined rather than lost.

Where to start

graphitron_table_entry

The table a type is bound to, as one row per type however many @table applications the corpus wrote on it.

graphitron_field_reference_entry

@reference on a field or input field: one row per application, because an application is a fact of its own.

graphitron_undecoded_argument_entry

The tolerant-decode overflow: a graphitron application argument whose literal does not fit the declared shape decodes to NULL in its typed column and quarantines its raw text here, so the authored value is never lost and the malformed-literal detection has its row.

graphitron_node_type

Which of a graph’s types are node types: the union of the authored @node population and the resolved one.

How this family meets the others

The normalization crossings declared for this family: rules by which a name written in one family’s vocabulary is matched against another’s census. Declared rows rather than a closed set, so a crossing nobody has declared does not appear here.

Declared crossings
graphitron_field_reference_step_hop (graphitron_ spellings against the sql_ census)

A written key reference meets the constraint census case-insensitively under the resolver’s namespace precedence: a qualifier binds hard, the SQL constraint name answers first, and the generated Keys-class constant is eligible only where no SQL constraint answers the name.

graphitron_spelled_table (graphitron_ spellings against the sql_ census)

A written table reference meets the catalog census by case-insensitive match on pre-normalized spelling columns, one row per candidate.

intent_argmapping_key_column_candidate (graphitron_ spellings against the sql_ census)

An argMapping path segment meets column names case-insensitively along the binding walk.

Declared key edges
store_

94 foreign keys from this family’s rows into that one.

graphql_

93 foreign keys from this family’s rows into that one.

sql_

14 foreign keys from this family’s rows into that one.

code_

1 foreign key from this family’s rows into that one.

intent_

1 foreign key from that family’s rows into this one.

Why the name is right

What graphitron makes of the SDL document: the decoded directives, and the provenance of the rows macro expansion mints. A row here is a decode of a captured application rather than a conclusion drawn about the schema: it says what a directive application spelled, in graphitron’s vocabulary instead of the document’s. That makes it a derivation whose producer runs at capture cadence, not a second transcription.

graphitron_argmapping_candidate

What an argMapping right-hand side may name: one row per writable path, under the schema coordinate the directive carrying it sits on. For example at Mutation.rentFilm(input:) the argument’s own name is one row, every field of the input type below it is another, and the input-prefixed spelling of each of those is a third row marked deprecated, so an author who writes either spelling meets a candidate.

Primary key: (graph_name, coordinate, path). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, coordinate) references graphql_element (graph_name, coordinate). Foreign key: (graph_name, coordinate, parent_path) references graphitron_argmapping_candidate (graph_name, coordinate, path). Check: "PATH" <> ''. Check: "ELEMENT_KIND" IN('ARGUMENT', 'INPUT_FIELD', 'SIGIL'). Check: ("PARENT_PATH" IS NULL) = ("DEPTH" = 0). Check: ("CONTAINER_TYPE_NAME" IS NULL) = ("ELEMENT_KIND" IN('ARGUMENT', 'SIGIL')). Check: ("NAMED_TYPE" IS NULL) = ("ELEMENT_KIND" = 'SIGIL'). Check: ("ELEMENT_KIND" <> 'SIGIL') OR (("DEPTH" = 0) AND ("IS_LIST" = FALSE) AND ("CLOSES_CYCLE" = FALSE)). Check: ("DEPRECATED" = FALSE) OR ("DEPTH" > 0).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

coordinate (CHARACTER VARYING, not null)

the schema coordinate the argMapping is written at, spelled as the GraphQL specification spells one and anchored by graphql_element: Type.field where a directive sits on a field, Type.field(argument:) where it sits on an argument, and InputType.field where it sits on an input field. A directive location and never a container, which is the difference from what this column held before: the three shapes are the three placements argMapping reaches capture from, so a reader wanting the parts joins the coordinate relation rather than reading a decomposition kept beside the spelling.

path (CHARACTER VARYING, not null)

the right-hand side an author writes to name this element at this coordinate, from its head down, dot-separated. Every row is something writable, so no path is empty: a root is a row whose parent_path is null, not one whose path is blank. An entry’s written path meets its candidate on this column exactly, with no head to strip first and no prefix probe to rank.

parent_path (CHARACTER VARYING, nullable)

the path one segment shorter, NULL at a root; a foreign key back to this relation, so a subtree is deleted by deleting what it hangs from. This is what says a row is a root, and no blank path stands in for it

name (CHARACTER VARYING, not null)

the last segment of the path, which is what this row’s own element is called. At a root it is the whole path. An entry naming one thing below a resolved position meets this column, so the completion set at a position is the names of that position’s children

element_kind (CHARACTER VARYING, not null)

what this row’s own element is: ARGUMENT for a field’s argument, INPUT_FIELD for a field of an input type, SIGIL for a value the runtime holds. A property of the element rather than of the coordinate it is written at, so a reader switching on it needs no depth test, and the two nullnesses beside it are stated against this column. An argument and a sigil have no declaring type, so neither carries a container; a sigil names no GraphQL type, so it carries no named type either.

container_type_name (CHARACTER VARYING, nullable)

the type this candidate’s element is declared on, NULL where the element is an argument or a sigil and no type declares it

named_type (CHARACTER VARYING, nullable)

the type of the value at this candidate, unwrapped of list and non-null. The whole of what says whether anything opens below: a candidate whose type is an input object has children and every other candidate is a leaf, so a reader needs no separate kind column and no rule of its own

is_list (BOOLEAN, not null)

whether the value at this candidate is a list, carried from the argument or input field it stands for. A consumer binding a parameter to this candidate needs the arity as much as the type, and reading it here is what keeps such a consumer from joining back to the SDL relation the writer already read

depth (INTEGER, not null)

how many segments below the root this candidate sits, zero at a root; carried because a reader ranking how far a path resolved compares it rather than counting separators

closes_cycle (BOOLEAN, not null)

whether this candidate’s type already stands above it on its own ancestry, which is what makes it the element that closes a cycle. Such a candidate is nameable and so has a row, and nothing below it does, so this column is the difference between a leaf and a stopping point and a reader never has to infer one from the absence of children. Cyclic input nesting is not supported yet and the refusal an author sees is stated over these rows: a true here is where the candidate set stops, and saying so is what keeps the deferral visible instead of silent

deprecated (BOOLEAN, not null)

whether this spelling repeats the coordinate’s own name as its head, which every argument-level and input-field-level argMapping in the wild does today and which the clean spelling beside it replaces. A candidate all the same, because refusing what authors have already written is not this relation’s business: both spellings resolve and this column is what lets a warning tell them apart. False at every candidate under a field coordinate, where a head names an argument and repeats nothing, and false on the coordinate’s own name, that being the only spelling for binding the whole value

ambiguous (BOOLEAN, not null)

whether more than one reading produced this exact spelling at this coordinate, the surviving row being the one the resolution picked. The relation cannot hold both because an author cannot write both, so the loser is not a row and this column is what keeps its absence from being silent. Which other reading it was needs no column of its own, both being recoverable here: the deprecated reading of a dotted spelling is the row at the same coordinate whose path is this one with its head removed, and the other reading of the coordinate’s own name is the coordinate itself

graphitron_argmapping_entry

One entry of one argMapping: a method parameter bound to an argument path, at the position its site lists it. The written member of the argMapping triple, whose other two are graphitron_argmapping_candidate for what a right-hand side may name and graphitron_argmapping_match for where a written one landed. Nine kinds of site can spell an entry and all nine state the same three facts, differing only in the key saying which site owns the row, so this is one relation over them rather than the eight it replaced. The site column is that discriminator, closed, and total against the family rather than the population: one value has no rows because the validator rejects its coordinate, and it is listed so a reader switching on site meets every kind. The collapse cost a foreign key, since one cannot span nine parents chosen by a column. An entry’s reference back to its site is therefore an invariant capture maintains and a test checks over a captured store, not one the engine enforces. That trade runs one way only: a constraint is not data, so losing it does not buy a subtype its table back. Written by capture at the site it came from, so it cannot be stale against that site and needs no refresh. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, site, use_site, position). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, coordinate) references graphql_element (graph_name, coordinate). Check: "SITE" IN('ROUTINE', 'SERVICE', 'FIELD_CONDITION', 'INPUT_FIELD_CONDITION', 'ARGUMENT_CONDITION', 'FIELD_REFERENCE_STEP', 'ARGUMENT_REFERENCE_STEP', 'REFERENCE_FOR_STEP', 'ARGUMENT_REFERENCE_FOR_STEP'). Check: "WRITTEN_PATH" <> ''.

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

site (CHARACTER VARYING, not null)

which kind of site declared the entry, in a closed vocabulary of nine, one per directive that can carry argMapping. The whole of what says how to read ordinal and step_position beside it, exactly as code_method_parameter.role does for its four, and the whole of what says which of the nine a coordinate’s two shapes came from, three of them sitting on an argument and six on a field. A reader that means one kind filters on it and owns having chosen

use_site (CHARACTER VARYING, not null)

the site spelled as one string, in the site’s own grammar: Type.field, Type.field(argument), Type.field#ordinal, or those with the step position appended in brackets. Total by construction, which is what lets it key this relation where the decomposed columns beside it cannot, three of them being null on the sites that have no such part. A reader joining on the parts joins the parts; this column is the key and the thing a diagnostic prints

coordinate (CHARACTER VARYING, not null)

the schema coordinate the site sits on, spelled as the specification spells one and anchored by graphql_element: Type.field at the seven sites that sit on a field, Type.field(argument:) at an argument-level condition, and InputType.field at an input-field-level one. What the candidate relation is keyed by, so an entry meets what it may name on an equality over this column and the path, and the scope test two readers used to spell as a comparison against argument_name or field_name is that equality now.

ordinal (INTEGER, nullable)

which application of a repeatable directive the site is, null exactly on the sites that are not repeatable. Determined entirely by site, as argument_name is

step_position (INTEGER, nullable)

the path element’s position within its reference, null exactly on the sites that are not a path element. Determined entirely by site, as the two above are

position (INTEGER, not null)

the pair’s own position in the site’s argMapping list, completing the key. Positional because argMapping is a list and the parameter it binds is identified by where it stands

param_name (CHARACTER VARYING, not null)

the method parameter name the pair binds

written_path (CHARACTER VARYING, not null)

the right-hand side as the author wrote it, verbatim. Named for what it is rather than for an argument, which the two site kinds that sit below one do not have: an argument-level condition writes a path relative to its own argument and an input-field-level one relative to its own field, so the leading name is not always an argument and the column no longer says it is. The three split columns beside it are the engine’s reading of this one and nothing else is stored twice.

root_name (CHARACTER VARYING, nullable)

the first segment of the written path, which at the sites rooted on a field is the argument the value enters through. Generated, so nothing writes it and nothing can. Read by the two relations that ask which argument feeds a parameter; it is not what resolution joins on, resolution being against the whole path.

head_path (CHARACTER VARYING, nullable)

the written path with its last segment removed, NULL where the path is a single segment and there is nothing above it. Generated. The position an author had resolved when the whole path does not: a path whose head is a candidate and whose whole is not names one thing beyond a position that exists, which is the key-column projection and the unknown-column defect, and this column is how both are found without a stored decomposition of the path.

tail_name (CHARACTER VARYING, nullable)

the last segment of the written path, which is the whole of it where there is only one. Generated. With head_path beside it this is the one name past a resolved position, and it is what a key column is matched against.

tail_name_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the one crossing in this schema where an authored spelling meets a catalog name: a trailing name matched against a node type’s resolved key columns, GraphQL being case-sensitive and SQL column names not. Generated, so nothing writes it and nothing can, and the expression is the neighbour’s repeated rather than read, a generated column not being allowed to read another. Folded here rather than wherever the comparison happens because this is the relation that owns the authored spelling; a view that carried the name onward would have to fold it per row, which is what happened when the decomposition this replaced was deleted.

source_name (CHARACTER VARYING, not null)

the file the owning site was written in, carried from that site so a reader of this relation needs no join back to it

source_line (INTEGER, nullable)

the owning site’s line, carried with the file beside it

source_column (INTEGER, nullable)

the owning site’s column, carried with the file beside it

graphitron_argmapping_match (view)

Where a written argMapping right-hand side landed: one row per entry whose path names a candidate at its coordinate, or whose path names one thing beyond one. The resolved member of the argMapping triple, over graphitron_argmapping_entry and graphitron_argmapping_candidate. A resolution and not a rejection. An entry naming nothing at its coordinate has no row, which is the membership condition the refusal readers key on. Two readings and no ranking: the written path is a candidate, or it is not and its head is, and the second is what trailing_name reports. That is the whole rule, because the candidate relation holds every spelling an author may write at a coordinate, including the one that repeats the coordinate’s own name; the scope tests this view used to spell as a comparison of a head against an argument or field name are that membership now, and the prefix probe it used to rank is one equality. What a path may name follows from the coordinate and needs no arm per site. What remains site-driven is a different question and the only one left here: five of the nine sites bind a value at all, and the four reference-step sites bind nothing whatever they spell, so they are listed rather than filtered by a rule about heads. Named match rather than leaf because a leaf in the candidate tree is a candidate with no children, while this states where a written path landed, routinely at an interior candidate. It is graphitron’s rather than intent’s because every relation it reads is graphitron’s, so that is the gatherer that can settle it.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the entry

site (CHARACTER VARYING, nullable)

which SDL site spelled the entry, in graphitron_argmapping_entry’s closed vocabulary of nine; with the use-site key and the position this is the grain, and it is what a consumer switches on to know whether an emitter is wired for the answer

use_site (CHARACTER VARYING, nullable)

the consuming coordinate, serialized as graphitron_argmapping_entry serializes it; the coordinate a rejection about this entry names, and the key a reader joins that relation on to recover the site’s own components

type_name (CHARACTER VARYING, nullable)

the spelling site’s owning type, decomposed from the entry’s coordinate rather than kept beside it

field_name (CHARACTER VARYING, nullable)

the spelling site’s field name within that type

position (INTEGER, nullable)

the entry’s 0-based position within its own argMapping list

bound_path (CHARACTER VARYING, nullable)

the candidate’s own path: the whole written path where all of it resolved, and that path less its last name where one name is left over. The whole of what this relation resolved, and the only path on it. Which of the two readings answered is this column against the entry’s written_path, equal or not, so a reader learns it by comparing what resolved with what was written rather than by reading a name this relation copied forward. What the author wrote stays on the entry, where the key here reaches it in one join and where a stored fold can sit beside it

bound_kind (CHARACTER VARYING, nullable)

ARGUMENT where the bound candidate is a field argument, INPUT_FIELD where it is an input field; carried from the candidate, and what tells an emitter which slot the wire value is read out of

bound_type_name (CHARACTER VARYING, nullable)

the bound element’s owning type: the input type declaring an input field, and the object type declaring the field whose argument this is, the latter decomposed from the coordinate rather than kept beside it

bound_field_name (CHARACTER VARYING, nullable)

the field owning the argument on an ARGUMENT binding, the input field itself on an INPUT_FIELD one

bound_argument_name (CHARACTER VARYING, nullable)

the argument’s name on an ARGUMENT binding; NULL on an INPUT_FIELD one, whose key needs no argument component

node_id_declared (BOOLEAN, nullable)

whether the bound element carries a @nodeId at all. FALSE is the ordinary binding, where the wire value is the value and no decode is implied; TRUE says a decode is, and the column beside it says whether the author named what to decode against. Kept as its own column rather than read off a NULL node type, because the two NULLs mean opposite things and a reader collapsing them would treat the bare spelling as an ordinary binding, which is the silence the projection exists to close

node_type_ref (CHARACTER VARYING, nullable)

the typeName: the bound element’s @nodeId names, as written; NULL where the directive is absent, and NULL where it is present without one, which at this position is a rejection rather than an inference, there being no containing table to infer a node type from. Read with node_id_declared, never alone

leaf_named_type (CHARACTER VARYING, nullable)

the bound element’s own SDL named type, wrappers stripped, carried from the candidate. What a message needs in order to say what the author tried to open: an ID that declares no @nodeId is told to annotate it, while a String is told it has nothing to open at all, and those are two remedies for one shape

leaf_is_list (BOOLEAN, nullable)

whether the bound element’s SDL type carries a list wrapper. Read where the binding is a node id with one name trailing: a list of node ids names the list of that key column across the decoded ids, which is a coherent request and not an author mistake, so nothing here rejects it and the consumer that knows which emitters exist defers on it

graphitron_argument

Every field argument the generator works with, the author’s and the ones macro expansion minted: one row per argument coordinate, carrying the wrapping columns graphql_argument carries. For example the first and after arguments a connection carrier gets when its author wrote no pagination argument sit here, where graphql_argument holds only what the document declares and therefore holds no row for them.

Primary key: (graph_name, type_name, field_name, argument_name). Foreign key: (graph_name, type_name, field_name) references graphitron_field (graph_name, type_name, field_name). Foreign key: (graph_name, coordinate) references graphitron_element (graph_name, coordinate). Check: "IS_LIST" OR ("ITEM_NON_NULL" IS NULL).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from whichever arm supplied the row

type_name (CHARACTER VARYING, not null)

owning type of the field the argument sits on

field_name (CHARACTER VARYING, not null)

the field the argument sits on, anchored by graphitron_field

argument_name (CHARACTER VARYING, not null)

the argument’s name within the owning field; with the three columns above, the grain

coordinate (CHARACTER VARYING, not null)

this row as graphitron_element spells it, Type.field(argument:) in the specification’s grammar, the trailing colon included because the specification writes it

ordinal (INTEGER, not null)

the argument’s position within its field, declaration order on an authored one and the order the macro appended on a minted one, which is after every authored argument

type_sdl (CHARACTER VARYING, not null)

the type expression as the generator reads it

named_type (CHARACTER VARYING, not null)

that expression’s named type with its list and non-null wrappers stripped, which is the column readers actually join on

non_null (BOOLEAN, not null)

whether the outermost wrapper is non-null

is_list (BOOLEAN, not null)

whether the expression is a list

item_non_null (BOOLEAN, nullable)

whether a list’s item is non-null; NULL where the expression is not a list, which the CHECK holds

default_value_sdl (CHARACTER VARYING, nullable)

the default literal where the argument has one, authored or written by the macro; display material, never a dimension

description (CHARACTER VARYING, nullable)

the docstring, authored or macro-written; display material, never a dimension

graphitron_argument_authored (view)

One of the two sets graphitron_argument is the union of: an argument an author declared, carried across whole. For example the lang in title(lang: Lang = NB): String, default included.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the transcription

type_name (CHARACTER VARYING, nullable)

the type the owning field is declared on

field_name (CHARACTER VARYING, nullable)

the field the argument belongs to

argument_name (CHARACTER VARYING, nullable)

the argument’s own name

coordinate (CHARACTER VARYING, nullable)

Type.field(argument:), the specification’s spelling, the trailing colon included because the specification writes it

ordinal (INTEGER, nullable)

where the author wrote it among the field’s arguments

type_sdl (CHARACTER VARYING, nullable)

the type expression as written, wrappers included

named_type (CHARACTER VARYING, nullable)

the name at the bottom of that expression

non_null (BOOLEAN, nullable)

whether the outermost wrapper is non-null

is_list (BOOLEAN, nullable)

whether the expression is a list

item_non_null (BOOLEAN, nullable)

whether a list’s items are non-null, and nothing where it is not a list

default_value_sdl (CHARACTER VARYING, nullable)

the default as written, or nothing

description (CHARACTER VARYING, nullable)

the docstring the author wrote, or nothing

graphitron_argument_binding_entry

@field on a field argument, which is the half of the directive the decode still owns; the output-field and input-field halves are anchored into graphitron_field_binding_entry. @field on an argument: the filter argument’s bound column. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, argument_name). Foreign key: (graph_name, type_name, field_name, argument_name) references graphql_argument_element (graph_name, type_name, field_name, argument_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

argument_name (CHARACTER VARYING, not null)

the argument name within the owning field

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

name_ref (CHARACTER VARYING, not null)

the name argument as written

name_ref_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_column’s column_name_upper and jooq_name_upper. Generated, so nothing writes it and nothing can. It exists for the reason its field-site twin does: an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_argument_column_match

Which column an argument’s own name resolves to on the table its site navigates to: the column a filter predicate built from that argument compares against. For example the title argument of Query.films draws one row naming film.title, the column a filter built from that argument compares against.

Primary key: (graph_name, type_name, field_name, argument_name, table_source_name, table_schema, table_name). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from graphql_argument

type_name (CHARACTER VARYING, not null)

the type owning the field the resolved argument sits on

field_name (CHARACTER VARYING, not null)

the field the resolved argument sits on

argument_name (CHARACTER VARYING, not null)

the resolved argument’s name within the owning field; part of the grain with the resolved table, the scope this reads keying the site that way

matched_name (CHARACTER VARYING, not null)

the effective name this resolved: the @field(name:) binding where one decoded, else the argument name. What the author wrote, so a diagnostic naming the unresolved spelling reads it here rather than deciding which of the two applied

matched_by (CHARACTER VARYING, not null)

which tier matched: JOOQ_NAME (the generated Java field name) or SQL_NAME. Makes the two-tier precedence observable rather than only its outcome

table_source_name (CHARACTER VARYING, not null)

witness: the resolved table’s catalog partition, the first column of the sql_column key this row names

table_schema (CHARACTER VARYING, not null)

witness: the resolved table’s SQL schema

table_name (CHARACTER VARYING, not null)

witness: the resolved table’s SQL name. Which navigation reached it is graphitron_argument_column_scope’s basis, and a consumer emitting the predicate needs both

column_name (CHARACTER VARYING, not null)

witness: the matched column’s SQL name. With the three columns above this is sql_column’s full key, so the column’s type and nullability are one join away

source_name (CHARACTER VARYING, nullable)

the argument’s own declaration file; the position a diagnostic would carry

source_line (INTEGER, nullable)

source line of the argument declaration, 1-based

source_column (INTEGER, nullable)

source column of the argument declaration, 1-based

graphitron_argument_column_match_rule (view)

One row the argument-site column-match rule computes, in the shape graphitron_argument_column_match stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_argument_column_match, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_argument_column_match.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_argument_column_match.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_argument_column_match.field_name, whose comment carries what the value means

argument_name (CHARACTER VARYING, nullable)

the argument_name of a row of this rule, which the stage inserts into graphitron_argument_column_match.argument_name, whose comment carries what the value means

matched_name (CHARACTER VARYING, nullable)

the matched_name of a row of this rule, which the stage inserts into graphitron_argument_column_match.matched_name, whose comment carries what the value means

matched_by (CHARACTER VARYING, nullable)

the matched_by of a row of this rule, which the stage inserts into graphitron_argument_column_match.matched_by, whose comment carries what the value means

table_source_name (CHARACTER VARYING, nullable)

the table_source_name of a row of this rule, which the stage inserts into graphitron_argument_column_match.table_source_name, whose comment carries what the value means

table_schema (CHARACTER VARYING, nullable)

the table_schema of a row of this rule, which the stage inserts into graphitron_argument_column_match.table_schema, whose comment carries what the value means

table_name (CHARACTER VARYING, nullable)

the table_name of a row of this rule, which the stage inserts into graphitron_argument_column_match.table_name, whose comment carries what the value means

column_name (CHARACTER VARYING, nullable)

the column_name of a row of this rule, which the stage inserts into graphitron_argument_column_match.column_name, whose comment carries what the value means

source_name (CHARACTER VARYING, nullable)

the source_name of a row of this rule, which the stage inserts into graphitron_argument_column_match.source_name, whose comment carries what the value means

source_line (INTEGER, nullable)

the source_line of a row of this rule, which the stage inserts into graphitron_argument_column_match.source_line, whose comment carries what the value means

source_column (INTEGER, nullable)

the source_column of a row of this rule, which the stage inserts into graphitron_argument_column_match.source_column, whose comment carries what the value means

graphitron_argument_column_scope

Which table the column name written at an argument’s site resolves against: the argument’s own navigation, answered at every site where such a name resolves at all. For example the title argument of Query.films, whose field returns a type bound to film, draws one row naming film.

Primary key: (graph_name, type_name, field_name, argument_name, table_source_name, table_schema, table_name). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from both rules' base relations

type_name (CHARACTER VARYING, not null)

the type owning the field the argument sits on. Not the type whose binding started the navigation, which is the field’s named type: the difference from the field-site twin, where the two are one

field_name (CHARACTER VARYING, not null)

the field the argument sits on

argument_name (CHARACTER VARYING, not null)

the argument whose site this row resolves; part of the grain with the resolved table below, so two arguments of one field each get their own row and neither reader has to know they agree, and one argument resolving against a branch each of a multi-table polymorphic root gets one row per branch

basis (CHARACTER VARYING, not null)

which rule resolved this site, in a closed vocabulary of two disjoint rules: PATH_TERMINAL (an authored argument-site @reference path’s terminal element), ARGUMENT_SCOPE (the argument’s own scope table, no path element written). Also the fork a predicate binding takes, PATH_TERMINAL being exactly the case where the resolved table is not the one the field already selects from. Which rule answered underneath ARGUMENT_SCOPE is graphitron_argument_scope_table’s own basis and is deliberately not restated here, a reader wanting it joining the relation that states it; PARTICIPANT_TABLE there is what makes one argument resolve on several tables under this basis

table_source_name (CHARACTER VARYING, not null)

the resolved table’s catalog partition, the first column of the sql_table key this row names

table_schema (CHARACTER VARYING, not null)

the resolved table’s SQL schema

table_name (CHARACTER VARYING, not null)

the resolved table’s SQL name. With the two columns above this is sql_table’s full key, so the table’s columns are one join away

graphitron_argument_column_scope_rule (view)

One row the argument-site column-scope rule computes, in the shape graphitron_argument_column_scope stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_argument_column_scope, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_argument_column_scope.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_argument_column_scope.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_argument_column_scope.field_name, whose comment carries what the value means

argument_name (CHARACTER VARYING, nullable)

the argument_name of a row of this rule, which the stage inserts into graphitron_argument_column_scope.argument_name, whose comment carries what the value means

basis (CHARACTER VARYING, nullable)

the basis of a row of this rule, which the stage inserts into graphitron_argument_column_scope.basis, whose comment carries what the value means

table_source_name (CHARACTER VARYING, nullable)

the table_source_name of a row of this rule, which the stage inserts into graphitron_argument_column_scope.table_source_name, whose comment carries what the value means

table_schema (CHARACTER VARYING, nullable)

the table_schema of a row of this rule, which the stage inserts into graphitron_argument_column_scope.table_schema, whose comment carries what the value means

table_name (CHARACTER VARYING, nullable)

the table_name of a row of this rule, which the stage inserts into graphitron_argument_column_scope.table_name, whose comment carries what the value means

graphitron_argument_condition_context_arg_entry

An ordered context argument of an argument-site @condition. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, argument_name, position). Foreign key: (graph_name, type_name, field_name, argument_name) references graphitron_argument_condition_entry (graph_name, type_name, field_name, argument_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

argument_name (CHARACTER VARYING, not null)

the argument name within the owning field

position (INTEGER, not null)

0-based position within the owning list

name (CHARACTER VARYING, not null)

the context argument name as written

graphitron_argument_condition_entry

@condition on an argument: the same decode over the three-part coordinate. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, argument_name). Foreign key: (graph_name, type_name, field_name, argument_name) references graphql_argument_element (graph_name, type_name, field_name, argument_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

argument_name (CHARACTER VARYING, not null)

the argument name within the owning field

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

class_name (CHARACTER VARYING, nullable)

the fully-qualified Java class name as written

method (CHARACTER VARYING, nullable)

the Java method name as written

argmapping (CHARACTER VARYING, nullable)

the argMapping string as written; the pair child is its decode

override (BOOLEAN, nullable)

as written; NULL when omitted (the FALSE default is derivable)

graphitron_argument_lookup_key_entry

@lookupKey on an argument: the live site, a marker. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, argument_name). Foreign key: (graph_name, type_name, field_name, argument_name) references graphql_argument_element (graph_name, type_name, field_name, argument_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

argument_name (CHARACTER VARYING, not null)

the argument name within the owning field

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

graphitron_argument_minted (view)

One of the two sets graphitron_argument is the union of: an argument macro expansion adds where the author wrote none, which today is a connection carrier’s pagination. For example the first and after on Query.films(first:).

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the minting row

type_name (CHARACTER VARYING, nullable)

the type the owning field is declared on

field_name (CHARACTER VARYING, nullable)

the field the argument belongs to

argument_name (CHARACTER VARYING, nullable)

the argument’s own name

coordinate (CHARACTER VARYING, nullable)

Type.field(argument:), on graphitron_argument_authored.coordinate’s terms

ordinal (INTEGER, nullable)

where the expansion put it among the field’s arguments

type_sdl (CHARACTER VARYING, nullable)

the type expression the expansion wrote, wrappers included

named_type (CHARACTER VARYING, nullable)

the name at the bottom of that expression

non_null (BOOLEAN, nullable)

whether the outermost wrapper is non-null

is_list (BOOLEAN, nullable)

whether the expression is a list

item_non_null (BOOLEAN, nullable)

whether a list’s items are non-null, and nothing where it is not a list

default_value_sdl (CHARACTER VARYING, nullable)

the default the expansion wrote, which is where a page size comes from; carried rather than nulled, unlike the field set, because pagination arguments are exactly the place a macro does write one

description (CHARACTER VARYING, nullable)

the docstring the macro wrote

graphitron_argument_minted_candidate (view)

What the arms of the argument mint state before any disagreement between them is resolved. For example a carrier whose author already wrote first is one row here and none in graphitron_argument_minted.

Columns
graph_name (CHARACTER VARYING, nullable)

the same fact as graphitron_argument_minted.graph_name, before the conflict and stand-down filters have withheld anything

type_name (CHARACTER VARYING, nullable)

the same fact as graphitron_argument_minted.type_name, before the conflict and stand-down filters have withheld anything

field_name (CHARACTER VARYING, nullable)

the same fact as graphitron_argument_minted.field_name, before the conflict and stand-down filters have withheld anything

argument_name (CHARACTER VARYING, nullable)

the same fact as graphitron_argument_minted.argument_name, before the conflict and stand-down filters have withheld anything

coordinate (CHARACTER VARYING, nullable)

the same fact as graphitron_argument_minted.coordinate, before the conflict and stand-down filters have withheld anything

ordinal (INTEGER, nullable)

the same fact as graphitron_argument_minted.ordinal, before the conflict and stand-down filters have withheld anything

type_sdl (CHARACTER VARYING, nullable)

the same fact as graphitron_argument_minted.type_sdl, before the conflict and stand-down filters have withheld anything

named_type (CHARACTER VARYING, nullable)

the same fact as graphitron_argument_minted.named_type, before the conflict and stand-down filters have withheld anything

non_null (BOOLEAN, nullable)

the same fact as graphitron_argument_minted.non_null, before the conflict and stand-down filters have withheld anything

is_list (BOOLEAN, nullable)

the same fact as graphitron_argument_minted.is_list, before the conflict and stand-down filters have withheld anything

item_non_null (BOOLEAN, nullable)

the same fact as graphitron_argument_minted.item_non_null, before the conflict and stand-down filters have withheld anything

default_value_sdl (CHARACTER VARYING, nullable)

the same fact as graphitron_argument_minted.default_value_sdl, before the conflict and stand-down filters have withheld anything

description (CHARACTER VARYING, nullable)

the same fact as graphitron_argument_minted.description, before the conflict and stand-down filters have withheld anything

graphitron_argument_node_id_entry

@nodeId on an argument. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, argument_name). Foreign key: (graph_name, type_name, field_name, argument_name) references graphql_argument_element (graph_name, type_name, field_name, argument_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

argument_name (CHARACTER VARYING, not null)

the argument name within the owning field

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

node_type_ref (CHARACTER VARYING, nullable)

the typeName argument as written; author-spelled, no FK

graphitron_argument_reachable_input (view)

Which input types the emitted schema can reach from a field argument, directly or through the input fields of one it reaches. For example a FilmFilter named by Query.films(filter:) is one row, and a RatingFilter that FilmFilter declares a field of is another, while an input type nothing names is absent.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, nullable)

the reachable input type’s name, which with the graph is the grain. One row per type however many arguments and input fields reach it, the reaching paths being what the recursion consumes rather than what it reports

graphitron_argument_reference_entry

@reference on an argument: the same family over the three-part coordinate. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, argument_name, ordinal). Foreign key: (graph_name, type_name, field_name, argument_name) references graphql_argument_element (graph_name, type_name, field_name, argument_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

argument_name (CHARACTER VARYING, not null)

the argument name within the owning field

ordinal (INTEGER, not null)

capture-assigned position in document order

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

graphitron_argument_reference_for_entry

@referenceFor on an argument: the same family over the four-part coordinate. A sibling relation rather than an argument_name column on graphitron_reference_for_entry, on the discipline the argument-site @reference family already keeps: the two coordinates are different lengths, so one relation over both would carry a column NULL by kind on half its rows and every reader would have to say which kind it meant. The participant set this row’s spelling is checked against is the consuming field’s own, which at this coordinate is the field the argument sits on rather than a set reached through the occurrence paths, so the whole-schema detection the input-field population needs is a local join here. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, argument_name, ordinal). Foreign key: (graph_name, type_name, field_name, argument_name) references graphql_argument_element (graph_name, type_name, field_name, argument_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

argument_name (CHARACTER VARYING, not null)

the argument name within the owning field

ordinal (INTEGER, not null)

capture-assigned position in document order

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

participant_type_ref (CHARACTER VARYING, not null)

the type argument as written; author-spelled, no FK. Names a participant of the polymorphic type the owning field returns

graphitron_argument_reference_for_step_entry

An ordered path element of one argument-site @referenceFor application: the participant’s complete path, read as the same element grammar as @reference. The direction is the coordinate’s and not this relation’s: at the one coordinate an argument-site application is admitted on today, a @nodeId decode leaf, the path departs the participant’s own table and reaches the decoded target’s. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, argument_name, ordinal, position). Foreign key: (graph_name, type_name, field_name, argument_name, ordinal) references graphitron_argument_reference_for_entry (graph_name, type_name, field_name, argument_name, ordinal).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

argument_name (CHARACTER VARYING, not null)

the argument name within the owning field

ordinal (INTEGER, not null)

the owning @referenceFor application’s ordinal

position (INTEGER, not null)

0-based position within the owning list

table_ref (CHARACTER VARYING, nullable)

the table name as written (may carry a schema qualifier)

table_ref_namespace_part (CHARACTER VARYING, nullable)

left of table_ref’s first period, NULL when no period appeared and the empty string when one appeared with nothing before it; for a table name this namespace is the SQL schema in every dialect jOOQ models. Written by capture, because splitting on a period is a decode and decodes happen there

table_ref_name_part (CHARACTER VARYING, nullable)

right of table_ref’s first period, or the whole value when none; the empty string when a period was written with nothing after it, which joins nothing and is meant to

key_ref (CHARACTER VARYING, nullable)

the constraint name as written (may carry a schema qualifier)

key_ref_namespace_part (CHARACTER VARYING, nullable)

left of key_ref’s first period, NULL when no period appeared and the empty string when one appeared with nothing before it. This qualifier does not name the constraint’s own schema, because a constraint has none: it is scoped to its table, which is why sql_constraint takes its schema through the table. It names which schema’s table holds the constraint, disambiguating a constraint name that occurs in more than one, and the resolver reads it that way. Which namespace that is is dialect-dependent (the schema namespace in Oracle, the table namespace in PostgreSQL), which is why the column is not called a schema part

key_ref_name_part (CHARACTER VARYING, nullable)

right of key_ref’s first period, or the whole value when none; joins sql_constraint.constraint_name narrowed by the source table the walk is standing on, not by this row alone

class_name (CHARACTER VARYING, nullable)

the fully-qualified Java class name as written

method (CHARACTER VARYING, nullable)

the Java method name as written

argmapping (CHARACTER VARYING, nullable)

the argMapping string as written; the pair child is its decode

table_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

table_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

key_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint.table_schema_upper, the schema of the table holding the constraint. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

key_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s constraint_name_upper and jooq_name_upper, in that precedence. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_argument_reference_step_entry

An ordered path element of one argument-site @reference application; the step’s ExternalCodeReference condition flattens in place. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, argument_name, ordinal, position). Foreign key: (graph_name, type_name, field_name, argument_name, ordinal) references graphitron_argument_reference_entry (graph_name, type_name, field_name, argument_name, ordinal).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

argument_name (CHARACTER VARYING, not null)

the argument name within the owning field

ordinal (INTEGER, not null)

the owning @reference application’s ordinal

position (INTEGER, not null)

0-based position within the owning list

table_ref (CHARACTER VARYING, nullable)

the table name as written (may carry a schema qualifier)

table_ref_namespace_part (CHARACTER VARYING, nullable)

left of table_ref’s first period, NULL when no period appeared and the empty string when one appeared with nothing before it; for a table name this namespace is the SQL schema in every dialect jOOQ models. Written by capture, because splitting on a period is a decode and decodes happen there

table_ref_name_part (CHARACTER VARYING, nullable)

right of table_ref’s first period, or the whole value when none; the empty string when a period was written with nothing after it, which joins nothing and is meant to

key_ref (CHARACTER VARYING, nullable)

the constraint name as written (may carry a schema qualifier)

key_ref_namespace_part (CHARACTER VARYING, nullable)

left of key_ref’s first period, NULL when no period appeared and the empty string when one appeared with nothing before it. This qualifier does not name the constraint’s own schema, because a constraint has none: it is scoped to its table, which is why sql_constraint takes its schema through the table. It names which schema’s table holds the constraint, disambiguating a constraint name that occurs in more than one, and the resolver reads it that way. Which namespace that is is dialect-dependent (the schema namespace in Oracle, the table namespace in PostgreSQL), which is why the column is not called a schema part

key_ref_name_part (CHARACTER VARYING, nullable)

right of key_ref’s first period, or the whole value when none; joins sql_constraint.constraint_name narrowed by the source table the walk is standing on, not by this row alone

class_name (CHARACTER VARYING, nullable)

the fully-qualified Java class name as written

method (CHARACTER VARYING, nullable)

the Java method name as written

argmapping (CHARACTER VARYING, nullable)

the argMapping string as written; the pair child is its decode

table_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

table_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

key_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint.table_schema_upper, the schema of the table holding the constraint. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

key_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s constraint_name_upper and jooq_name_upper, in that precedence. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_argument_reference_step_target (view)

Where each element of an argument’s @reference path actually lands: the hops walked from the table the argument’s own content binds against, one element at a time, so a row exists only for an element the chain can be shown to reach. For example a path of two key elements draws one row at each position, the second departing where the first arrived, and an element that resolves to nothing ends the chain and draws none.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the hop view

type_name (CHARACTER VARYING, nullable)

the type owning the field the argument sits on. Not the type whose binding started the chain, which is the field’s named type: the difference from the field-site sibling, where the two are one

field_name (CHARACTER VARYING, nullable)

the field owning the argument the @reference is applied to; also the field whose named type’s binding started the chain

argument_name (CHARACTER VARYING, nullable)

the argument the @reference is applied to

ordinal (INTEGER, nullable)

the owning @reference application’s ordinal, as on the hop view

position (INTEGER, nullable)

the element’s 0-based position within its application’s path; positions are contiguous from 0 up to wherever the chain stopped

via (CHARACTER VARYING, nullable)

which arm resolved the element, as on the hop view: KEY, TABLE, NAME_MATCH or CONDITION

key_matched_by (CHARACTER VARYING, nullable)

for a KEY element, the namespace that answered; NULL on a TABLE, NAME_MATCH or CONDITION element. As on the hop view

from_source_name (CHARACTER VARYING, nullable)

the departing table’s catalog partition; the argument’s own scope table at position 0, the previous element’s arrival after that

from_schema (CHARACTER VARYING, nullable)

the departing table’s SQL schema

from_table (CHARACTER VARYING, nullable)

the departing table’s SQL name

to_source_name (CHARACTER VARYING, nullable)

the arriving table’s catalog partition, first column of its sql_table key

to_schema (CHARACTER VARYING, nullable)

the arriving table’s SQL schema

to_table (CHARACTER VARYING, nullable)

the arriving table’s SQL name. At the path’s last position this is the table the argument’s own column name resolves against, which is where a filter predicate binds

constraint_name (CHARACTER VARYING, nullable)

the foreign key this element joins on, named or discovered; NULL on a NAME_MATCH or CONDITION element, as on the hop view

fk_on_from (BOOLEAN, nullable)

TRUE when the departing table declares the foreign key; the element’s direction. NULL on a NAME_MATCH or CONDITION element, as on the hop view

targets (INTEGER, nullable)

how many distinct tables this element reaches, this row’s arrival being one of them; 1 where the destination is certain. Separate from candidates for the reason the field-site sibling states: an element with three foreign keys connecting the same pair of tables reaches one table by three routes, and a reader that only needs the destination can trust that where one that has to render the join cannot

candidates (INTEGER, nullable)

how many rows this element resolved to, counting routes and not just destinations; 1 is the requirement for an expressible hop

graphitron_argument_reference_step_target_keyed

One foreign-key route one argument-site @reference path element reaches, in one orientation: the element the chain walked to, with the key it joins through. For example Query.films(actorId:) over @reference(path: [{key: "film_actor_actor_id_fkey"}]) draws one row per position, each departing where the one before it arrived.

Primary key: (graph_name, type_name, field_name, argument_name, ordinal, position, from_source_name, from_schema, from_table, to_source_name, to_schema, to_table, constraint_name, fk_on_from). Foreign key: (graph_name) references store_graph (graph_name). Check: "VIA" IN('KEY', 'TABLE'). Check: ("KEY_MATCHED_BY" IN('SQL_NAME', 'JOOQ_NAME')) OR ("KEY_MATCHED_BY" IS NULL). Check: ("KEY_MATCHED_BY" IS NOT NULL) = ("VIA" = 'KEY').

Columns
graph_name (CHARACTER VARYING, not null)

the graph_name of a row of this arm, presented on graphitron_argument_reference_step_target.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, not null)

the type_name of a row of this arm, presented on graphitron_argument_reference_step_target.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, not null)

the field_name of a row of this arm, presented on graphitron_argument_reference_step_target.field_name, whose comment carries what the value means

argument_name (CHARACTER VARYING, not null)

the argument_name of a row of this arm, presented on graphitron_argument_reference_step_target.argument_name, whose comment carries what the value means

ordinal (INTEGER, not null)

the ordinal of a row of this arm, presented on graphitron_argument_reference_step_target.ordinal, whose comment carries what the value means

position (INTEGER, not null)

the position of a row of this arm, presented on graphitron_argument_reference_step_target.position, whose comment carries what the value means

via (CHARACTER VARYING, not null)

the via of a row of this arm, presented on graphitron_argument_reference_step_target.via, whose comment carries what the value means

key_matched_by (CHARACTER VARYING, nullable)

the key_matched_by of a row of this arm, presented on graphitron_argument_reference_step_target.key_matched_by, whose comment carries what the value means

from_source_name (CHARACTER VARYING, not null)

the from_source_name of a row of this arm, presented on graphitron_argument_reference_step_target.from_source_name, whose comment carries what the value means

from_schema (CHARACTER VARYING, not null)

the from_schema of a row of this arm, presented on graphitron_argument_reference_step_target.from_schema, whose comment carries what the value means

from_table (CHARACTER VARYING, not null)

the from_table of a row of this arm, presented on graphitron_argument_reference_step_target.from_table, whose comment carries what the value means

to_source_name (CHARACTER VARYING, not null)

the to_source_name of a row of this arm, presented on graphitron_argument_reference_step_target.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, not null)

the to_schema of a row of this arm, presented on graphitron_argument_reference_step_target.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, not null)

the to_table of a row of this arm, presented on graphitron_argument_reference_step_target.to_table, whose comment carries what the value means

constraint_name (CHARACTER VARYING, not null)

the constraint_name of a row of this arm, presented on graphitron_argument_reference_step_target.constraint_name, whose comment carries what the value means

fk_on_from (BOOLEAN, not null)

the fk_on_from of a row of this arm, presented on graphitron_argument_reference_step_target.fk_on_from, whose comment carries what the value means

targets (INTEGER, not null)

the targets of a row of this arm, presented on graphitron_argument_reference_step_target.targets, whose comment carries what the value means

candidates (INTEGER, not null)

the candidates of a row of this arm, presented on graphitron_argument_reference_step_target.candidates, whose comment carries what the value means

graphitron_argument_reference_step_target_keyless

One table pair one argument-site @reference path element reaches without a foreign key: the element the chain walked to, by column-name match from a function result or by the route a condition method declares. For example a chain-ending element carrying only a @condition draws one row arriving at the table that method’s second parameter names.

Primary key: (graph_name, type_name, field_name, argument_name, ordinal, position, from_source_name, from_schema, from_table, to_source_name, to_schema, to_table). Foreign key: (graph_name) references store_graph (graph_name). Check: "VIA" IN('NAME_MATCH', 'CONDITION').

Columns
graph_name (CHARACTER VARYING, not null)

the graph_name of a row of this arm, presented on graphitron_argument_reference_step_target.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, not null)

the type_name of a row of this arm, presented on graphitron_argument_reference_step_target.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, not null)

the field_name of a row of this arm, presented on graphitron_argument_reference_step_target.field_name, whose comment carries what the value means

argument_name (CHARACTER VARYING, not null)

the argument_name of a row of this arm, presented on graphitron_argument_reference_step_target.argument_name, whose comment carries what the value means

ordinal (INTEGER, not null)

the ordinal of a row of this arm, presented on graphitron_argument_reference_step_target.ordinal, whose comment carries what the value means

position (INTEGER, not null)

the position of a row of this arm, presented on graphitron_argument_reference_step_target.position, whose comment carries what the value means

via (CHARACTER VARYING, not null)

the via of a row of this arm, presented on graphitron_argument_reference_step_target.via, whose comment carries what the value means

from_source_name (CHARACTER VARYING, not null)

the from_source_name of a row of this arm, presented on graphitron_argument_reference_step_target.from_source_name, whose comment carries what the value means

from_schema (CHARACTER VARYING, not null)

the from_schema of a row of this arm, presented on graphitron_argument_reference_step_target.from_schema, whose comment carries what the value means

from_table (CHARACTER VARYING, not null)

the from_table of a row of this arm, presented on graphitron_argument_reference_step_target.from_table, whose comment carries what the value means

to_source_name (CHARACTER VARYING, not null)

the to_source_name of a row of this arm, presented on graphitron_argument_reference_step_target.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, not null)

the to_schema of a row of this arm, presented on graphitron_argument_reference_step_target.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, not null)

the to_table of a row of this arm, presented on graphitron_argument_reference_step_target.to_table, whose comment carries what the value means

targets (INTEGER, not null)

the targets of a row of this arm, presented on graphitron_argument_reference_step_target.targets, whose comment carries what the value means

candidates (INTEGER, not null)

the candidates of a row of this arm, presented on graphitron_argument_reference_step_target.candidates, whose comment carries what the value means

graphitron_argument_scope_table

Which table an argument’s column-shaped content binds against: the table a predicate built from this argument correlates on, and the table a @nodeId or @reference path written at it departs from, one row per table where several answer. For example Query.films(title:) on a field rooted in film draws one row naming film, and an argument of a field returning a multi-table container draws one row per branch table that field is rooted in.

Primary key: (graph_name, type_name, field_name, argument_name, table_source_name, table_schema, table_name). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from graphql_argument, which is the relation the fan-out drives from

type_name (CHARACTER VARYING, not null)

the type owning the field the argument sits on

field_name (CHARACTER VARYING, not null)

the field the argument sits on

argument_name (CHARACTER VARYING, not null)

the argument whose scope this row states; part of the grain with the table below, so two arguments of one field each get their own row and neither reader has to know they agree, and one argument of a multi-table polymorphic root gets one row per branch it binds against

basis (CHARACTER VARYING, not null)

which rule answered, carried unchanged from graphitron_field_scope_table, whose comment says what the four values mean. Every argument of one field carries the same value, and every branch of one argument does too, the rule being the field’s and not the argument’s or the branch’s; a reader wanting one of them filters on it and owns having chosen

table_source_name (CHARACTER VARYING, not null)

the scope table’s catalog partition, the first column of the sql_table key this row names

table_schema (CHARACTER VARYING, not null)

the scope table’s SQL schema

table_name (CHARACTER VARYING, not null)

the scope table’s SQL name; with the two columns above this is sql_table’s full key, so the table’s own columns and constraints are one join away

graphitron_argument_scope_table_rule (view)

One row the argument-site scope rule computes, in the shape graphitron_argument_scope_table stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_argument_scope_table, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_argument_scope_table.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_argument_scope_table.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_argument_scope_table.field_name, whose comment carries what the value means

argument_name (CHARACTER VARYING, nullable)

the argument_name of a row of this rule, which the stage inserts into graphitron_argument_scope_table.argument_name, whose comment carries what the value means

basis (CHARACTER VARYING, nullable)

the basis of a row of this rule, which the stage inserts into graphitron_argument_scope_table.basis, whose comment carries what the value means

table_source_name (CHARACTER VARYING, nullable)

the table_source_name of a row of this rule, which the stage inserts into graphitron_argument_scope_table.table_source_name, whose comment carries what the value means

table_schema (CHARACTER VARYING, nullable)

the table_schema of a row of this rule, which the stage inserts into graphitron_argument_scope_table.table_schema, whose comment carries what the value means

table_name (CHARACTER VARYING, nullable)

the table_name of a row of this rule, which the stage inserts into graphitron_argument_scope_table.table_name, whose comment carries what the value means

graphitron_ast_argmapping_pair_entry

One entry of an argMapping as one document wrote it: at this position in this mapping, this parameter is bound to this. For example argMapping: "customerId: input.customerId, session: $session" gives two rows, customerId bound to input.customerId at position 0 and session to $session at 1.

Primary key: (graph_name, source_name, source_line, source_column, position). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column). Check: "POSITION" >= 0.

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the mapping was written in

source_line (INTEGER, not null)

source line of the string the mapping was written as, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are that string’s key in graphql_ast_value_entry, which holds it verbatim, so the directive or reference it was written in is a join from here and the raw text is not repeated

position (INTEGER, not null)

the entry’s 0-based position in the mapping as written, completing the key; the order an author wrote the entries in

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; a mapping whose string went is swept with it

param_name (CHARACTER VARYING, not null)

the parameter the entry names, as written: a Java parameter at a code reference, a routine parameter at @routine

bound_to (CHARACTER VARYING, not null)

what the entry binds the parameter to, as written: a dotted path into the arguments, or a sigil such as $session. Which sites admit a sigil is a rule about the site and not about the string, so nothing here judges it

graphitron_ast_code_reference_entry

A Java code reference as one document wrote it: this position names this class and, where it says, this method. For example @service(service: {className: "no.example.FilmService", method: "films"}) gives one row at the object value, and @enum(enumReference: {className: "no.example.Rating"}) gives one naming no method.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the reference was written in

source_line (INTEGER, not null)

source line of the node the reference was written as, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are a graphql_ast_entry key: the ExternalCodeReference object value wherever one is written, and the @sourceRow application, so which directive and which argument wrote the reference are joins from here rather than columns

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; a reference whose node went is swept with that node

class_name (CHARACTER VARYING, not null)

the class the reference names, as written. NOT NULL because a reference naming no class asserts nothing this relation can hold, and writes no row

method (CHARACTER VARYING, nullable)

the method the reference names, as written, or NULL where it names none. A default a site applies to an omitted method is a resolution and is not applied here

graphitron_ast_connection_entry

What an @asConnection application says: the page size the field defaults to and the Connection type name it overrides, as written. For example films: [Film!] @asConnection(defaultFirstValue: 25) gives one row reading 25.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

default_first_value (INTEGER, nullable)

the defaultFirstValue argument as written, or NULL where the author wrote none. The definition’s own default of 100 is not supplied here: it stands in graphql_directive_argument.default_value_sdl, and filling it in would lose the difference between a default taken and a value written. A bare @asConnection is therefore a row of two nulls, which is what says the directive was applied with nothing said

connection_name (CHARACTER VARYING, nullable)

the connectionName argument as written, or NULL where the author wrote none. The argument is deprecated and the deprecation is the directive definition’s to state; a transcription records the value and says nothing about whether it should have been written

graphitron_ast_default_order_entry

What a @defaultOrder application says: which of the three sorting surfaces the field defaults to, and in which direction, as written. For example films: [Film!] @defaultOrder(fields: [{name: "title"}]) gives one row whose three columns are all NULL, the sort being the child rows.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

index_ref (CHARACTER VARYING, nullable)

the index argument as written, naming a database index, or NULL where none was

primary_key (BOOLEAN, nullable)

the primaryKey argument as written, or NULL where none was. The directive admits exactly one of index, fields and primaryKey, and no constraint here states that: an application stating two is a document this relation transcribes and a detection reports

direction (CHARACTER VARYING, nullable)

the direction argument as the author spelled it, the token kept as its own text and never checked against the vocabulary the definition declares. It is the directive-level fallback each child row’s own direction overrides

graphitron_ast_default_order_field_entry

One fields element of a @defaultOrder application, at its position in the list, as written. For example fields: [{name: "title", collate: "xdanish_ai", direction: DESC}] gives one row at position 0.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here. The index that join reads is dense: FieldSort is the element type the directive definition declares, so an element of some other shape makes the whole application one the definition does not admit and none of it is transcribed

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the row it hangs on

name_ref (CHARACTER VARYING, not null)

the name field of the element as written, naming a column of the jOOQ table. NOT NULL because FieldSort declares name as String!, so an element without one is not a FieldSort and its application is not transcribed; the constraint is the directive definition, enforced

collate (CHARACTER VARYING, nullable)

the collate field of the same, as written, or NULL where none was; a collation name is database-specific and resolves against nothing here

direction (CHARACTER VARYING, nullable)

the direction field of the same, as the author spelled it, or NULL where none was. A NULL is what says the element takes the directive-level direction, so nothing is filled in for it here

graphitron_ast_discriminate_entry

What a @discriminate application says: the column whose value decides which subtype a row is, as written. For example interface Media @discriminate(on: "media_type") gives one row whose on_column is media_type.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_type_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_type_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

on_column (CHARACTER VARYING, not null)

the on argument decoded to the string the author wrote. NOT NULL because the definition requires the argument, so an application without it is refused before a decode sees it. Whether the database has a column of that name is a question for a resolution and not for this row

graphitron_ast_discriminator_entry

What a @discriminator application says: the value of the discriminating column that means a row is this subtype, as written. For example type Book implements Media @discriminator(value: "BOOK") gives one row whose discriminator_value is BOOK.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_type_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_type_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

discriminator_value (CHARACTER VARYING, not null)

the value argument decoded to the string the author wrote. NOT NULL because the definition requires the argument, so an application without it is refused before a decode sees it. Always a string here whatever the column’s SQL type, the comparison being the resolution’s to make

graphitron_ast_enum_entry

What an @enum application says: the external code reference this enum declaration is bound to, as written. For example enum Rating @enum(enumReference: {className: "com.example.Ratings"}) gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_type_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_type_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

class_name (CHARACTER VARYING, not null)

the className field of the reference, as written. The identity of the fact this row states, so an application naming no class writes no row rather than a row nothing identifies

method (CHARACTER VARYING, nullable)

the method field of the reference, as written, or NULL where none was

argmapping (CHARACTER VARYING, nullable)

the argMapping field of the reference, as written, or NULL where none was. Kept as the one string the author typed; what its segments name is a question for the argument-mapping derivation

graphitron_ast_enum_value_binding_entry

What a @field application on an enum value says: the database column the value binds to, as written. For example TITLE @field(name: "title") gives one row whose name_ref is title.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_enum_value_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_enum_value_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

name_ref (CHARACTER VARYING, not null)

the name argument decoded to the string the author wrote. Whether a column of that name exists is the anchor’s question and not this row’s

graphitron_ast_error_database_handler_entry

A DATABASE handler of an @error application, at its position in the list, as written. For example {handler: DATABASE, sqlState: "23503"} at position 0.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column). Check: ("CODE" IS NULL) OR ("SQL_STATE" IS NULL).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; a handler whose whole application went is swept with the directive row it hangs on

code (CHARACTER VARYING, nullable)

the vendor error code this handler matches on, as written, or NULL where none was

sql_state (CHARACTER VARYING, nullable)

the standard SQL state this handler matches on, as written, or NULL where the vendor code was used instead. The two are alternative spellings of one assertion rather than two facts, which is why they share a relation and a CHECK refuses a handler carrying both

matches (CHARACTER VARYING, nullable)

a substring the exception message must contain, as written, or NULL where the handler takes every SQLException it discriminates to

description (CHARACTER VARYING, nullable)

the client-facing message this handler returns, as written, or NULL where the exception’s own message is used

graphitron_ast_error_generic_handler_entry

A GENERIC handler of an @error application, at its position in the list, as written. For example {handler: GENERIC, className: "java.lang.IllegalStateException"} at position 0.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; a handler whose whole application went is swept with the directive row it hangs on

class_name (CHARACTER VARYING, not null)

the exception class this handler matches on, as written. A GENERIC handler matches by class identity, so a handler naming none states nothing and writes no row

matches (CHARACTER VARYING, nullable)

a substring the exception message must contain, as written, or NULL where the handler takes every exception of the class

description (CHARACTER VARYING, nullable)

the client-facing message this handler returns, as written, or NULL where the exception’s own message is used

graphitron_ast_error_validation_handler_entry

A VALIDATION handler of an @error application, at its position in the list. For example {handler: VALIDATION} at position 1 of a two-handler list.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; a handler whose whole application went is swept with the directive row it hangs on

graphitron_ast_external_field_entry

What an @externalField application says: the external method producing the field’s value, as written. For example awardCount: Int @externalField(reference: {className: "no.example.FilmFields", method: "awardCount"}) gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

class_name (CHARACTER VARYING, not null)

the className field of the reference, as written

method (CHARACTER VARYING, nullable)

the method field of the same, as written, or NULL where none was

argmapping (CHARACTER VARYING, nullable)

the argMapping field of the same, kept as the one string the author typed

graphitron_ast_federation_key_entry

What a federation @key application says: the field set naming the entity’s key, and whether the subgraph resolves it, as written. For example type Film @key(fields: "id reviews { id }") gives one row carrying that field set verbatim.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_type_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same, so this row is the decode of exactly one row of graphql_ast_type_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

fields_sdl (CHARACTER VARYING, not null)

the fields argument as the author typed it, kept whole beside the selections it parsed into. The parse is a reading and this is what was read, so a reader wanting to re-emit the directive takes this column and a reader wanting its structure takes the rows below

resolvable (BOOLEAN, nullable)

the resolvable argument decoded to the boolean the author wrote, or NULL where they wrote none. NULL rather than true, the directive’s declared default being a generator constant and not a fact about the document

graphitron_ast_federation_key_segment_entry

One segment of one parsed selection, at its depth from the outermost inward. For example the selection reached by "reviews { id }" gives two rows, reviews then id.

Primary key: (graph_name, source_name, source_line, source_column, position, segment_position). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column, position) references graphitron_ast_federation_key_selection_entry (graph_name, source_name, source_line, source_column, position).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same, so the four together name the application whose field set was parsed

position (INTEGER, not null)

which selection of the parse this segment belongs to

segment_position (INTEGER, not null)

the depth of this segment within that selection, zero being the outermost. Nesting survives the parse as segments rather than being rendered back into a dotted name a reader would take apart again

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

segment_name (CHARACTER VARYING, not null)

the field this segment names, as the grammar cut it. Whether the type declares such a field is a question for a resolution and not for this row

graphitron_ast_federation_key_selection_entry

One leaf selection the field set parsed into, at its index in that parse. For example "id reviews { id }" gives two rows, one for id and one for the id inside reviews.

Primary key: (graph_name, source_name, source_line, source_column, position). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphitron_ast_federation_key_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same, so the four together name the application whose field set was parsed

position (INTEGER, not null)

the index of this selection in the field set, counting leaves in written order. The grammar yields a list and a relation holds a set, so the order is a column; a decoded element that is a node the author wrote needs none, being identified by the position it was written at

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

graphitron_ast_field_binding_entry

What a @field application on an output field says: the name that field is bound to, as written. For example title: String @field(name: "title") gives one row reading title.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

name_ref (CHARACTER VARYING, not null)

the name argument exactly as written. Nullable although the definition marks it required, because a document that omits it still applied the directive and the row is what says so. What the name refers to, a column or a Java member, is settled by what backs the field and is not this relation’s business

graphitron_ast_field_condition_context_arg_entry

One contextArguments element of a @condition application on an output field, at its position in the list, as written. For example contextArguments: ["tenantId"] gives one row reading tenantId at position 0.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the directive row it hangs on

name (CHARACTER VARYING, not null)

the element as written. NOT NULL because an element the author wrote as anything but a string contributes no row at all, so a name is the whole of what a row here says; the element it skipped stands verbatim in graphql_ast_applied_argument_entry. Whether the runtime context carries a value under this name is nothing any reading of a document can say

graphitron_ast_field_condition_entry

What a @condition application on an output field says: the external method constraining the field’s query, as written. For example summary: String @condition(condition: {className: "no.example.Conditions", method: "visibleFilm"}) gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

class_name (CHARACTER VARYING, not null)

the className field of the reference, as written

method (CHARACTER VARYING, nullable)

the method field of the same, as written, or NULL where none was

argmapping (CHARACTER VARYING, nullable)

the argMapping field of the same, kept as the one string the author typed. What its segments name is a question for the argument-mapping derivation, which is where the grammar that cuts it lives

override (BOOLEAN, nullable)

the override argument as written, or NULL where the author wrote none. The definition’s own default is not supplied here: what an omitted argument falls back to stands in graphql_directive_argument.default_value_sdl, and filling it in would lose the difference between a default taken and a value written

graphitron_ast_field_node_id_entry

What a @nodeId application on an output field says: the node type the identifier belongs to, as written. For example id: ID! @nodeId(typeName: "Film") gives one row reading Film.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

node_type_ref (CHARACTER VARYING, not null)

the typeName argument as written, or NULL on a bare @nodeId. Nothing here supplies what an omitted name deduces to, the containing type on a plain field and the table’s node type on a referenced one: both are resolutions over other relations, and a row of NULL is what says the author left the deduction to the build

graphitron_ast_field_reference_condition_step_entry

The condition a path element of a @reference application on an output field names, at its position in the list, as written. For example {table: "actor", condition: {className: "no.example.Conditions", method: "liveActor"}} gives one row here and one in the table relation.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the directive row it hangs on

class_name (CHARACTER VARYING, not null)

the className of the element’s condition reference, as written. NOT NULL because a row exists exactly where the author stated a condition, which is the one arm of an element that reaches the classpath rather than the catalog

method (CHARACTER VARYING, nullable)

the method of the same, as written, or NULL where none was

argmapping (CHARACTER VARYING, nullable)

the argMapping of the same, kept as the one string the author typed; what its segments name is a question for the argument-mapping derivation

graphitron_ast_field_reference_for_condition_step_entry

The condition a path element of a @referenceFor application on an output field names, at its position in the list, as written. For example {table: "book", condition: {className: "no.example.Conditions", method: "liveBook"}} gives one row here and one in the table relation.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the row it hangs on

class_name (CHARACTER VARYING, not null)

the className of the element’s condition reference, as written. NOT NULL because a row exists exactly where the author stated a condition. The manual admits one on an output coordinate only, which is a rule about where the application sits and so a detection over these rows rather than a constraint this relation states

method (CHARACTER VARYING, nullable)

the method of the same, as written, or NULL where none was

argmapping (CHARACTER VARYING, nullable)

the argMapping of the same, kept as the one string the author typed

graphitron_ast_field_reference_for_entry

What a @referenceFor application on an output field says: the participant type whose join path this application replaces, as written. For example media: [Media!] @referenceFor(type: "Book", path: [{table: "book"}]) gives one row reading Book.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

participant_type_ref (CHARACTER VARYING, not null)

the type argument exactly as written, naming the participant this path applies to. Nullable although the definition marks it required, because a document that omits it still applied the directive. Two applications naming one participant are two rows here and the conflict is a detection over them, this relation refusing nothing

graphitron_ast_field_reference_for_key_step_entry

The foreign key a path element of a @referenceFor application on an output field names, at its position in the list, as written. For example the element of @referenceFor(type: "Book", path: [{table: "book", key: "book_media_fk"}]) gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the row it hangs on

key_ref (CHARACTER VARYING, not null)

the key field of the element as written, naming a foreign-key constraint. NOT NULL because a row exists exactly where the author named one

key_ref_namespace_part (CHARACTER VARYING, nullable)

the schema half of the written name, which scopes the lookup to constraints held in that schema; NULL where none was written

key_ref_name_part (CHARACTER VARYING, not null)

the constraint half of the same, total because the grammar always yields one where a name was written

key_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s table_schema_upper, a written qualifier naming the schema of the table holding the constraint rather than a namespace of the constraint’s own. Generated, so nothing writes it and nothing can. NULL where the column beside it is, which is an unqualified spelling and matches on its name half alone

key_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s constraint_name_upper and jooq_name_upper, in that precedence. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_ast_field_reference_for_table_step_entry

The table a path element of a @referenceFor application on an output field names, at its position in the list, as written. For example @referenceFor(type: "Book", path: [{table: "book", key: "book_media_fk"}]) gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the row it hangs on

table_ref (CHARACTER VARYING, not null)

the table field of the element as written. NOT NULL because a row exists exactly where the author named a table, which is what this relation says

table_ref_namespace_part (CHARACTER VARYING, nullable)

the schema half of the written name, or NULL where none was written; split by QualifiedNameGrammar, which only cuts the string

table_ref_name_part (CHARACTER VARYING, not null)

the table half of the same, total because the grammar always yields one where a name was written

table_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s table_schema_upper. Generated, so nothing writes it and nothing can. NULL where the column beside it is, which is an unqualified spelling and is admitted against any schema the graph’s sources carry

table_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s table_name_upper. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_ast_field_reference_key_step_entry

The foreign key a path element of a @reference application on an output field names, at its position in the list, as written. For example the second element of @reference(path: [{table: "film_actor"}, {table: "actor", key: "film_actor_actor_id_fk"}]) gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the directive row it hangs on

key_ref (CHARACTER VARYING, not null)

the key field of the element as written, naming a foreign-key constraint. NOT NULL because a row exists exactly where the author named one

key_ref_namespace_part (CHARACTER VARYING, nullable)

the schema half of the written name, which scopes the lookup to constraints held in that schema; NULL where none was written

key_ref_name_part (CHARACTER VARYING, not null)

the constraint half of the same, total because the grammar always yields one where a name was written

key_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s table_schema_upper, a written qualifier naming the schema of the table holding the constraint rather than a namespace of the constraint’s own. Generated, so nothing writes it and nothing can. NULL where the column beside it is, which is an unqualified spelling and matches on its name half alone

key_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s constraint_name_upper and jooq_name_upper, in that precedence. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_ast_field_reference_table_step_entry

The table a path element of a @reference application on an output field names, at its position in the list, as written. For example @reference(path: [{table: "film_actor"}, {table: "actor", key: "film_actor_actor_id_fk"}]) gives two rows.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the directive row it hangs on

table_ref (CHARACTER VARYING, not null)

the table field of the element as written. NOT NULL because a row exists exactly where the author named a table, which is what this relation says

table_ref_namespace_part (CHARACTER VARYING, nullable)

the schema half of the written name, or NULL where none was written; split by QualifiedNameGrammar, which only cuts the string

table_ref_name_part (CHARACTER VARYING, not null)

the table half of the same, total because the grammar always yields one where a name was written

table_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s table_schema_upper. Generated, so nothing writes it and nothing can. NULL where the column beside it is, which is an unqualified spelling and is admitted against any schema the graph’s sources carry

table_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s table_name_upper. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_ast_index_entry

What an @index application says: the database index the enum value names, as written. For example TITLE_INDEX @index(name: "idx_film_title") gives one row whose index_ref is idx_film_title.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_enum_value_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_enum_value_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

index_ref (CHARACTER VARYING, not null)

the name argument decoded to the string the author wrote. NOT NULL because it is the only argument the directive has, so an application without it would give a row carrying its key and nothing else, which is what the applied-directive row already says

graphitron_ast_input_value_binding_entry

What a @field application on an input value says: the column this argument or input field binds to, as written. For example films(titleFilter: String @field(name: "title")) gives one row reading title.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_input_value_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_input_value_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

name_ref (CHARACTER VARYING, not null)

the name argument exactly as written. The definition requires it, so an application that omits it is malformed rather than meaning anything, and it writes no row here at all: the applied-directive row says the directive was applied and the argument’s own value says what was written instead

graphitron_ast_input_value_condition_context_arg_entry

One contextArguments entry of a @condition application on an input value, at its position in the list. For example contextArguments: ["tenantId"] gives one row reading tenantId at position 0.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an entry whose whole application went is swept with the decode it hangs on

name (CHARACTER VARYING, not null)

the context key as written. Not nullable, unlike the payload of a decode: an element written as some other shape contributes no row at all rather than a row of NULL, so what stands here is always something the author typed

graphitron_ast_input_value_condition_entry

What a @condition application on an input value says: the external method deciding the predicate, as written. For example scope: ID @condition(condition: {className: "no.example.Conditions", method: "inScope"}) gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_input_value_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_input_value_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

class_name (CHARACTER VARYING, not null)

the className field of the condition reference, as written. The class the anchor joins the classpath census on, so an application naming none writes no row rather than a row nothing can be resolved from

method (CHARACTER VARYING, nullable)

the method field of the same, as written, or NULL where none was

argmapping (CHARACTER VARYING, nullable)

the argMapping field of the same, as written, or NULL where none was. Kept as the one string the author typed; what its segments name is a question for the argument-mapping derivation

override (BOOLEAN, nullable)

the override argument as written, or NULL where the author wrote none. The definition’s default of false is not filled in here: it stands in graphql_directive_argument.default_value_sdl, and writing it would lose the difference between a default taken and a value written

graphitron_ast_input_value_deprecated_entry

What a deprecation marker on an input value says: the replacement hint the author gave, decoded. For example a connectionName argument marked with the reason "own your Connection type" gives one row carrying that text.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_input_value_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_input_value_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

reason (CHARACTER VARYING, nullable)

the reason argument decoded to the string the author wrote, or NULL where they wrote none or wrote something that is not a string. The decode is the whole reason this relation exists beside the applied-argument row: that row carries the rendered literal, quotes included, and a consumer wanting the text would have to re-read SDL to get it

graphitron_ast_input_value_node_id_entry

What a @nodeId application on an input value says: the type the identifier belongs to, as written. For example actorId: ID @nodeId(typeName: "Actor") gives one row naming Actor.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_input_value_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_input_value_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

node_type_ref (CHARACTER VARYING, not null)

the typeName argument as written, naming the type the identifier belongs to. A bare @nodeId writes no row: the author is asking for the deduction, which sends the anchor to a different join entirely, and the absence of a row here is what says so

graphitron_ast_input_value_reference_condition_step_entry

One path element of a @reference application on an input value that names a condition, at its position in the list. For example {condition: {className: "no.example.Conditions", method: "live"}} at position 1.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the row it hangs on

class_name (CHARACTER VARYING, not null)

the className of the element’s condition reference, as written

method (CHARACTER VARYING, nullable)

the method of the same, as written, or NULL where none was; an optional narrowing rather than a different intent

argmapping (CHARACTER VARYING, nullable)

the argMapping of the same, as written, or NULL where none was. Kept as the one string the author typed; what its segments name is a question for the argument-mapping derivation

graphitron_ast_input_value_reference_for_condition_step_entry

One path element of a @referenceFor application on an input value that names a condition, at its position in the list. For example {condition: {className: "no.example.Conditions", method: "live"}} at position 1.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the row it hangs on

class_name (CHARACTER VARYING, not null)

the className of the element’s condition reference, as written

method (CHARACTER VARYING, nullable)

the method of the same, as written, or NULL where none was; an optional narrowing rather than a different intent

argmapping (CHARACTER VARYING, nullable)

the argMapping of the same, as written, or NULL where none was. Kept as the one string the author typed; what its segments name is a question for the argument-mapping derivation

graphitron_ast_input_value_reference_for_entry

What a @referenceFor application on an input value says: the participant whose join path it replaces, as written. For example target: ID @referenceFor(type: "Book", path: [{table: "book"}]) gives one row naming Book.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_input_value_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_input_value_directive_entry; the directive is repeatable and no ordinal is needed, each application standing at its own at sign

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

participant_type_ref (CHARACTER VARYING, not null)

the type argument exactly as written, naming the participant this path applies to. Required by the definition, so an application omitting it writes no row; whether the name is a participant of any consuming query is a question for the resolving

graphitron_ast_input_value_reference_for_key_step_entry

One path element of a @referenceFor application on an input value that names a foreign key, at its position in the list. For example {key: "actor_agency_fk"} at position 0 gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the row it hangs on

key_ref (CHARACTER VARYING, not null)

the key field of the element exactly as written, naming the foreign-key constraint the hop is drawn through

key_ref_namespace_part (CHARACTER VARYING, nullable)

the schema half of the written key name, or NULL where none was written; the qualifier binds the constraint holder’s schema

key_ref_name_part (CHARACTER VARYING, not null)

the constraint half of the same, which is what sql_constraint is matched on

key_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s table_schema_upper, a written qualifier naming the schema of the table holding the constraint rather than a namespace of the constraint’s own. Generated, so nothing writes it and nothing can. NULL where the column beside it is, which is an unqualified spelling and matches on its name half alone

key_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s constraint_name_upper and jooq_name_upper, in that precedence. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_ast_input_value_reference_for_table_step_entry

One path element of a @referenceFor application on an input value that names a table, at its position in the list. For example {table: "sakila.agency"} at position 0 gives one row reading sakila and agency.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the row it hangs on

table_ref (CHARACTER VARYING, not null)

the table field of the element exactly as written

table_ref_namespace_part (CHARACTER VARYING, nullable)

the schema half of the written table name, or NULL where none was written; split by QualifiedNameGrammar, which only cuts the string

table_ref_name_part (CHARACTER VARYING, not null)

the table half of the same, which is what the spelled-table resolution is matched on

table_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s table_schema_upper. Generated, so nothing writes it and nothing can. NULL where the column beside it is, which is an unqualified spelling and is admitted against any schema the graph’s sources carry

table_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s table_name_upper. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_ast_input_value_reference_key_step_entry

One path element of a @reference application on an input value that names a foreign key, at its position in the list. For example {key: "actor_agency_fk"} at position 0 gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the row it hangs on

key_ref (CHARACTER VARYING, not null)

the key field of the element exactly as written, naming the foreign-key constraint the hop is drawn through

key_ref_namespace_part (CHARACTER VARYING, nullable)

the schema half of the written key name, or NULL where none was written; the qualifier binds the constraint holder’s schema

key_ref_name_part (CHARACTER VARYING, not null)

the constraint half of the same, which is what sql_constraint is matched on

key_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s table_schema_upper, a written qualifier naming the schema of the table holding the constraint rather than a namespace of the constraint’s own. Generated, so nothing writes it and nothing can. NULL where the column beside it is, which is an unqualified spelling and matches on its name half alone

key_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s constraint_name_upper and jooq_name_upper, in that precedence. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_ast_input_value_reference_table_step_entry

One path element of a @reference application on an input value that names a table, at its position in the list. For example {table: "sakila.agency"} at position 0 gives one row reading sakila and agency.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the row it hangs on

table_ref (CHARACTER VARYING, not null)

the table field of the element exactly as written

table_ref_namespace_part (CHARACTER VARYING, nullable)

the schema half of the written table name, or NULL where none was written; split by QualifiedNameGrammar, which only cuts the string

table_ref_name_part (CHARACTER VARYING, not null)

the table half of the same, which is what the spelled-table resolution is matched on

table_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s table_schema_upper. Generated, so nothing writes it and nothing can. NULL where the column beside it is, which is an unqualified spelling and is admitted against any schema the graph’s sources carry

table_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s table_name_upper. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_ast_link_entry

What a federation @link application says: the specification the schema opts in to, as written. For example a schema extension applying @link with federation v2.10 as its url argument gives one row carrying that string.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_schema_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_schema_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

url (CHARACTER VARYING, nullable)

the url argument decoded to the string the author wrote, or NULL where they wrote none or wrote something that is not a string. Nothing here reads the specification it names, and no version is parsed out of it

graphitron_ast_link_import_entry

One import element of a @link application, at its position in the list, as written. For example import: ["@key", {name: "@shareable", as: "@federatedShareable"}] gives two rows, the second carrying an alias.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

name (CHARACTER VARYING, not null)

the name the element imports, taken from the element itself where it was written as a bare string and from its name field where it was written as an object. NOT NULL because it is the element’s whole identity: an element that named nothing imports nothing, and the applied-directive row already says the @link was applied

alias (CHARACTER VARYING, nullable)

the local name the element binds the import to, from an object element’s as field, NULL on a bare string and on an object that wrote none. NULL is the fact that the import keeps its own name rather than a default filled in here

graphitron_ast_mutation_entry

What a @mutation application says: which write the field performs, over how many rows, against which table, as written. For example deleteFilm(input:): Boolean @mutation(typeName: DELETE, multiRow: true, table: "film") gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

operation (CHARACTER VARYING, not null)

the typeName argument as the author spelled it, an enum token being kept as its own text and never checked against the vocabulary the definition declares. Nothing upstream has validated it, so a CHECK here would turn a typo into a constraint violation; membership is a detection

multi_row (BOOLEAN, nullable)

the multiRow argument as written, or NULL where the author wrote none; the definition’s own default of false stands in graphql_directive_argument.default_value_sdl rather than being filled in here

table_ref (CHARACTER VARYING, nullable)

the table argument as written, or NULL where none was; what an omitted table resolves to is a resolution and not this relation’s business

table_ref_namespace_part (CHARACTER VARYING, nullable)

the schema half of the written name, or NULL where none was written; split by QualifiedNameGrammar, which only cuts the string

table_ref_name_part (CHARACTER VARYING, nullable)

the table half of the same

graphitron_ast_node_entry

What a @node application says: that the type is addressable by an opaque id, and what it calls itself inside one, as written. For example type Film @node(typeId: "F") gives one row whose type_id is F.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_type_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_type_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

type_id (CHARACTER VARYING, nullable)

the typeId argument decoded to the string the author wrote, or NULL where they wrote none or wrote something that is not a string. NULL is the fact that the author left it out, which the directive documents as meaning the type’s own name; substituting the name here would lose which of the two they wrote

graphitron_ast_node_keycolumn_entry

One keyColumns element of a @node application, as written. For example keyColumns: ["film_id"] gives one row, keyed where film_id was written.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line the element was written at, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the element’s own position, so this row is the decode of exactly one row of graphql_ast_value_entry; which application holds it, and where in the list it sits, are that row’s to say

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

column_ref (CHARACTER VARYING, not null)

the column the element names, as the author spelled it. Whether the database has a column of that name, and whether the columns together are a key, are questions for a resolution and not for this row

graphitron_ast_order_entry

What an @order application says: which of the three sorting surfaces an enum value selects, as written. For example BY_TITLE @order(fields: [{name: "title"}]) gives one row whose two columns are both NULL, the sort being the child rows.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_enum_value_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_enum_value_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

index_ref (CHARACTER VARYING, nullable)

the index argument decoded to the string the author wrote, or NULL where they wrote none or wrote something that is not a string

primary_key (BOOLEAN, nullable)

the primaryKey argument decoded to the boolean the author wrote, or NULL where they wrote none. NULL rather than false, the directive’s own default being a generator constant and not a fact about the document

graphitron_ast_order_field_entry

One fields element of an @order application, at its position in the list, as written. For example fields: [{name: "title", collate: "xdanish_ai"}] gives one row at position 0.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

name_ref (CHARACTER VARYING, nullable)

the element’s name field decoded to the string the author wrote, or NULL where they wrote none or wrote something that is not a string

collate (CHARACTER VARYING, nullable)

the element’s collate field on the same terms. A database-specific collation name, resolving against nothing here

direction (CHARACTER VARYING, nullable)

the element’s direction field as the enum token the author wrote, or NULL where they wrote none

graphitron_ast_pivot_entry

What a @pivot application says: the column whose values become fields, the column holding each value, and the enum naming the vocabulary, as written. For example ratingBreakdown: RatingBreakdown @pivot(on: "rating_code", value: "score", vocabulary: "Rating") gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

on_column (CHARACTER VARYING, not null)

the on argument as written, naming the column whose distinct values name the generated fields. Nullable although the definition marks it required, because a document that omits it still applied the directive

value_column (CHARACTER VARYING, not null)

the value argument as written, naming the column each generated field reads

vocabulary_ref (CHARACTER VARYING, nullable)

the vocabulary argument as written, naming the GraphQL enum whose values fix the vocabulary, or NULL where none was

graphitron_ast_routine_column_mapping_pair_entry

One pair the columnMapping string parsed into, at its index in that parse. For example columnMapping: "p_id: film_id, p_year: release_year" gives two rows, the first naming p_id and film_id.

Primary key: (graph_name, source_name, source_line, source_column, position). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphitron_ast_routine_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. With the line and the file, the application whose string this pair came out of

position (INTEGER, not null)

the pair’s 0-based index in the string the grammar read. A pair is written inside a string rather than as a node, so it has no position of its own to be identified by and takes its index instead; that is the whole of what this column is

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting the rows of this file carrying an older instant, which are the pairs an author removed from a string that still stands; an application the author moved is swept with the routine row it hangs on

param_name (CHARACTER VARYING, not null)

the routine parameter the pair binds, as written and resolved against nothing

column_ref (CHARACTER VARYING, not null)

the column the pair binds it to, as written. A dotted spelling is kept whole here and rejected by detection rather than split, the grammar admitting what the author typed and the verdict belonging to a reader of these rows

graphitron_ast_routine_entry

What a @routine application says: the database routine backing the field and the two mappings binding its parameters, as written. For example reportedFilms: [Film!] @routine(name: "public.reported_films", argMapping: "pEnv: env") gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry, and the ordinal the anchors give a repeated @routine is not a column here: the position the application was written at is what tells two of them apart

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

routine_ref (CHARACTER VARYING, not null)

the name argument exactly as written, optionally schema-qualified. Nullable although the definition marks it required, because a document that omits it still applied the directive

routine_ref_namespace_part (CHARACTER VARYING, nullable)

the schema half of the written name, or NULL where none was written; split by QualifiedNameGrammar, which only cuts the string

routine_ref_name_part (CHARACTER VARYING, nullable)

the routine half of the same

argmapping (CHARACTER VARYING, nullable)

the argMapping argument, kept as the one string the author typed; what its segments name is a question for the argument-mapping derivation

column_mapping (CHARACTER VARYING, nullable)

the columnMapping argument, kept the same way. It shares argMapping’s grammar and not its subject, binding a routine parameter to a column of the previous chain node rather than to an input path, which is why the two are columns beside each other rather than one

graphitron_ast_scalar_type_entry

What a @scalarType application says: the constant holding the scalar this declaration is bound to, as written. For example scalar Money @scalarType(scalar: "com.example.Scalars.MONEY") gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_type_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_type_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

scalar_ref (CHARACTER VARYING, not null)

the scalar argument exactly as written. Required by the definition, so an application omitting it asserts nothing and writes no row; the applied-directive row says it was applied and the argument’s own value says what was written instead

scalar_ref_class_part (CHARACTER VARYING, nullable)

the class half of the written constant, or NULL where the string does not split; ConstantReferenceGrammar only cuts it

scalar_ref_field_part (CHARACTER VARYING, nullable)

the field half of the same

graphitron_ast_service_context_arg_entry

One contextArguments element of a @service application, at its position in the list, as written. For example contextArguments: ["tenantId"] gives one row reading tenantId at position 0.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_value_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the element was written in

source_line (INTEGER, not null)

source line of the element this row decodes, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four columns are the element’s own key in graphql_ast_value_entry, so the list it sits in, the index it was written at and the application holding it are one join away rather than columns here

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant; an element whose whole application went is swept with the row it hangs on

name (CHARACTER VARYING, not null)

the element as written. NOT NULL because an element the author wrote as anything but a string contributes no row at all, so a name is the whole of what a row here says; the element it skipped stands verbatim in graphql_ast_applied_argument_entry. Whether the runtime context carries a value under this name is nothing any reading of a document can say

graphitron_ast_service_entry

What a @service application says: the external method resolving the field, as written. For example importFilms: [Film!] @service(service: {className: "no.example.FilmService", method: "importFilms"}) gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

class_name (CHARACTER VARYING, not null)

the className field of the reference, as written

method (CHARACTER VARYING, nullable)

the method field of the same, as written, or NULL where none was

argmapping (CHARACTER VARYING, nullable)

the argMapping field of the same, kept as the one string the author typed. This is the one site whose mapping admits a runtime sigil on the right-hand side, and that is a fact about how the string is later cut rather than about the string: the whole of it stands here as typed, and the lexing that tells a sigil from a path belongs where the segments are read

graphitron_ast_source_row_entry

What a @sourceRow application says: the static method producing the field’s batch key from a class-backed parent, as written. For example agency: Agency @sourceRow(className: "no.example.ActorRows", method: "agencyKey") gives one row.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_field_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_field_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

class_name (CHARACTER VARYING, not null)

the className argument as written. Two flat arguments rather than one object literal, which is the directive’s own shape: this site names a class and a method directly where the others nest them inside an ExternalCodeReference

method (CHARACTER VARYING, nullable)

the method argument as written

graphitron_ast_table_entry

What an @table application says: the table this declaration is bound to, as written. For example type Film @table(name: "film") gives one row reading film.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_type_directive_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the application was written in

source_line (INTEGER, not null)

source line of the at sign, 1-based per the graphql-java convention

source_column (INTEGER, not null)

source column of the same. The four key columns are the applied directive’s own key, so this row is the decode of exactly one row of graphql_ast_type_directive_entry and neither carries what the other holds

touched_at (TIMESTAMP, not null)

when the reading that produced this row ran. The reading finishes by deleting its file’s rows carrying an older instant, which are the applications the author removed or renamed in place; an application the author moved is swept with the directive row it hangs on

table_ref (CHARACTER VARYING, not null)

the name argument exactly as written. A bare @table writes no row: the author is asking for the table name to be deduced from the type’s own, which is a thing they said and which the absence of a row here is what records

table_ref_namespace_part (CHARACTER VARYING, nullable)

the schema half of the written name, or NULL where none was written; split by QualifiedNameGrammar, which only cuts the string

table_ref_name_part (CHARACTER VARYING, not null)

the table half of the same

table_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s table_schema_upper. Generated, so nothing writes it and nothing can. NULL where the column beside it is, which is an unqualified spelling and is admitted against any schema the graph’s sources carry

table_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s table_name_upper. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_carrier_data_field

Where a mutation payload’s data arrives: for each OBJECT type a mutation-root write field returns, that type’s data channels, one row per channel per producing family, with the shape each element declares and how many channels the type has. For example a payload declaring film: Film beside an errors channel draws one row for film under family DML, its element kind TABLE and its channel count one.

Primary key: (graph_name, type_name, field_name, family). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the producing field

type_name (CHARACTER VARYING, not null)

the payload type the producing field returns; the type whose data channels these rows are

field_name (CHARACTER VARYING, not null)

the data channel’s field name within the payload type; the coordinate an author’s cursor sits on

family (CHARACTER VARYING, not null)

which producing directive returns the payload, a closed three-value domain: SERVICE (@service), DML (@mutation), ROUTINE (@routine). Provenance and policy both, the two rejections that differ between families being this column’s; a payload two families return is a row per family, and a reader that means one of them filters on it

element_kind (CHARACTER VARYING, nullable)

what the channel’s element is, a closed three-value domain: TABLE (the named type is bound to one catalog table), RECORD (the backing closure reaches a class for it), ID (the ID scalar, the encoded-key echo). Never NULL here, an unrecognized element having dropped its whole payload

data_fields (INTEGER, not null)

how many data channels the payload declares, this row being one of them; 1 is what a carrier requires, and a larger number is what the generator’s own "require exactly one" rejection counts. Stated as a column rather than left to each reader’s count, because whether the payload is a carrier at all decides the reading and a reader that counted for itself would be re-deriving the scan’s arity

graphitron_carrier_data_field_rule (view)

One row the carrier data-channel rule computes, in the shape graphitron_carrier_data_field stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_carrier_data_field, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_carrier_data_field.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_carrier_data_field.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_carrier_data_field.field_name, whose comment carries what the value means

family (CHARACTER VARYING, nullable)

the family of a row of this rule, which the stage inserts into graphitron_carrier_data_field.family, whose comment carries what the value means

element_kind (CHARACTER VARYING, nullable)

the element_kind of a row of this rule, which the stage inserts into graphitron_carrier_data_field.element_kind, whose comment carries what the value means

data_fields (INTEGER, nullable)

the data_fields of a row of this rule, which the stage inserts into graphitron_carrier_data_field.data_fields, whose comment carries what the value means

graphitron_carrier_facet_mint (view)

What one connection carrier’s facets add to the schema: one row per facet the carrier surfaces, carrying the container and value-type names the mint derives. For example films(filter: FilmFilter) @asConnection with a title facet is one row naming QueryFilmsConnectionFacets and StringFacetValue.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the facet

type_name (CHARACTER VARYING, nullable)

the type declaring the carrier

field_name (CHARACTER VARYING, nullable)

the carrier field

connection_name (CHARACTER VARYING, nullable)

the connection this carrier mints, which the container is named from

facets_type_name (CHARACTER VARYING, nullable)

the per-connection container type, which is the connection’s name and a suffix

position (INTEGER, nullable)

the facet’s position on the container, dense per carrier and in emission order

facet_field_name (CHARACTER VARYING, nullable)

the facet’s field on the container, which is the @asFacet site’s own name

value_type_name (CHARACTER VARYING, nullable)

the bucket type for this facet’s values, whose name carries the scalar and whether a null value is a bucket

value_scalar (CHARACTER VARYING, nullable)

the scalar the facet’s values are, which the bucket’s own value field returns

value_nullable (BOOLEAN, nullable)

whether a null is one of the buckets, which decides both the bucket type’s name and its value field’s nullability

graphitron_code_reference

The one method a written Java code reference names, where the graph’s classpath answers with exactly one. For example @service(service: {className: "no.example.CityService", method: "cityUppercase"}) draws one row naming the one cityUppercase that class declares, and a misspelt method draws none.

Primary key: (graph_name, source_name, source_line, source_column). Foreign key: (graph_name, source_name, source_line, source_column) references graphitron_ast_code_reference_entry (graph_name, source_name, source_line, source_column). Foreign key: (method_source_name, method_class_name, method_name, method_descriptor) references code_method (source_name, class_name, method_name, descriptor).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the written reference

source_name (CHARACTER VARYING, not null)

the file the reference was written in, the first of the four columns that are the written reference’s key in graphitron_ast_code_reference_entry

source_line (INTEGER, not null)

source line of the node the reference was written as

source_column (INTEGER, not null)

source column of the same, completing the key. One reference resolves to at most one method, so the reference is the whole grain

method_source_name (CHARACTER VARYING, not null)

the classpath entry the resolved method was read from, the first of the four columns naming one code_method row; one of the entries the graph reached through store_graph_source

method_class_name (CHARACTER VARYING, not null)

the class declaring the resolved method, equal to what the author wrote, the match being exact: Java names are case-sensitive and a misspelling resolves to nothing rather than to a near match

method_name (CHARACTER VARYING, not null)

the resolved method’s name: the reference’s, or the field’s where an @externalField wrote none, as graphitron_code_reference_site states it

method_descriptor (CHARACTER VARYING, not null)

the resolved method’s JVM descriptor, completing the reference into code_method. Not in the key: a reference matching two overloads is ambiguous and draws no row, so the descriptor is what the one method is rather than what tells two rows apart

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. Swept per graph after the reading upserts, so a reference that stopped resolving leaves and the rest stay; a reference the author removed goes through the cascade on its written form

graphitron_code_reference_site (view)

Where one written Java code reference sits: the directive that wrote it, the element it is on, and the method it names once that site’s default applies. For example isEnglish: Boolean @externalField(reference: {className: "no.example.FilmExtensions"}) sits at Film.isEnglish under externalField and names isEnglish.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the written reference

source_name (CHARACTER VARYING, nullable)

the file the reference was written in, the first of the four columns that are the written reference’s key

source_line (INTEGER, nullable)

source line of the node the reference was written as

source_column (INTEGER, nullable)

source column of the same, completing the key

directive_name (CHARACTER VARYING, nullable)

the directive whose application wrote the reference, reached through the argument that holds it, or the application itself at @sourceRow

coordinate (CHARACTER VARYING, nullable)

the element the application is written on, as graphql_ast_element_entry spells it: a type, a field, an argument or an input field

type_name (CHARACTER VARYING, nullable)

the type owning that element where the element is a field or an argument, NULL where it is a type

field_name (CHARACTER VARYING, nullable)

the field that element is or belongs to, NULL where it is a type

class_name (CHARACTER VARYING, nullable)

the class the reference names, as written

method_name (CHARACTER VARYING, nullable)

the method the reference names: as written, or the field’s own name where an @externalField wrote none, which is the one default any site applies. NULL where the reference names a class only, as @enum does

graphitron_condition_method_route (view)

How a condition method’s own signature routes a hop: the departing tables its first parameter admits, beside the table its second parameter names. For example a method taking a film table and an actor table routes film to actor, whatever element named it.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from whichever reference-step relation named the pair; the leading key dimension that keeps one workspace’s graphs apart

class_name (CHARACTER VARYING, nullable)

the condition class as the author wrote it, fully qualified, carried from the path element; the key this route answers for together with the method beside it

method (CHARACTER VARYING, nullable)

the condition method name as the author wrote it. A name and not a signature: the generator resolves by name and admits the declarations that share it, so this relation answers for the set. Overloads differing on the departure slot are several routes here and the hop arities are where that shows; overloads differing on the arrival slot are no route, the arrival being the one thing the set must agree on

from_source_name (CHARACTER VARYING, nullable)

the departing table’s catalog partition, first column of its sql_table key

from_schema (CHARACTER VARYING, nullable)

the departing table’s SQL schema

from_table (CHARACTER VARYING, nullable)

the departing table’s SQL name; a candidate departure and never a fact about a chain, on graphitron_field_reference_step_hop.from_table’s terms. Where parameter 0 names a generated table class this is that one table; where it names none the candidacy is every table in the graph’s sources, which costs nothing until a chain says where it actually stands

to_source_name (CHARACTER VARYING, nullable)

the arriving table’s catalog partition, first column of its sql_table key

to_schema (CHARACTER VARYING, nullable)

the arriving table’s SQL schema

to_table (CHARACTER VARYING, nullable)

the arriving table’s SQL name. With the two columns above this is sql_table’s full key. Always a table parameter 1 names concretely, never a candidacy: a route with no certain arrival is no route

graphitron_connection_carrier (view)

A field @asConnection expands, with the names and wrapping its expansion needs: one row per carrier. For example films: [Film!]! @asConnection on Query is one row naming QueryFilmsConnection, QueryFilmsConnectionEdge and the element Film!, where the same directive on a films: Film field is no row at all.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the application

type_name (CHARACTER VARYING, nullable)

the type declaring the carrier

field_name (CHARACTER VARYING, nullable)

the carrier field itself

coordinate (CHARACTER VARYING, nullable)

the carrier’s coordinate, spelled as graphitron_element spells one

connection_name (CHARACTER VARYING, nullable)

the connection type this carrier mints: what @asConnection(connectionName:) asked for, or the default built from the carrier’s own coordinate. Two carriers may land on one name, which is a disagreement the anchor resolves rather than a key this relation holds

edge_name (CHARACTER VARYING, nullable)

the edge type, which is the connection’s name and a suffix; derived here so no arm spells the rule a second time

element_type (CHARACTER VARYING, nullable)

the carrier’s element type, wrappers stripped: what the connection pages over

item_sdl (CHARACTER VARYING, nullable)

that element as the machinery fields write it, carrying the item nullability the author gave the list

item_non_null (BOOLEAN, nullable)

whether the list’s items are non-null, which the machinery fields carry into the shapes they mint

non_null (BOOLEAN, nullable)

whether the carrier itself is non-null, which the rewritten field keeps

ordinal (INTEGER, nullable)

the carrier’s position on its type, which the rewrite does not change

description (CHARACTER VARYING, nullable)

the carrier’s docstring, carried across the rewrite unchanged

default_first_value (INTEGER, nullable)

the page size @asConnection asked for, or NULL where it asked for none

argument_count (INTEGER, nullable)

how many arguments the author wrote on the carrier, which is where the minted pagination arguments start numbering; they follow the authored ones rather than displacing them

source_name (CHARACTER VARYING, nullable)

the document the application was written in, carried so a reader can say which application minted a name

source_line (INTEGER, nullable)

the application’s line, on source_name’s terms

source_column (INTEGER, nullable)

the application’s column, on source_name’s terms

graphitron_connection_element_type (view)

Which type a connection type paginates: one row per type whose shape is a Relay connection, naming the element it delivers. For example a FilmConnection declaring edges whose element declares node: Film draws one row naming Film, and a type that is not a connection draws none, so a reader left-joins this rather than joining it.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the connection type’s own row; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, nullable)

the connection type itself, the wrapper a field returns; with the graph, the grain

element_type_name (CHARACTER VARYING, nullable)

the type the connection paginates, read off the edge type’s node field’s named type with its wrappers already stripped by graphql_field. A name and not a binding: whether the element is bound to a table is graphitron_resolved_type_binding’s answer and deliberately not asked here

graphitron_connection_entry

The connection an @asConnection application asks the macro to expand a field into, as one row per field however many applications the corpus wrote on it. For example films: [Film!] @asConnection(defaultFirstValue: 25) gives one row carrying that page size and no name, the type name being derived where the author wrote none.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

default_first_value (INTEGER, nullable)

as written; NULL when omitted

connection_name (CHARACTER VARYING, nullable)

the deprecated shared-type override, as written; honoured by the expansion, deprecation is a lint detection

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the applications an author removed from a coordinate that still stands; a coordinate the author removed takes its rows with it through the cascade on the reference below, so the two together are what makes this relation total without a pass emptying it first

graphitron_connection_facet (view)

Which facets one connection carrier surfaces, and in which order: one row per @asFacet application reachable from the carrier’s own filter arguments. For example films(filter: FilmFilter) @asConnection surfaces every facet FilmFilter declares, in emission order.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the carrier’s arguments

type_name (CHARACTER VARYING, nullable)

the type owning the carrier field

field_name (CHARACTER VARYING, nullable)

the carrier field’s name within that type; with the column above, the connection carrier’s coordinate

position (BIGINT, nullable)

the facet’s place in this carrier’s facet list, 1-based and dense: argument declaration order, then facet field declaration order. The emission order, so a consumer reads it rather than re-deriving it from the two ordinals it was computed from

filter_argument_name (CHARACTER VARYING, nullable)

the carrier argument the facet’s binding rides in. Half of a facet’s suppression identity at emission: a same-named field on a sibling filter argument is a different binding, and the pair with facet_field_name is what tells them apart

facet_type_name (CHARACTER VARYING, nullable)

witness: the input object type the application was written on, which is the argument’s named type. With the column beside it this is graphitron_facet_binding’s key, so the application’s own position is one join away

facet_field_name (CHARACTER VARYING, nullable)

the facet field’s name: the label the counts surface under, and the other half of the suppression identity

column_name (CHARACTER VARYING, nullable)

the column the counts group by, carried from graphitron_facet_binding

value_type_name (CHARACTER VARYING, nullable)

the named type a facet key carries, carried from graphitron_facet_binding

value_nullable (BOOLEAN, nullable)

whether a facet key may be null, carried from graphitron_facet_binding

source_name (CHARACTER VARYING, nullable)

the @asFacet application’s own file, carried from graphitron_facet_binding: a diagnostic about a facet points at the application and not at the carrier that consumes it

source_line (INTEGER, nullable)

source line of the application, 1-based

source_column (INTEGER, nullable)

source column of the application, 1-based

graphitron_default_order_entry

The ordering a field sorts by when the client asks for none, as one row per field however many @defaultOrder applications the corpus wrote on it. For example @defaultOrder(primaryKey: true, direction: DESC) gives one row stating the basis and the fallback direction, with the field list beside it.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

index_ref (CHARACTER VARYING, nullable)

the database index name as written

primary_key (BOOLEAN, nullable)

as written; NULL when omitted

direction (CHARACTER VARYING, nullable)

as written; open column, the ASC default is a derivation

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the applications an author removed from a coordinate that still stands; a coordinate the author removed takes its rows with it through the cascade on the reference below, so the two together are what makes this relation total without a pass emptying it first

graphitron_default_order_field_entry

One field a @defaultOrder sorts by, at its place in the order the rows are read in. For example @defaultOrder(fields: [{name: "title", collate: "xdanish_ai", direction: DESC}]) gives one row at position 0.

Primary key: (graph_name, type_name, field_name, position). Foreign key: (graph_name, type_name, field_name) references graphitron_default_order_entry (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

position (INTEGER, not null)

0-based position within the owning list

name_ref (CHARACTER VARYING, not null)

the name argument as written

collate (CHARACTER VARYING, nullable)

the collation as written, when declared

direction (CHARACTER VARYING, nullable)

the sort direction as written; author-spelled enum literal, open column

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the applications an author removed from a coordinate that still stands; a coordinate the author removed takes its rows with it through the cascade on the reference below, so the two together are what makes this relation total without a pass emptying it first

graphitron_defect_type

One defect a written graphitron directive can carry, declared once: what to call it, how bad it is, whose problem it is, and the sentence that states the rule. For example CONNECTION_RETURN is an error the generator owes an emitter, whose statement is that a @routine write re-reads by the keys it returned rather than by a page.

Primary key: (code). Check: "SEVERITY" IN('error', 'warning'). Check: "FAULT" IN('AUTHOR', 'GENERATOR').

Columns
code (CHARACTER VARYING, not null)

the defect’s name, and the whole key. Declared here rather than captured, so it carries no graph and no instant: the vocabulary is a property of this generator and not of anybody’s schema

severity (CHARACTER VARYING, not null)

whether a build stops on it, stated once per defect rather than once per row. A function of the code and nothing else, which is why it lives beside the code and not on the findings

fault (CHARACTER VARYING, not null)

whose problem it is: AUTHOR where changing the schema removes the defect, GENERATOR where the schema is legitimate and this generator has no emitter for the shape. A function of the code exactly as the severity is, which is why it sits here; a code whose fault depended on the row would be two codes, and splitting it is what tells an author to edit from what tells them to wait

lsp_code (CHARACTER VARYING, nullable)

the diagnostic code an editor shows and filters by, null where none is published. The one part of a defect’s name a consumer reads as data rather than as prose, which is what keeps the code column load-bearing rather than a label

statement (CHARACTER VARYING, not null)

the rule, as one author-facing sentence. The message a consumer renders quotes this and the finding’s detail; neither is stored per row

graphitron_deprecated

This schema element is deprecated, and this is the replacement hint the author gave: whatever the corpus retired, under the coordinate that names it. For example a retired directive draws the row @asConnection and a retired argument of one draws @asConnection(connectionName:).

Primary key: (graph_name, coordinate). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (graph_name, coordinate) references graphql_element (graph_name, coordinate).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph

coordinate (CHARACTER VARYING, not null)

the element that was deprecated, in the specification’s grammar. No foreign key into graphql_element, and the reason is a producer rather than the model: that relation still has two writers, and the older one predates the two directive coordinate kinds, so a row here naming a retired directive would resolve under one producer and dangle under the other. The key becomes a reference the day the second writer goes. One relation rather than three, which is what a coordinate buys: this was a relation per shape of key, a directive under its name, an argument of one under two names, an input field under a type and a field, each carrying the same reason under a differently spelled key. A reader asking whether something is deprecated asks once and does not sort out which of three relations to ask

reason (CHARACTER VARYING, not null)

the replacement hint, as the author wrote it. Empty where the marker carried none, which is a marker without advice rather than no marker: absence of a row is what says a thing is not deprecated. Which of the two markers said so is not recorded and not asked. GraphQL forces them apart, the native marker being illegal on a directive definition, so a retired directive says so with a token in its description instead; unifying the two is what this family is for

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran, on graphql_element.touched_at’s terms: swept per graph, and NOT NULL so the sweep is total

graphitron_element

A schema element the generator emits exists in this graph, whether an author declared it or macro expansion minted it: the supertype of the three element relations beside it, keyed by the schema coordinate the GraphQL specification spells for it. For example a QueryFilmsConnection no author wrote is the row QueryFilmsConnection here and no row at all in graphql_element, and the field carrying the macro is one row in each.

Primary key: (graph_name, coordinate). Foreign key: (graph_name) references store_graph (graph_name). Check: "ELEMENT_KIND" IN('NAMED_TYPE', 'FIELD', 'INPUT_FIELD', 'FIELD_ARGUMENT').

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

coordinate (CHARACTER VARYING, not null)

the coordinate itself, in the specification’s own grammar and spelled exactly as graphql_element spells it: Type for a named type, Type.field for a field or an input field of one, and Type.field(argument:) for an argument of a field. Total by construction, which is what lets one column stand for a coordinate of any kind where the decomposed keys beside it cannot

element_kind (CHARACTER VARYING, not null)

which kind of schema element this row is, in the specification’s own vocabulary, and so which relation beside this one a reader joins to get the parts, FIELD and INPUT_FIELD sharing one. Four of the specification’s seven kinds, the vocabulary being narrower than graphql_element’s by exactly the enum value this family holds no anchor for

touched_at (TIMESTAMP, not null)

the reading that last wrote this row, which is what its sweep tells readings apart by: a row this reading did not rewrite is one the corpus stopped stating and goes. The other half of the lifecycle the walk’s clear used to stand in for, the cascade above being the first

graphitron_element_authored (view)

One of the four sets graphitron_element is the union of: an element an author declared, at the coordinate the transcription spells for it, of a kind this family anchors. For example the Film in type Film { title: String } is one row, and the Film.title written inside it is another.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the transcription

coordinate (CHARACTER VARYING, nullable)

the coordinate itself, as graphql_element spells it

element_kind (CHARACTER VARYING, nullable)

the kind, in the specification’s own vocabulary and narrowed to the four this family anchors

graphitron_element_minted_argument (view)

One of the four sets graphitron_element is the union of: a field argument macro expansion adds to the schema, which today is the pagination a connection carrier gets where its author wrote none. For example the first and after on Query.films(first:) where the author wrote films: [Film!]! @asConnection with no arguments.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the minting row

coordinate (CHARACTER VARYING, nullable)

the argument’s coordinate, Type.field(argument:) in the specification’s grammar, the trailing colon included because the specification writes it

element_kind (CHARACTER VARYING, nullable)

always FIELD_ARGUMENT

graphitron_element_minted_field (view)

One of the four sets graphitron_element is the union of: a field macro expansion adds to the schema, on the minted type set’s terms and one more. For example the edges and pageInfo on a minted QueryFilmsConnection, and nothing at all where the author declared that type themselves.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the minting row

coordinate (CHARACTER VARYING, nullable)

the field’s coordinate, Type.field in the specification’s grammar

element_kind (CHARACTER VARYING, nullable)

always FIELD; no macro today puts a field into an input object, and the day one does this is where the kind starts being derived

graphitron_element_minted_type (view)

One of the four sets graphitron_element is the union of: a type macro expansion adds to the schema, which no author declared and no two applications disagree about. For example an author writing films: [Film!]! @asConnection and nothing else gets QueryFilmsConnection here, where an author who also wrote their own QueryFilmsConnection gets no row.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the minting row

coordinate (CHARACTER VARYING, nullable)

the minted type’s name, which is how the specification spells a named type’s coordinate

element_kind (CHARACTER VARYING, nullable)

always NAMED_TYPE, the macros minting nothing else at this grain

graphitron_entry_defect

A written graphitron directive the generator will not emit for, at the position it was written and under the rule that stopped it. For example a mutation field carrying @routine and an @orderBy draws one row at the @orderBy’s own line, reading READ_SURFACE_ON_WRITE.

Primary key: (graph_name, source_name, source_line, source_column, code). Foreign key: (graph_name) references store_graph (graph_name). Foreign key: (code) references graphitron_defect_type (code).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the file the offending directive was written in, the first of the three columns naming its position

source_line (INTEGER, not null)

the offending directive’s source line, 1-based per the graphql-java convention

source_column (INTEGER, not null)

the offending directive’s source column; with the two columns above, the entry this defect is about. The key is the entry and not the coordinate, because a coordinate is an aggregate over the sites that declare it and two offending applications at one coordinate are two things to fix

code (CHARACTER VARYING, not null)

which defect, a graphitron_defect_type key and a foreign key into it. With the entry the whole key: one entry may break two rules and then carries two rows, there being no ranking here and nothing to choose between them

type_name (CHARACTER VARYING, nullable)

the type owning the coordinate the offending directive was written at. Payload and not key: an entry is written at one coordinate, so this is determined by the position beside it

field_name (CHARACTER VARYING, nullable)

the field of that type, NULL where the defect sits at a type rather than a field

detail (CHARACTER VARYING, nullable)

the specific a rendered message quotes back, null where the code says everything

graphitron_entry_defect_rule (view)

One row the entry-defect rule computes, in the shape graphitron_entry_defect stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_entry_defect, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the entry; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, nullable)

the file the offending directive was written in, the first of the three columns naming its position; with them a reference into graphql_ast_entry, which is the supertype that makes a @routine application and a path element the same kind of thing to point at

source_line (INTEGER, nullable)

the offending directive’s source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

the offending directive’s source column; with the two columns above, the entry this defect is about. The key is the entry and not the coordinate, because a coordinate is an aggregate over the sites that declare it and two offending applications at one coordinate are two things to fix

code (CHARACTER VARYING, nullable)

which defect, a graphitron_defect_type key. With the entry the whole key: one entry may break two rules and then carries two rows, there being no ranking here and nothing to choose between them

type_name (CHARACTER VARYING, nullable)

the type owning the coordinate the offending directive was written at. Payload and not key: an entry is written at one coordinate, so this is determined by the position beside it and adds no way to tell two rows apart. Carried because the read surface this feeds groups by coordinate, and a class of rows answering NULL there is an axis with a hole in it rather than an axis

field_name (CHARACTER VARYING, nullable)

the field of that type, NULL where the defect sits at a type rather than a field. Every rule here is about a field today and the column is nullable anyway, the coordinate axis it feeds being nullable at the type grain by construction

detail (CHARACTER VARYING, nullable)

the specific a rendered message quotes back, null where the code says everything. One column and never a payload: what a consumer needs beyond this is a join from the entry, and the columns that used to differ per defect were all message material

graphitron_error_entry

@error on an object type: presence; the handlers list decodes into the ordered child, and every cross-field handler rule is a detection. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name). Foreign key: (graph_name, type_name) references graphql_type_element (graph_name, type_name). Foreign key: (graph_name, type_name, source_name, declaration_line, declaration_column) references graphql_type_declaration (graph_name, type_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

source_name (CHARACTER VARYING, not null)

half of the site FK, so NOT NULL; a graphitron application always has an SDL position

declaration_line (INTEGER, not null)

line of the contributing declaration site, keyed with source_name

declaration_column (INTEGER, not null)

column of the contributing declaration site, the site key’s fourth part

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

graphitron_error_handler_entry

An ordered ErrorHandler of an @error application. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, position). Foreign key: (graph_name, type_name) references graphitron_error_entry (graph_name, type_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

position (INTEGER, not null)

0-based position within the owning list

handler (CHARACTER VARYING, not null)

GENERIC / DATABASE / VALIDATION as written; open column

class_name (CHARACTER VARYING, nullable)

the exception class as written

code (CHARACTER VARYING, nullable)

the database error code the handler matches on

sql_state (CHARACTER VARYING, nullable)

the SQL state code the handler matches on

matches (CHARACTER VARYING, nullable)

a substring the exception message must contain

description (CHARACTER VARYING, nullable)

SDL description string, when the author wrote one

graphitron_external_field_entry

@externalField on a field: the static jOOQ-Field method. The omitted-method fallback (the field name) is a derivation; argmapping is inert here (raw column only, its rejection is presence-triggered). Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. graphitron_ast_external_field_entry is the replacement, written by the graphitron-ast gatherer from the document the application sits in.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

class_name (CHARACTER VARYING, nullable)

the fully-qualified Java class name as written

method (CHARACTER VARYING, nullable)

the Java method name as written

argmapping (CHARACTER VARYING, nullable)

the argMapping string as written; the pair child is its decode

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the applications an author removed from a coordinate that still stands; a coordinate the author removed takes its rows with it through the cascade on the reference below, so the two together are what makes this relation total without a pass emptying it first

graphitron_facet_binding (view)

What one @asFacet application binds, at the applications that are well formed: the column its counts group by, the named type those counts are keyed on, and whether such a key may be null. For example @asFacet on FilmFilter.rating is one row naming the rating column and the type its values carry.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from graphitron_facet_entry

type_name (CHARACTER VARYING, nullable)

the input object type the facet field is declared on

field_name (CHARACTER VARYING, nullable)

the facet field’s name within that input type; with the two columns above, the grain

ordinal (INTEGER, nullable)

the field’s declaration order within its input type, carried from graphql_field; the inner half of the order one carrier’s facets surface in

column_name (CHARACTER VARYING, nullable)

the @field(name:) binding as written: the column the counts group by. Which table it resolves on is the consuming carrier’s element binding and not a fact about the application, so it is not here

value_type_name (CHARACTER VARYING, nullable)

the named type a facet key carries, the filter field’s leaf; a scalar or an enum, an input object being a decline above

value_nullable (BOOLEAN, nullable)

whether a facet key may be null: the list element’s nullability where the filter field is a list, TRUE otherwise. With value_type_name it decides both the synthesized FacetValue type the counts surface through and whether the aggregate scrubs a null key

source_name (CHARACTER VARYING, nullable)

the @asFacet application’s own file; the position a diagnostic would carry

source_line (INTEGER, nullable)

source line of the application, 1-based

source_column (INTEGER, nullable)

source column of the application, 1-based

graphitron_facet_entry

@asFacet on an input field: a marker; the bound column comes from graphitron_field_binding_entry, and every misuse arm is a detection. Anchored beside the @asConnection it is a sibling of, the expansion that reads both being one step of the gatherer that decodes the documents they are written in.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

touched_at (TIMESTAMP, not null)

the reading that last wrote this row; what the anchor’s sweep compares against to delete the applications the corpus no longer makes

graphitron_federation_key_entry

Federation @key as the author wrote it, decoded for consumption (its verbatim twin lives in graphql_directive_application for re-emission; a gate query pins agreement). Authored applications alone, which is what this family’s charter says a decode is: the key federation synthesizes for a node type is a derivation over these rows and the node metadata, and it lives in graphitron_synthesized_federation_key. A reader wanting every key the emitted schema carries reads intent_federation_key, which unions the two. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. graphitron_ast_federation_key_entry is the replacement, written by the graphitron-ast gatherer from the document the application sits in.

Primary key: (graph_name, type_name, ordinal). Foreign key: (graph_name, type_name) references graphql_type_element (graph_name, type_name). Foreign key: (graph_name, type_name, source_name, declaration_line, declaration_column) references graphql_type_declaration (graph_name, type_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

ordinal (INTEGER, not null)

@key is repeatable; document order

source_name (CHARACTER VARYING, not null)

the applying declaration site, which every row here has, the relation holding authored applications alone

declaration_line (INTEGER, not null)

line of the contributing declaration site, keyed with source_name

declaration_column (INTEGER, not null)

column of the contributing declaration site, the site key’s fourth part

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

fields_sdl (CHARACTER VARYING, not null)

the field-set literal as written

resolvable (BOOLEAN, nullable)

as written; NULL when omitted

graphitron_federation_key_field_entry

An ordered element of a @key field set (the field-set grammar is a parse boundary, so the decode happens at capture). One row per leaf selection, in written order, and the row is the position alone: what the selection names is the segment child, because the grammar admits nesting and a decoded grammar lands as rows rather than as a rendered string. A top-level selection is one segment, so the child is never empty. That today’s consumer rejects nesting is a detection, not a capture limit. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, ordinal, position). Foreign key: (graph_name, type_name, ordinal) references graphitron_federation_key_entry (graph_name, type_name, ordinal).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

ordinal (INTEGER, not null)

capture-assigned position in document order

position (INTEGER, not null)

0-based within the field set

graphitron_federation_key_field_segment_entry

What one @key selection names, segment by segment: the nesting the field-set parser computes, recorded rather than rendered. A reader asking which leaf a key selects, and under what parent, joins instead of splitting a dotted string, which is the whole reason the parser’s prefix stack reaches the store at all. Positions are dense from zero and a selection always has a position-zero segment, an unnested one having only that. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, ordinal, position, segment_position). Foreign key: (graph_name, type_name, ordinal, position) references graphitron_federation_key_field_entry (graph_name, type_name, ordinal, position).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

ordinal (INTEGER, not null)

the owning @key application’s ordinal

position (INTEGER, not null)

the owning selection’s 0-based position within the field set

segment_position (INTEGER, not null)

0-based position of the segment within the selection, dense from zero; position zero names a field of the type the @key sits on, and each further position descends into the one before it

segment_name (CHARACTER VARYING, not null)

the segment itself, one name carrying no dot; what a reader would otherwise have recovered by splitting a path

graphitron_field

Every field the generator works with, at the type expression it works with: one row per field coordinate, output and input alike, carrying the wrapping columns graphql_field carries. For example a field the connection macro rewrote reads here as the Connection it returns, where graphql_field is where a reader goes for what the author wrote instead.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name) references graphitron_type (graph_name, type_name). Foreign key: (graph_name, coordinate) references graphitron_element (graph_name, coordinate). Check: "IS_LIST" OR ("ITEM_NON_NULL" IS NULL).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from whichever arm supplied the row

type_name (CHARACTER VARYING, not null)

the type owning the field, anchored by graphitron_type

field_name (CHARACTER VARYING, not null)

the field’s name within the owning type; with the two columns above, the grain

coordinate (CHARACTER VARYING, not null)

this row as graphitron_element spells it, Type.field in the specification’s grammar; the join down from the supertype, on graphitron_type.coordinate’s terms

ordinal (INTEGER, not null)

the field’s position within its type, merge-ordered across declaration sites exactly as graphql_field numbers it, and the order the macro wrote them in on a minted type

type_sdl (CHARACTER VARYING, not null)

the type expression as the generator reads it: the authored literal on an ordinary field, and the macro’s rewrite where one happened

named_type (CHARACTER VARYING, not null)

that expression’s named type with its list and non-null wrappers stripped, which is the column readers actually join on

non_null (BOOLEAN, not null)

whether the outermost wrapper is non-null

is_list (BOOLEAN, not null)

whether the expression is a list

item_non_null (BOOLEAN, nullable)

whether a list’s item is non-null; NULL where the expression is not a list, which the CHECK holds

default_value_sdl (CHARACTER VARYING, nullable)

the default literal where the coordinate is an input field with one; display material, never a dimension

description (CHARACTER VARYING, nullable)

the docstring, authored or macro-written; display material, never a dimension

graphitron_field_authored (view)

One of the two sets graphitron_field is the union of: a field an author declared that no expansion rewrote, carried across whole. For example the title in type Film { title: String }, where films: [Film!]! @asConnection is not here, the expansion having restated it.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the transcription

type_name (CHARACTER VARYING, nullable)

the type the field is declared on

field_name (CHARACTER VARYING, nullable)

the field’s own name

coordinate (CHARACTER VARYING, nullable)

Type.field, the specification’s spelling, which is the join up to graphitron_element

ordinal (INTEGER, nullable)

where the author wrote it among the type’s fields, carried so the emitted schema keeps their order

type_sdl (CHARACTER VARYING, nullable)

the type expression as written, wrappers included

named_type (CHARACTER VARYING, nullable)

the name at the bottom of that expression

non_null (BOOLEAN, nullable)

whether the outermost wrapper is non-null

is_list (BOOLEAN, nullable)

whether the expression is a list

item_non_null (BOOLEAN, nullable)

whether a list’s items are non-null, and nothing where it is not a list

default_value_sdl (CHARACTER VARYING, nullable)

the default as written, which an output field never has and an input field may; the one column the minted set cannot supply

description (CHARACTER VARYING, nullable)

the docstring the author wrote, or nothing

graphitron_field_binding_entry

@field on an output or input-object field: the slot’s bound name. A column, a Java accessor, or a Java member depending on the backing, which is classification’s business; the $source / $errors sigil forms are stored as written, their recognition being a prefix test SQL can express. Anchored from the two AST binding entries, one per habitat, so the fact is available to everything the document gatherer derives rather than only to what runs after the decode.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the application’s own position, here and below

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

name_ref (CHARACTER VARYING, not null)

the name argument as written

name_ref_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_column’s column_name_upper and jooq_name_upper. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

touched_at (TIMESTAMP, not null)

the reading that last wrote this row; what the anchor’s sweep compares against to delete the applications the corpus no longer makes

graphitron_field_chain_application

One directive application composing a field’s table chain, at its place in the written order: one row per contributing application, numbered from 0. For example a field carrying @reference then @routine then @reference draws three rows at positions 0, 1 and 2, where the two decode relations under them number their own applications 0, 0 and 1 and no relation says which came first.

Primary key: (graph_name, type_name, field_name, chain_position). Foreign key: (graph_name, coordinate, directive_name, ordinal) references graphql_directive_application (graph_name, coordinate, directive_name, ordinal). Check: "CHAIN_POSITION" >= 0. Check: "DIRECTIVE_NAME" IN('reference', 'routine').

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the type owning the field the application sits on

field_name (CHARACTER VARYING, not null)

the field the application sits on; with the two columns above, the coordinate whose chain this row is a step of

chain_position (INTEGER, not null)

the application’s place in the written order, dense from 0 across every directive that contributes to the chain. The manual states the order is load-bearing and the decode relations cannot carry it: each numbers its own applications, so @reference#0, @routine#0 and @reference#1 are three ordinals in two relations with no relation between them. In the key, so two applications at one position are unwritable rather than merely unexpected

coordinate (CHARACTER VARYING, not null)

the coordinate the application was written on, which with the two columns after it is the reference into graphql_directive_application. Carried beside the type and field above rather than instead of them: those are this relation’s own grain, which its chain siblings key by, and this is how the application it points at is named. The cascade on that reference is this relation’s sweep, there being no instant here to mark

directive_name (CHARACTER VARYING, not null)

which directive this application is of, in graphql_directive’s spelling. Two contribute: @reference adds hops and @routine adds its result table as a node. @referenceFor does not, being one participant’s own path rather than the field’s chain, which is why it is a route of its own and not a step of this one

ordinal (INTEGER, not null)

that directive’s own ordinal at this coordinate, which is the join down to the decode relation carrying what the application says. Unique with the coordinate and the directive name, so one application cannot occupy two positions, and a foreign key into graphql_directive_application, so a position cannot be minted for an application nobody wrote

One link of the chain a field’s rows travel, in the order it was written: one row per element of the composed @routine and @reference applications at one field. For example Query.hopped over @routine(name: "films_for_actor") then @reference(path: [{table: "film"}]) draws two links, the routine at position 0 and the table element at position 1.

Primary key: (graph_name, type_name, field_name, position). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name). Foreign key: (graph_name, source_name, source_line, source_column) references graphql_ast_entry (graph_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the type owning the field whose chain this link is part of

field_name (CHARACTER VARYING, not null)

the field whose chain this link is part of; with the two columns above a reference into graphql_field_element, the authored population, a macro-minted field writing no chain of its own

position (INTEGER, not null)

the link’s place in the chain, numbered from zero without a hole. Ranked over the written order rather than copied from any directive’s own numbering, for two reasons that both bite. @routine and @reference each number their applications from zero independently, so neither ordinal can say which of the two was written first; and the entry stratum numbers a path element by its authored index, which skips an element it does not transcribe, where a chain wants its links counted. The order ranked over is the directive’s written position, then the element’s authored index inside it, and a field coordinate being declared once is what makes two positions comparable: every directive of one field is written in one file

source_name (CHARACTER VARYING, not null)

the file the link was written in, the first of the three columns naming its written position; a reference into graphql_ast_entry, which is where a routine application and a path element are one kind of thing. Spelled the way every relation holding a written position spells one, graphql_ast_entry included; an element in this schema is a schema coordinate, which is what the first three columns of this row already carry

source_line (INTEGER, not null)

the link’s source line, 1-based per the graphql-java convention

source_column (INTEGER, not null)

the link’s source column; with the two columns above, the written position the link’s own facts are keyed by. A @routine link points at the FIELD_DIRECTIVE entry and a path element at the VALUE entry, and what each link joins on is those facts rather than anything carried here: this states that the chain has a link here and where to read it, and never what the link does

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran, on graphql_element.touched_at’s terms: swept per graph, and NOT NULL so the sweep is total

One way one written link of a field’s chain could be read: the route it would take, where it would depart and where it would arrive. For example an element naming film_actor_film_id_fkey draws two readings, one departing film_actor and one departing film, and the chain keeps whichever it reaches.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

type_name (CHARACTER VARYING, nullable)

the type_name of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

field_name (CHARACTER VARYING, nullable)

the field_name of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

target_source_name (CHARACTER VARYING, nullable)

the target_source_name of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

target_schema (CHARACTER VARYING, nullable)

the target_schema of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

target_table (CHARACTER VARYING, nullable)

the target_table of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

position (INTEGER, nullable)

the position of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

last_position (INTEGER, nullable)

the last_position of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

via (CHARACTER VARYING, nullable)

the via of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

key_matched_by (CHARACTER VARYING, nullable)

the key_matched_by of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

constraint_source_name (CHARACTER VARYING, nullable)

the constraint_source_name of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

constraint_schema (CHARACTER VARYING, nullable)

the constraint_schema of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

constraint_table (CHARACTER VARYING, nullable)

the constraint_table of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

constraint_name (CHARACTER VARYING, nullable)

the constraint_name of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

fk_on_from (BOOLEAN, nullable)

the fk_on_from of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

from_source_name (CHARACTER VARYING, nullable)

the from_source_name of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

from_schema (CHARACTER VARYING, nullable)

the from_schema of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

from_table (CHARACTER VARYING, nullable)

the from_table of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

to_source_name (CHARACTER VARYING, nullable)

the to_source_name of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

to_schema (CHARACTER VARYING, nullable)

the to_schema of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

to_table (CHARACTER VARYING, nullable)

the to_table of one reading of a chain link, on graphitron_field_table_link’s terms for the column of that name

One reading of one chain link toward one target, with which of the two walks reached it: the tail walk from the target backwards, the head walk from the field’s departure forwards. For example an element whose condition method routes rent_film to rental on a field departing film draws a row the tail reaches and the head does not, which is the chain failing to reach it.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the reading; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, nullable)

the type owning the field whose chain this reading is of

field_name (CHARACTER VARYING, nullable)

the field whose chain this reading is of

target_source_name (CHARACTER VARYING, nullable)

the catalog partition of the target this reading’s chain leads to, the first column of the graphitron_field_table row the walk was seeded from

target_schema (CHARACTER VARYING, nullable)

the target’s SQL schema

target_table (CHARACTER VARYING, nullable)

the target’s SQL name. A field with several targets walks once per target, the departure a chain stands on being the enclosing binding rather than anything the element says

position (INTEGER, nullable)

the link’s place in the chain, carried from graphitron_field_chain_link where the order is stated

via (CHARACTER VARYING, nullable)

which authored arm this reading takes, in graphitron_field_table_link’s vocabulary of five, whose comment argues each

key_matched_by (CHARACTER VARYING, nullable)

which name the author’s key spelling matched, on graphitron_field_table_link’s terms; NULL off the KEY arm

constraint_source_name (CHARACTER VARYING, nullable)

the catalog partition of the referential constraint this reading joins through, the first of four columns naming it

constraint_schema (CHARACTER VARYING, nullable)

the schema of the table the constraint is declared on

constraint_table (CHARACTER VARYING, nullable)

that table’s name, the constraint having no schema of its own

constraint_name (CHARACTER VARYING, nullable)

the constraint’s own name as the catalog spells it; NULL where the arm joins through no constraint

fk_on_from (BOOLEAN, nullable)

whether the departure is the side declaring the constraint; NULL exactly where no constraint answered

from_source_name (CHARACTER VARYING, nullable)

the catalog partition of the table this reading departs from, the first of three columns naming it

from_schema (CHARACTER VARYING, nullable)

the departure’s SQL schema

from_table (CHARACTER VARYING, nullable)

the departure’s SQL name; NULL only where a @routine heads the chain, which departs from nowhere

to_source_name (CHARACTER VARYING, nullable)

the catalog partition of the table this reading arrives at, the first of three columns naming it

to_schema (CHARACTER VARYING, nullable)

the arrival’s SQL schema

to_table (CHARACTER VARYING, nullable)

the arrival’s SQL name. Every arm states its arrival outright, which is what lets a reading be taken without knowing which reading the link before it took

reached_by_tail (BOOLEAN, nullable)

whether the tail walk, from the target backwards, reached this reading. A reading it reaches could end the chain, which says nothing about whether the chain gets there

reached_by_head (BOOLEAN, nullable)

whether the head walk, from the field’s departure forwards, reached this reading. A reading reached by both lies on a chain that runs the whole way; one only the head reaches is where a broken chain got to

One reading of one chain link that joins through a foreign key, toward one target, with which of the two walks reached it. For example an element naming film_actor_film_id_fkey on Actor.films draws a row departing film_actor for film that both walks reach, and one departing film for film_actor that neither does and so is not here.

Primary key: (graph_name, type_name, field_name, target_source_name, target_schema, target_table, position, constraint_source_name, constraint_schema, constraint_table, constraint_name, fk_on_from). Foreign key: (graph_name, type_name, field_name, target_source_name, target_schema, target_table) references graphitron_field_table (graph_name, type_name, field_name, to_source_name, to_schema, to_table). Foreign key: (graph_name, type_name, field_name, position) references graphitron_field_chain_link (graph_name, type_name, field_name, position). Foreign key: (constraint_source_name, constraint_schema, constraint_table, constraint_name) references sql_referential_constraint (source_name, table_schema, table_name, constraint_name). Foreign key: (from_source_name, from_schema, from_table) references sql_table (source_name, table_schema, table_name). Foreign key: (to_source_name, to_schema, to_table) references sql_table (source_name, table_schema, table_name). Check: "VIA" IN('KEY', 'TABLE'). Check: ("KEY_MATCHED_BY" IN('SQL_NAME', 'JOOQ_NAME')) OR ("KEY_MATCHED_BY" IS NULL). Check: ("KEY_MATCHED_BY" IS NOT NULL) = ("VIA" = 'KEY'). Check: "REACHED_BY_TAIL" OR "REACHED_BY_HEAD".

Columns
graph_name (CHARACTER VARYING, not null)

the graph_name of a row of this arm, presented on graphitron_field_chain_link_resolution.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, not null)

the type_name of a row of this arm, presented on graphitron_field_chain_link_resolution.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, not null)

the field_name of a row of this arm, presented on graphitron_field_chain_link_resolution.field_name, whose comment carries what the value means

target_source_name (CHARACTER VARYING, not null)

the target_source_name of a row of this arm, presented on graphitron_field_chain_link_resolution.target_source_name, whose comment carries what the value means

target_schema (CHARACTER VARYING, not null)

the target_schema of a row of this arm, presented on graphitron_field_chain_link_resolution.target_schema, whose comment carries what the value means

target_table (CHARACTER VARYING, not null)

the target_table of a row of this arm, presented on graphitron_field_chain_link_resolution.target_table, whose comment carries what the value means

position (INTEGER, not null)

the position of a row of this arm, presented on graphitron_field_chain_link_resolution.position, whose comment carries what the value means

via (CHARACTER VARYING, not null)

the via of a row of this arm, presented on graphitron_field_chain_link_resolution.via, whose comment carries what the value means

key_matched_by (CHARACTER VARYING, nullable)

the key_matched_by of a row of this arm, presented on graphitron_field_chain_link_resolution.key_matched_by, whose comment carries what the value means

constraint_source_name (CHARACTER VARYING, not null)

the constraint_source_name of a row of this arm, presented on graphitron_field_chain_link_resolution.constraint_source_name, whose comment carries what the value means

constraint_schema (CHARACTER VARYING, not null)

the constraint_schema of a row of this arm, presented on graphitron_field_chain_link_resolution.constraint_schema, whose comment carries what the value means

constraint_table (CHARACTER VARYING, not null)

the constraint_table of a row of this arm, presented on graphitron_field_chain_link_resolution.constraint_table, whose comment carries what the value means

constraint_name (CHARACTER VARYING, not null)

the constraint_name of a row of this arm, presented on graphitron_field_chain_link_resolution.constraint_name, whose comment carries what the value means

fk_on_from (BOOLEAN, not null)

the fk_on_from of a row of this arm, presented on graphitron_field_chain_link_resolution.fk_on_from, whose comment carries what the value means

from_source_name (CHARACTER VARYING, not null)

the from_source_name of a row of this arm, presented on graphitron_field_chain_link_resolution.from_source_name, whose comment carries what the value means

from_schema (CHARACTER VARYING, not null)

the from_schema of a row of this arm, presented on graphitron_field_chain_link_resolution.from_schema, whose comment carries what the value means

from_table (CHARACTER VARYING, not null)

the from_table of a row of this arm, presented on graphitron_field_chain_link_resolution.from_table, whose comment carries what the value means

to_source_name (CHARACTER VARYING, not null)

the to_source_name of a row of this arm, presented on graphitron_field_chain_link_resolution.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, not null)

the to_schema of a row of this arm, presented on graphitron_field_chain_link_resolution.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, not null)

the to_table of a row of this arm, presented on graphitron_field_chain_link_resolution.to_table, whose comment carries what the value means

reached_by_tail (BOOLEAN, not null)

the reached_by_tail of a row of this arm, presented on graphitron_field_chain_link_resolution.reached_by_tail, whose comment carries what the value means

reached_by_head (BOOLEAN, not null)

the reached_by_head of a row of this arm, presented on graphitron_field_chain_link_resolution.reached_by_head, whose comment carries what the value means

touched_at (TIMESTAMP, not null)

the capture instant that last wrote this row, the mark the stage sweeps against: a row the latest capture of its graph did not write again is one the corpus no longer has

One reading of one chain link that joins a table pair through no foreign key, toward one target, with which of the two walks reached it. For example a condition element whose method routes rental to rent_film draws one row departing rental and arriving rent_film, read CONDITION.

Primary key: (graph_name, type_name, field_name, target_source_name, target_schema, target_table, position, from_source_name, from_schema, from_table, to_source_name, to_schema, to_table). Foreign key: (graph_name, type_name, field_name, target_source_name, target_schema, target_table) references graphitron_field_table (graph_name, type_name, field_name, to_source_name, to_schema, to_table). Foreign key: (graph_name, type_name, field_name, position) references graphitron_field_chain_link (graph_name, type_name, field_name, position). Foreign key: (from_source_name, from_schema, from_table) references sql_table (source_name, table_schema, table_name). Foreign key: (to_source_name, to_schema, to_table) references sql_table (source_name, table_schema, table_name). Check: "VIA" IN('NAME_MATCH', 'CONDITION'). Check: "REACHED_BY_TAIL" OR "REACHED_BY_HEAD".

Columns
graph_name (CHARACTER VARYING, not null)

the graph_name of a row of this arm, presented on graphitron_field_chain_link_resolution.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, not null)

the type_name of a row of this arm, presented on graphitron_field_chain_link_resolution.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, not null)

the field_name of a row of this arm, presented on graphitron_field_chain_link_resolution.field_name, whose comment carries what the value means

target_source_name (CHARACTER VARYING, not null)

the target_source_name of a row of this arm, presented on graphitron_field_chain_link_resolution.target_source_name, whose comment carries what the value means

target_schema (CHARACTER VARYING, not null)

the target_schema of a row of this arm, presented on graphitron_field_chain_link_resolution.target_schema, whose comment carries what the value means

target_table (CHARACTER VARYING, not null)

the target_table of a row of this arm, presented on graphitron_field_chain_link_resolution.target_table, whose comment carries what the value means

position (INTEGER, not null)

the position of a row of this arm, presented on graphitron_field_chain_link_resolution.position, whose comment carries what the value means

via (CHARACTER VARYING, not null)

the via of a row of this arm, presented on graphitron_field_chain_link_resolution.via, whose comment carries what the value means

from_source_name (CHARACTER VARYING, not null)

the from_source_name of a row of this arm, presented on graphitron_field_chain_link_resolution.from_source_name, whose comment carries what the value means

from_schema (CHARACTER VARYING, not null)

the from_schema of a row of this arm, presented on graphitron_field_chain_link_resolution.from_schema, whose comment carries what the value means

from_table (CHARACTER VARYING, not null)

the from_table of a row of this arm, presented on graphitron_field_chain_link_resolution.from_table, whose comment carries what the value means

to_source_name (CHARACTER VARYING, not null)

the to_source_name of a row of this arm, presented on graphitron_field_chain_link_resolution.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, not null)

the to_schema of a row of this arm, presented on graphitron_field_chain_link_resolution.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, not null)

the to_table of a row of this arm, presented on graphitron_field_chain_link_resolution.to_table, whose comment carries what the value means

reached_by_tail (BOOLEAN, not null)

the reached_by_tail of a row of this arm, presented on graphitron_field_chain_link_resolution.reached_by_tail, whose comment carries what the value means

reached_by_head (BOOLEAN, not null)

the reached_by_head of a row of this arm, presented on graphitron_field_chain_link_resolution.reached_by_head, whose comment carries what the value means

touched_at (TIMESTAMP, not null)

the capture instant that last wrote this row, the mark the stage sweeps against: a row the latest capture of its graph did not write again is one the corpus no longer has

One reading of one chain link that states where it arrives and not where it departs, toward one target, with which of the two walks reached it. For example a @routine heading Query.hopped draws one row arriving at the function’s result table, read ROUTINE, and departing nowhere.

Primary key: (graph_name, type_name, field_name, target_source_name, target_schema, target_table, position, to_source_name, to_schema, to_table). Foreign key: (graph_name, type_name, field_name, target_source_name, target_schema, target_table) references graphitron_field_table (graph_name, type_name, field_name, to_source_name, to_schema, to_table). Foreign key: (graph_name, type_name, field_name, position) references graphitron_field_chain_link (graph_name, type_name, field_name, position). Foreign key: (to_source_name, to_schema, to_table) references sql_table (source_name, table_schema, table_name). Check: "VIA" IN('ROUTINE', 'CONDITION'). Check: "REACHED_BY_TAIL" OR "REACHED_BY_HEAD".

Columns
graph_name (CHARACTER VARYING, not null)

the graph_name of a row of this arm, presented on graphitron_field_chain_link_resolution.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, not null)

the type_name of a row of this arm, presented on graphitron_field_chain_link_resolution.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, not null)

the field_name of a row of this arm, presented on graphitron_field_chain_link_resolution.field_name, whose comment carries what the value means

target_source_name (CHARACTER VARYING, not null)

the target_source_name of a row of this arm, presented on graphitron_field_chain_link_resolution.target_source_name, whose comment carries what the value means

target_schema (CHARACTER VARYING, not null)

the target_schema of a row of this arm, presented on graphitron_field_chain_link_resolution.target_schema, whose comment carries what the value means

target_table (CHARACTER VARYING, not null)

the target_table of a row of this arm, presented on graphitron_field_chain_link_resolution.target_table, whose comment carries what the value means

position (INTEGER, not null)

the position of a row of this arm, presented on graphitron_field_chain_link_resolution.position, whose comment carries what the value means

via (CHARACTER VARYING, not null)

the via of a row of this arm, presented on graphitron_field_chain_link_resolution.via, whose comment carries what the value means

to_source_name (CHARACTER VARYING, not null)

the to_source_name of a row of this arm, presented on graphitron_field_chain_link_resolution.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, not null)

the to_schema of a row of this arm, presented on graphitron_field_chain_link_resolution.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, not null)

the to_table of a row of this arm, presented on graphitron_field_chain_link_resolution.to_table, whose comment carries what the value means

reached_by_tail (BOOLEAN, not null)

the reached_by_tail of a row of this arm, presented on graphitron_field_chain_link_resolution.reached_by_tail, whose comment carries what the value means

reached_by_head (BOOLEAN, not null)

the reached_by_head of a row of this arm, presented on graphitron_field_chain_link_resolution.reached_by_head, whose comment carries what the value means

touched_at (TIMESTAMP, not null)

the capture instant that last wrote this row, the mark the stage sweeps against: a row the latest capture of its graph did not write again is one the corpus no longer has

One row the chain-link walks compute, in the shape graphitron_field_chain_link_resolution presents: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into the three arm tables under graphitron_field_chain_link_resolution, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.graph_name through the arm table the row’s shape belongs to

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.type_name through the arm table the row’s shape belongs to

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.field_name through the arm table the row’s shape belongs to

target_source_name (CHARACTER VARYING, nullable)

the target_source_name of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.target_source_name through the arm table the row’s shape belongs to

target_schema (CHARACTER VARYING, nullable)

the target_schema of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.target_schema through the arm table the row’s shape belongs to

target_table (CHARACTER VARYING, nullable)

the target_table of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.target_table through the arm table the row’s shape belongs to

position (INTEGER, nullable)

the position of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.position through the arm table the row’s shape belongs to

via (CHARACTER VARYING, nullable)

the via of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.via through the arm table the row’s shape belongs to

key_matched_by (CHARACTER VARYING, nullable)

the key_matched_by of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.key_matched_by through the arm table the row’s shape belongs to

constraint_source_name (CHARACTER VARYING, nullable)

the constraint_source_name of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.constraint_source_name through the arm table the row’s shape belongs to

constraint_schema (CHARACTER VARYING, nullable)

the constraint_schema of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.constraint_schema through the arm table the row’s shape belongs to

constraint_table (CHARACTER VARYING, nullable)

the constraint_table of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.constraint_table through the arm table the row’s shape belongs to

constraint_name (CHARACTER VARYING, nullable)

the constraint_name of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.constraint_name through the arm table the row’s shape belongs to

fk_on_from (BOOLEAN, nullable)

the fk_on_from of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.fk_on_from through the arm table the row’s shape belongs to

from_source_name (CHARACTER VARYING, nullable)

the from_source_name of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.from_source_name through the arm table the row’s shape belongs to

from_schema (CHARACTER VARYING, nullable)

the from_schema of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.from_schema through the arm table the row’s shape belongs to

from_table (CHARACTER VARYING, nullable)

the from_table of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.from_table through the arm table the row’s shape belongs to

to_source_name (CHARACTER VARYING, nullable)

the to_source_name of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.to_source_name through the arm table the row’s shape belongs to

to_schema (CHARACTER VARYING, nullable)

the to_schema of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.to_schema through the arm table the row’s shape belongs to

to_table (CHARACTER VARYING, nullable)

the to_table of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.to_table through the arm table the row’s shape belongs to

reached_by_tail (BOOLEAN, nullable)

the reached_by_tail of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.reached_by_tail through the arm table the row’s shape belongs to

reached_by_head (BOOLEAN, nullable)

the reached_by_head of a row of this rule, which the stage writes into graphitron_field_chain_link_resolution.reached_by_head through the arm table the row’s shape belongs to

graphitron_field_column_scope

Which table the column names written at a field’s site resolve against: one row per site where a name resolves at all, naming the table and which of three disjoint navigation rules answered. For example Film.title resolves against film through its own parent’s binding, and a field carrying @reference(path: [{key: "film_actor_film_id_fkey"}]) resolves against the table that path’s terminal element reaches.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from every rule’s base relation

type_name (CHARACTER VARYING, not null)

the site’s owning type, the field’s parent

field_name (CHARACTER VARYING, not null)

the site’s field name within the owning type

basis (CHARACTER VARYING, not null)

which rule resolved this site: PATH_TERMINAL (an authored @reference path’s terminal element), NAMED_TYPE_TABLE (the field’s named type’s own binding), PARENT_BINDING (the field’s own parent’s binding). A closed vocabulary of three disjoint rules, so it is also which boundary the site fell inside, and the column that lets a consumer tell an override from the parent’s own scope without re-deriving either

table_source_name (CHARACTER VARYING, not null)

the resolved table’s catalog partition, the first column of the sql_table key this row names

table_schema (CHARACTER VARYING, not null)

the resolved table’s SQL schema

table_name (CHARACTER VARYING, not null)

the resolved table’s SQL name. With the two columns above this is sql_table’s full key, so the table’s columns are one join away

graphitron_field_column_scope_rule (view)

One row the field-site column-scope rule computes, in the shape graphitron_field_column_scope stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_field_column_scope, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_field_column_scope.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_field_column_scope.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_field_column_scope.field_name, whose comment carries what the value means

basis (CHARACTER VARYING, nullable)

the basis of a row of this rule, which the stage inserts into graphitron_field_column_scope.basis, whose comment carries what the value means

table_source_name (CHARACTER VARYING, nullable)

the table_source_name of a row of this rule, which the stage inserts into graphitron_field_column_scope.table_source_name, whose comment carries what the value means

table_schema (CHARACTER VARYING, nullable)

the table_schema of a row of this rule, which the stage inserts into graphitron_field_column_scope.table_schema, whose comment carries what the value means

table_name (CHARACTER VARYING, nullable)

the table_name of a row of this rule, which the stage inserts into graphitron_field_column_scope.table_name, whose comment carries what the value means

graphitron_field_condition_context_arg_entry

An ordered context argument of a field-site @condition. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. graphitron_ast_field_condition_context_arg_entry is the replacement, written by the graphitron-ast gatherer from the document the application sits in.

Primary key: (graph_name, type_name, field_name, position). Foreign key: (graph_name, type_name, field_name) references graphitron_field_condition_entry (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

position (INTEGER, not null)

0-based position in the contextArguments list

name (CHARACTER VARYING, not null)

the context argument name as written

graphitron_field_condition_entry

@condition on a field or input field (shared coordinate; the parent kind decides which SDL site this was). Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. graphitron_ast_field_condition_entry is the replacement, written by the graphitron-ast gatherer from the document the application sits in.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

class_name (CHARACTER VARYING, nullable)

ExternalCodeReference.className as written

method (CHARACTER VARYING, nullable)

ExternalCodeReference.method as written

argmapping (CHARACTER VARYING, nullable)

ExternalCodeReference.argMapping as written; the pair child below is its decode, the type_sdl-plus-decode pattern

override (BOOLEAN, nullable)

as written; NULL when omitted (the FALSE default is derivable)

graphitron_field_lookup_key_entry

@lookupKey on an input field: the retired site; the sole consumer is the located migration rejection. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

graphitron_field_minted (view)

One of the two sets graphitron_field is the union of: a field macro expansion states, either adding one where the author wrote none or restating the carrier the directive sits on. For example the edges on a minted QueryFilmsConnection, and the rewritten films whose author wrote it as a plain list.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the minting row

type_name (CHARACTER VARYING, nullable)

the type the minted field sits on

field_name (CHARACTER VARYING, nullable)

the field’s own name

coordinate (CHARACTER VARYING, nullable)

Type.field, on graphitron_field_authored.coordinate’s terms. The one place the element grain and this one part company: a rewritten carrier is an authored element and a minted field, so this coordinate can be one graphitron_element_authored also carries, where no other minted set’s can

ordinal (INTEGER, nullable)

where the expansion put it among the type’s fields; a rewritten carrier keeps the position its author wrote, the expansion restating it unchanged

type_sdl (CHARACTER VARYING, nullable)

the type expression the expansion wrote, wrappers included; for a rewritten carrier this is the whole of what changed

named_type (CHARACTER VARYING, nullable)

the name at the bottom of that expression

non_null (BOOLEAN, nullable)

whether the outermost wrapper is non-null, which a rewritten carrier keeps from its author

is_list (BOOLEAN, nullable)

whether the expression is a list

item_non_null (BOOLEAN, nullable)

whether a list’s items are non-null, and nothing where it is not a list

default_value_sdl (CHARACTER VARYING, nullable)

always nothing, and stated here rather than carried: no macro writes a default onto an output field and every field minted or rewritten today is one, so the nullness is a property of this population rather than a column any arm declined to hold

description (CHARACTER VARYING, nullable)

the docstring the macro wrote; identical across the carriers that state one shared machinery field, which is what lets the distinct collapse them

rewrite (BOOLEAN, nullable)

whether this row restates a field the author wrote rather than adding one. The rewritten carrier is the only arm that does, and it is what tells the element arm which coordinates are already anchored by the transcription

graphitron_field_minted_candidate (view)

What the arms of the field mint state before any disagreement between them is resolved. For example two carriers disagreeing about one connection’s nodes field are two rows here and none in graphitron_field_minted.

Columns
graph_name (CHARACTER VARYING, nullable)

the same fact as graphitron_field_minted.graph_name, before the conflict and stand-down filters have withheld anything

type_name (CHARACTER VARYING, nullable)

the same fact as graphitron_field_minted.type_name, before the conflict and stand-down filters have withheld anything

field_name (CHARACTER VARYING, nullable)

the same fact as graphitron_field_minted.field_name, before the conflict and stand-down filters have withheld anything

coordinate (CHARACTER VARYING, nullable)

the same fact as graphitron_field_minted.coordinate, before the conflict and stand-down filters have withheld anything

ordinal (INTEGER, nullable)

the same fact as graphitron_field_minted.ordinal, before the conflict and stand-down filters have withheld anything

type_sdl (CHARACTER VARYING, nullable)

the same fact as graphitron_field_minted.type_sdl, before the conflict and stand-down filters have withheld anything

named_type (CHARACTER VARYING, nullable)

the same fact as graphitron_field_minted.named_type, before the conflict and stand-down filters have withheld anything

non_null (BOOLEAN, nullable)

the same fact as graphitron_field_minted.non_null, before the conflict and stand-down filters have withheld anything

is_list (BOOLEAN, nullable)

the same fact as graphitron_field_minted.is_list, before the conflict and stand-down filters have withheld anything

item_non_null (BOOLEAN, nullable)

the same fact as graphitron_field_minted.item_non_null, before the conflict and stand-down filters have withheld anything

default_value_sdl (CHARACTER VARYING, nullable)

the same fact as graphitron_field_minted.default_value_sdl, before the conflict and stand-down filters have withheld anything

description (CHARACTER VARYING, nullable)

the same fact as graphitron_field_minted.description, before the conflict and stand-down filters have withheld anything

rewrite (BOOLEAN, nullable)

the same fact as graphitron_field_minted.rewrite, before the conflict and stand-down filters have withheld anything

graphitron_field_navigation

Which type a field’s own generated SQL navigates as: the type whose binding, whose members and whose columns a rule at this coordinate should read, as against the type the field’s signature happens to name. The two differ wherever a wrapper stands between the field and what it delivers, and a rule that reads the signature at such a coordinate reads the wrapper’s facts, which are none. Two rungs: the connection’s element where the field’s named type is a connection, and the named type itself otherwise. Total over graphitron_field, minted machinery fields included, so a consumer joins this rather than left-joining it. Stored rather than stated as a view because a reader joins on the answer: a view is seekable on the coordinate it is keyed by and not on a name it projects, so as a column here the navigated type is a value an index leads with. This relation is the correction of a resolution that had five spellings, all of which read the same way and all of which were wrong at the same half: a connection navigates as its element when the generator built the connection, and as the wrapper when the author wrote it, the second being a silence rather than a rule. Every site that needs a field’s navigated type reads this, and the rule to hold it to is not a count of those sites but that the next spelling is the one nobody has written yet.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphitron_field (graph_name, type_name, field_name). Check: "BASIS" IN('CONNECTION_ELEMENT', 'NAMED_TYPE').

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the type owning the field

field_name (CHARACTER VARYING, not null)

the field whose navigation this row states; with the two columns above the whole key, one row per field of the graph

basis (CHARACTER VARYING, not null)

which rung answered: CONNECTION_ELEMENT where the field’s named type is structurally a connection and this row names what it paginates, NAMED_TYPE where the field returns what it says it returns. A third rung took the expression the author wrote wherever a macro had rewritten it; it was retired once measurement showed every row it answered is the row these two answer, the expansion’s edges.node being the element the authored expression named.

navigated_type_name (CHARACTER VARYING, not null)

the type name the field navigates as, wrappers already stripped. A name and never a binding, so a consumer joins graphitron_resolved_type_binding, intent_poly_member or graphql_type on it according to what it actually needs to know. Not null on any row, the lowest rung being the field’s own named type, so a reader joins this relation rather than left-joining it

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the coordinates a rewriting moved off; a field the author removed takes its row with it through the cascade above, so the two together are what let a second reading of one store land on the first’s rows rather than meeting them on the key

graphitron_field_node_id_entry

@nodeId on a field or input field. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. graphitron_ast_field_node_id_entry is the replacement, written by the graphitron-ast gatherer from the document the application sits in.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

node_type_ref (CHARACTER VARYING, nullable)

typeName as written; author-spelled type reference, no FK, inference when NULL is a derivation

graphitron_field_reference_entry

@reference on a field or input field: one row per application, because an application is a fact of its own. An empty path means FK auto-discovery between the endpoints, and the rule that every application in a multi-application chain must carry an element is per-application; both are invisible in a flat concatenated chain. The effective chain the consumers read is the steps ordered by (ordinal, position), and the written-order interleaving with @routine applications on the same field is an ORDER BY over the two relations' source positions. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, ordinal). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

ordinal (INTEGER, not null)

repeatable; document order

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

graphitron_field_reference_step_entry

An ordered path element of one @reference application; the step’s ExternalCodeReference condition flattens in place. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, ordinal, position). Foreign key: (graph_name, type_name, field_name, ordinal) references graphitron_field_reference_entry (graph_name, type_name, field_name, ordinal).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

ordinal (INTEGER, not null)

the owning @reference application’s ordinal

position (INTEGER, not null)

0-based within the application’s path

table_ref (CHARACTER VARYING, nullable)

ReferenceElement.table as written (may carry a schema qualifier); it resolves through findTable, the same route the argument-site sibling takes

table_ref_namespace_part (CHARACTER VARYING, nullable)

left of table_ref’s first period, NULL when no period appeared and the empty string when one appeared with nothing before it; for a table name this namespace is the SQL schema in every dialect jOOQ models. Written by capture, because splitting on a period is a decode and decodes happen there

table_ref_name_part (CHARACTER VARYING, nullable)

right of table_ref’s first period, or the whole value when none; the empty string when a period was written with nothing after it, which joins nothing and is meant to

key_ref (CHARACTER VARYING, nullable)

ReferenceElement.key as written (may carry a schema qualifier)

key_ref_namespace_part (CHARACTER VARYING, nullable)

left of key_ref’s first period, NULL when no period appeared and the empty string when one appeared with nothing before it. This qualifier does not name the constraint’s own schema, because a constraint has none: it is scoped to its table, which is why sql_constraint takes its schema through the table. It names which schema’s table holds the constraint, disambiguating a constraint name that occurs in more than one, and the resolver reads it that way. Which namespace that is is dialect-dependent (the schema namespace in Oracle, the table namespace in PostgreSQL), which is why the column is not called a schema part

key_ref_name_part (CHARACTER VARYING, nullable)

right of key_ref’s first period, or the whole value when none; joins sql_constraint.constraint_name narrowed by the source table the walk is standing on, not by this row alone

class_name (CHARACTER VARYING, nullable)

the fully-qualified Java class name as written

method (CHARACTER VARYING, nullable)

the Java method name as written

argmapping (CHARACTER VARYING, nullable)

the argMapping string as written; the pair child is its decode

table_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

table_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

key_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint.table_schema_upper, the schema of the table holding the constraint. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

key_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s constraint_name_upper and jooq_name_upper, in that precedence. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_field_reference_step_hop (view)

One @reference path element’s local resolution: every table-to-table hop the element could express, before anything decides which table the chain has actually arrived at. For example an element naming the foreign key film_actor declares on film draws both orientations of that key, and an element naming a table draws every foreign key connecting some table to it.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from graphitron_field_reference_step_entry

type_name (CHARACTER VARYING, nullable)

the type owning the field the @reference is applied to

field_name (CHARACTER VARYING, nullable)

the field the @reference is applied to

ordinal (INTEGER, nullable)

the owning @reference application’s ordinal, since the directive is repeatable

position (INTEGER, nullable)

the element’s 0-based position within its application’s path

via (CHARACTER VARYING, nullable)

which arm resolved the element, in a closed vocabulary of four: KEY where it named a constraint, TABLE where it named a table and a foreign key connects the two, NAME_MATCH where it named a table and the departure is a function result, whose hop is keyed by column name because it declares no constraints, CONDITION where it named neither and the route came off the condition method’s signature. KEY, TABLE and CONDITION are the author’s three spellings; NAME_MATCH is the second reading of the table spelling rather than a fourth thing to write. The element’s own written form is one join back to graphitron_field_reference_step_entry; this column is the resolution’s reading of it

key_matched_by (CHARACTER VARYING, nullable)

for a KEY hop, which namespace answered: SQL_NAME (the SQL constraint name) or JOOQ_NAME (the generated Keys constant). NULL on a TABLE, NAME_MATCH or CONDITION hop, none of which names a constraint. Makes the resolver’s namespace precedence visible data instead of a hidden pick, as the column-match claim’s own tier column does

from_source_name (CHARACTER VARYING, nullable)

the departing table’s catalog partition, first column of its sql_table key

from_schema (CHARACTER VARYING, nullable)

the departing table’s SQL schema

from_table (CHARACTER VARYING, nullable)

the departing table’s SQL name; a candidate departure, not yet a fact about the chain. On a NAME_MATCH hop the candidacy is wider than on the other arms, being every function result in the graph’s sources that exposes the arrival’s key columns rather than the endpoints of one named constraint, which costs nothing until a chain says where it actually stands

to_source_name (CHARACTER VARYING, nullable)

the arriving table’s catalog partition, first column of its sql_table key

to_schema (CHARACTER VARYING, nullable)

the arriving table’s SQL schema

to_table (CHARACTER VARYING, nullable)

the arriving table’s SQL name

constraint_name (CHARACTER VARYING, nullable)

the foreign key the hop joins on, named or discovered. Its own sql_referential_constraint key is this name under whichever endpoint declares it, which fk_on_from says. NULL on a NAME_MATCH hop, which joins on no foreign key, and on a CONDITION hop, which joins on an authored predicate instead. The constraint a name-match hop does key by is the arriving table’s primary key, and that is left to the join rather than carried: sql_primary_key is keyed by the table, so the arriving triple this row already carries reaches it directly, and repeating it here would be the denormalisation the referenced-side discipline declines

fk_on_from (BOOLEAN, nullable)

TRUE when the departing table declares the foreign key, FALSE when the arriving one does; the hop’s direction, and what completes the constraint’s key from the two endpoint triples. NULL on a NAME_MATCH hop, where there is no foreign key to sit on either side and the direction is fixed by the arms themselves, a function result being always the departure, and on a CONDITION hop, whose direction is the method’s parameter order rather than a key’s orientation

graphitron_field_reference_step_hop_keyed

One candidate foreign-key route one field-site @reference path element could take, in one orientation: the hop a key element named, or the one a table element’s spelling discovered, before anything decides which table the chain has actually arrived at. For example an element naming the foreign key film_actor declares on film draws one row departing film_actor and arriving film with fk_on_from true, and a second departing film and arriving film_actor with it false.

Primary key: (graph_name, type_name, field_name, ordinal, position, from_source_name, from_schema, from_table, to_source_name, to_schema, to_table, constraint_name, fk_on_from). Foreign key: (graph_name) references store_graph (graph_name). Check: "VIA" IN('KEY', 'TABLE'). Check: ("KEY_MATCHED_BY" IN('SQL_NAME', 'JOOQ_NAME')) OR ("KEY_MATCHED_BY" IS NULL). Check: ("KEY_MATCHED_BY" IS NOT NULL) = ("VIA" = 'KEY').

Columns
graph_name (CHARACTER VARYING, not null)

the graph_name of a row of this arm, presented on graphitron_field_reference_step_hop.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, not null)

the type_name of a row of this arm, presented on graphitron_field_reference_step_hop.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, not null)

the field_name of a row of this arm, presented on graphitron_field_reference_step_hop.field_name, whose comment carries what the value means

ordinal (INTEGER, not null)

the ordinal of a row of this arm, presented on graphitron_field_reference_step_hop.ordinal, whose comment carries what the value means

position (INTEGER, not null)

the position of a row of this arm, presented on graphitron_field_reference_step_hop.position, whose comment carries what the value means

via (CHARACTER VARYING, not null)

the via of a row of this arm, presented on graphitron_field_reference_step_hop.via, whose comment carries what the value means

key_matched_by (CHARACTER VARYING, nullable)

for a KEY hop, which namespace answered: SQL_NAME (the SQL constraint name) or JOOQ_NAME (the generated Keys constant). NULL on a TABLE hop, which writes no name to match, which is inapplicable rather than omitted and is what the CHECK beside it states. Payload and never identity, which is why the two arms share one key shape and are one relation. Makes the resolver’s namespace precedence visible data instead of a hidden pick, as the column-match claim’s own tier column does

from_source_name (CHARACTER VARYING, not null)

the from_source_name of a row of this arm, presented on graphitron_field_reference_step_hop.from_source_name, whose comment carries what the value means

from_schema (CHARACTER VARYING, not null)

the from_schema of a row of this arm, presented on graphitron_field_reference_step_hop.from_schema, whose comment carries what the value means

from_table (CHARACTER VARYING, not null)

the from_table of a row of this arm, presented on graphitron_field_reference_step_hop.from_table, whose comment carries what the value means

to_source_name (CHARACTER VARYING, not null)

the to_source_name of a row of this arm, presented on graphitron_field_reference_step_hop.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, not null)

the to_schema of a row of this arm, presented on graphitron_field_reference_step_hop.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, not null)

the to_table of a row of this arm, presented on graphitron_field_reference_step_hop.to_table, whose comment carries what the value means

constraint_name (CHARACTER VARYING, not null)

the foreign key the hop joins on, named or discovered; identity here rather than payload, both orientations of every constraint connecting one table pair being separate rows that nothing else tells apart. Its own sql_referential_constraint key is this name under whichever endpoint declares it, which fk_on_from says

fk_on_from (BOOLEAN, not null)

TRUE when the departing table declares the foreign key, FALSE when the arriving one does; the hop’s direction, and what completes the constraint’s key from the two endpoint triples. Identity beside constraint_name for the same reason: a key is a hop in either direction and the two are different rows

graphitron_field_reference_step_hop_keyless

One candidate table pair one field-site @reference path element joins without a foreign key: the hop a table element’s spelling reaches from a function result by column-name match, or the route a condition element’s method signature declares. For example an element naming film on a field whose enclosing type is bound to the table-valued function film_in_stock draws one row departing film_in_stock and arriving film, reading NAME_MATCH.

Primary key: (graph_name, type_name, field_name, ordinal, position, from_source_name, from_schema, from_table, to_source_name, to_schema, to_table). Foreign key: (graph_name) references store_graph (graph_name). Check: "VIA" IN('NAME_MATCH', 'CONDITION').

Columns
graph_name (CHARACTER VARYING, not null)

the graph_name of a row of this arm, presented on graphitron_field_reference_step_hop.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, not null)

the type_name of a row of this arm, presented on graphitron_field_reference_step_hop.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, not null)

the field_name of a row of this arm, presented on graphitron_field_reference_step_hop.field_name, whose comment carries what the value means

ordinal (INTEGER, not null)

the ordinal of a row of this arm, presented on graphitron_field_reference_step_hop.ordinal, whose comment carries what the value means

position (INTEGER, not null)

the position of a row of this arm, presented on graphitron_field_reference_step_hop.position, whose comment carries what the value means

via (CHARACTER VARYING, not null)

the via of a row of this arm, presented on graphitron_field_reference_step_hop.via, whose comment carries what the value means

from_source_name (CHARACTER VARYING, not null)

the from_source_name of a row of this arm, presented on graphitron_field_reference_step_hop.from_source_name, whose comment carries what the value means

from_schema (CHARACTER VARYING, not null)

the from_schema of a row of this arm, presented on graphitron_field_reference_step_hop.from_schema, whose comment carries what the value means

from_table (CHARACTER VARYING, not null)

the from_table of a row of this arm, presented on graphitron_field_reference_step_hop.from_table, whose comment carries what the value means

to_source_name (CHARACTER VARYING, not null)

the to_source_name of a row of this arm, presented on graphitron_field_reference_step_hop.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, not null)

the to_schema of a row of this arm, presented on graphitron_field_reference_step_hop.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, not null)

the to_table of a row of this arm, presented on graphitron_field_reference_step_hop.to_table, whose comment carries what the value means

graphitron_field_reference_step_target (view)

Where each element of a field’s @reference path actually lands: the hops walked from the enclosing type’s table binding, one element at a time, so a row exists only for an element the chain can be shown to reach. For example a path of two key elements draws one row at each position, the second departing where the first arrived, and an element that resolves to nothing ends the chain and draws none.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the hop view

type_name (CHARACTER VARYING, nullable)

the type owning the field the @reference is applied to; also the type whose binding started the chain

field_name (CHARACTER VARYING, nullable)

the field the @reference is applied to

ordinal (INTEGER, nullable)

the owning @reference application’s ordinal, since the directive is repeatable

position (INTEGER, nullable)

the element’s 0-based position within its application’s path; positions are contiguous from 0 up to wherever the chain stopped

via (CHARACTER VARYING, nullable)

which arm resolved the element, as on the hop view: KEY, TABLE, NAME_MATCH or CONDITION

key_matched_by (CHARACTER VARYING, nullable)

for a KEY element, the namespace that answered; NULL on a TABLE, NAME_MATCH or CONDITION element. As on the hop view

from_source_name (CHARACTER VARYING, nullable)

the departing table’s catalog partition; the type’s bound table at position 0, the previous element’s arrival after that

from_schema (CHARACTER VARYING, nullable)

the departing table’s SQL schema

from_table (CHARACTER VARYING, nullable)

the departing table’s SQL name

to_source_name (CHARACTER VARYING, nullable)

the arriving table’s catalog partition, first column of its sql_table key

to_schema (CHARACTER VARYING, nullable)

the arriving table’s SQL schema

to_table (CHARACTER VARYING, nullable)

the arriving table’s SQL name. At the path’s last position this is the table a @field(name:) on the same field resolves its column against

constraint_name (CHARACTER VARYING, nullable)

the foreign key this element joins on, named or discovered; NULL on a NAME_MATCH or CONDITION element, as on the hop view

fk_on_from (BOOLEAN, nullable)

TRUE when the departing table declares the foreign key; the element’s direction. NULL on a NAME_MATCH or CONDITION element, as on the hop view

targets (INTEGER, nullable)

how many distinct tables this element reaches, this row’s arrival being one of them; 1 where the destination is certain. Separate from candidates because the two arities answer different questions and genuinely differ: a table element with three foreign keys connecting the two tables reaches one table by three routes, so a reader that only needs the destination can trust it while a reader that has to render the join cannot

candidates (INTEGER, nullable)

how many rows this element resolved to, counting routes and not just destinations; 1 is the walk’s requirement for an expressible hop, and a larger number is what its own "which foreign key did you mean" rejection counts

graphitron_field_reference_step_target_keyed

One foreign-key route one field-site @reference path element reaches, in one orientation: the element the chain walked to, with the key it joins through. For example Actor.films over @reference(path: [{key: "film_actor_actor_id_fkey"}, {key: "film_actor_film_id_fkey"}]) draws one row per position, each departing where the one before it arrived.

Primary key: (graph_name, type_name, field_name, ordinal, position, from_source_name, from_schema, from_table, to_source_name, to_schema, to_table, constraint_name, fk_on_from). Foreign key: (graph_name) references store_graph (graph_name). Check: "VIA" IN('KEY', 'TABLE'). Check: ("KEY_MATCHED_BY" IN('SQL_NAME', 'JOOQ_NAME')) OR ("KEY_MATCHED_BY" IS NULL). Check: ("KEY_MATCHED_BY" IS NOT NULL) = ("VIA" = 'KEY').

Columns
graph_name (CHARACTER VARYING, not null)

the graph_name of a row of this arm, presented on graphitron_field_reference_step_target.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, not null)

the type_name of a row of this arm, presented on graphitron_field_reference_step_target.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, not null)

the field_name of a row of this arm, presented on graphitron_field_reference_step_target.field_name, whose comment carries what the value means

ordinal (INTEGER, not null)

the ordinal of a row of this arm, presented on graphitron_field_reference_step_target.ordinal, whose comment carries what the value means

position (INTEGER, not null)

the position of a row of this arm, presented on graphitron_field_reference_step_target.position, whose comment carries what the value means

via (CHARACTER VARYING, not null)

the via of a row of this arm, presented on graphitron_field_reference_step_target.via, whose comment carries what the value means

key_matched_by (CHARACTER VARYING, nullable)

the key_matched_by of a row of this arm, presented on graphitron_field_reference_step_target.key_matched_by, whose comment carries what the value means

from_source_name (CHARACTER VARYING, not null)

the from_source_name of a row of this arm, presented on graphitron_field_reference_step_target.from_source_name, whose comment carries what the value means

from_schema (CHARACTER VARYING, not null)

the from_schema of a row of this arm, presented on graphitron_field_reference_step_target.from_schema, whose comment carries what the value means

from_table (CHARACTER VARYING, not null)

the from_table of a row of this arm, presented on graphitron_field_reference_step_target.from_table, whose comment carries what the value means

to_source_name (CHARACTER VARYING, not null)

the to_source_name of a row of this arm, presented on graphitron_field_reference_step_target.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, not null)

the to_schema of a row of this arm, presented on graphitron_field_reference_step_target.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, not null)

the to_table of a row of this arm, presented on graphitron_field_reference_step_target.to_table, whose comment carries what the value means

constraint_name (CHARACTER VARYING, not null)

the constraint_name of a row of this arm, presented on graphitron_field_reference_step_target.constraint_name, whose comment carries what the value means

fk_on_from (BOOLEAN, not null)

the fk_on_from of a row of this arm, presented on graphitron_field_reference_step_target.fk_on_from, whose comment carries what the value means

targets (INTEGER, not null)

the targets of a row of this arm, presented on graphitron_field_reference_step_target.targets, whose comment carries what the value means

candidates (INTEGER, not null)

the candidates of a row of this arm, presented on graphitron_field_reference_step_target.candidates, whose comment carries what the value means

graphitron_field_reference_step_target_keyless

One table pair one field-site @reference path element reaches without a foreign key: the element the chain walked to, by column-name match from a function result or by the route a condition method declares. For example a chain-ending element carrying only a @condition draws one row arriving at the table that method’s second parameter names.

Primary key: (graph_name, type_name, field_name, ordinal, position, from_source_name, from_schema, from_table, to_source_name, to_schema, to_table). Foreign key: (graph_name) references store_graph (graph_name). Check: "VIA" IN('NAME_MATCH', 'CONDITION').

Columns
graph_name (CHARACTER VARYING, not null)

the graph_name of a row of this arm, presented on graphitron_field_reference_step_target.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, not null)

the type_name of a row of this arm, presented on graphitron_field_reference_step_target.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, not null)

the field_name of a row of this arm, presented on graphitron_field_reference_step_target.field_name, whose comment carries what the value means

ordinal (INTEGER, not null)

the ordinal of a row of this arm, presented on graphitron_field_reference_step_target.ordinal, whose comment carries what the value means

position (INTEGER, not null)

the position of a row of this arm, presented on graphitron_field_reference_step_target.position, whose comment carries what the value means

via (CHARACTER VARYING, not null)

the via of a row of this arm, presented on graphitron_field_reference_step_target.via, whose comment carries what the value means

from_source_name (CHARACTER VARYING, not null)

the from_source_name of a row of this arm, presented on graphitron_field_reference_step_target.from_source_name, whose comment carries what the value means

from_schema (CHARACTER VARYING, not null)

the from_schema of a row of this arm, presented on graphitron_field_reference_step_target.from_schema, whose comment carries what the value means

from_table (CHARACTER VARYING, not null)

the from_table of a row of this arm, presented on graphitron_field_reference_step_target.from_table, whose comment carries what the value means

to_source_name (CHARACTER VARYING, not null)

the to_source_name of a row of this arm, presented on graphitron_field_reference_step_target.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, not null)

the to_schema of a row of this arm, presented on graphitron_field_reference_step_target.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, not null)

the to_table of a row of this arm, presented on graphitron_field_reference_step_target.to_table, whose comment carries what the value means

targets (INTEGER, not null)

the targets of a row of this arm, presented on graphitron_field_reference_step_target.targets, whose comment carries what the value means

candidates (INTEGER, not null)

the candidates of a row of this arm, presented on graphitron_field_reference_step_target.candidates, whose comment carries what the value means

graphitron_field_routine

The catalog table one @routine application resolved to, at the chain it stands in: one row per application of one field’s chain toward one target. For example Mutation.rentFilm over @routine(name: "rent_film") draws a row naming the rent_film function result, which is what the chain leaving that field departs from.

Primary key: (graph_name, type_name, field_name, to_source_name, to_schema, to_table, ordinal). Foreign key: (graph_name, type_name, field_name, to_source_name, to_schema, to_table) references graphitron_field_table (graph_name, type_name, field_name, to_source_name, to_schema, to_table). Foreign key: (graph_name, type_name, field_name, ordinal) references graphitron_routine_entry (graph_name, type_name, field_name, ordinal). Foreign key: (result_source_name, result_schema, result_table) references sql_table (source_name, table_schema, table_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the type owning the field the application was written on

field_name (CHARACTER VARYING, not null)

the field the application was written on

to_source_name (CHARACTER VARYING, not null)

the target table’s catalog partition, carried from graphitron_field_table; the first of the three columns naming which of a field’s chains this application stands in

to_schema (CHARACTER VARYING, not null)

the target table’s SQL schema, carried from graphitron_field_table

to_table (CHARACTER VARYING, not null)

the target table’s SQL name, carried from graphitron_field_table. A field returning a multi-table interface has a chain per participant, so one application draws a row per participant and each is that participant’s own chain, which is why the target is in the key rather than beside it

ordinal (INTEGER, not null)

the application’s position in document order, carried from graphitron_routine_entry, and what tells two applications on one field apart. @routine is repeatable and composes with @reference into one chain in written order, so a field can carry several and each resolves on its own terms; the ordinal is the chain’s order and not a count, the reference applications being numbered in the same sequence

result_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the routine’s result is, the first of the three columns naming it. Carried rather than derived, on graphitron_tabletype’s terms: the reference is a foreign key the engine checks and cascades, so a recrawled source takes the resolutions that named it

result_schema (CHARACTER VARYING, not null)

the result table’s schema as the catalog spells it, which is the catalog’s spelling and not the author’s: the match folds case on both sides and neither authored spelling survives into the row

result_table (CHARACTER VARYING, not null)

the result table’s own name as the catalog spells it; with the two columns above, a foreign key into sql_table. A routine result is a catalog table of type FUNCTION, which is the whole of what makes this resolvable and is why the departure of a chain leaving a field with no table of its own can be named at all

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran, on graphql_element.touched_at’s terms: swept per graph, and NOT NULL so the sweep is total. An application this reading no longer resolves leaves and the rest stay

graphitron_field_scope_table

Which table a field’s own generated SQL binds against: the table the field selects from, the table a predicate built at this coordinate correlates on, and the table a @nodeId or @reference path written here departs from, one row per table where several answer. For example Mutation.deleteFilm over @mutation(typeName: DELETE, table: "film") draws one row naming film, and a field returning a multi-table container draws one row per branch table it is rooted in.

Primary key: (graph_name, type_name, field_name, table_source_name, table_schema, table_name). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from graphql_field on the upper rung and the participant arm and from graphitron_mutation_entry on the two mutation rungs

type_name (CHARACTER VARYING, not null)

the type owning the field

field_name (CHARACTER VARYING, not null)

the field whose scope this row states; with the two columns above and the table below, the grain

basis (CHARACTER VARYING, not null)

which rule answered, in a closed vocabulary of four: NAMED_TYPE_TABLE from the field’s named type’s own binding, PAYLOAD_TABLE from the single data channel of a DML write’s carrier payload where the payload itself binds nothing, MUTATION_TABLE from the @mutation(table:) spelling where neither of those answers, PARTICIPANT_TABLE from one branch of a named type that is a polymorphic container binding no table of its own. The first three are ranked rungs and the fourth is disjoint from all of them; which of them a row carries is therefore not only provenance but the fork a consumer takes, PARTICIPANT_TABLE being exactly where the coordinate is several statements rather than one. What lets a test pin which rule fired rather than only that a table came out; a reader wanting one of them filters on it and owns having chosen

table_source_name (CHARACTER VARYING, not null)

the scope table’s catalog partition, the first column of the sql_table key this row names

table_schema (CHARACTER VARYING, not null)

the scope table’s SQL schema

table_name (CHARACTER VARYING, not null)

the scope table’s SQL name; with the two columns above this is sql_table’s full key, so the table’s own columns and constraints are one join away

graphitron_field_scope_table_rule (view)

One row the field-site scope rule computes, in the shape graphitron_field_scope_table stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_field_scope_table, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_field_scope_table.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_field_scope_table.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_field_scope_table.field_name, whose comment carries what the value means

basis (CHARACTER VARYING, nullable)

the basis of a row of this rule, which the stage inserts into graphitron_field_scope_table.basis, whose comment carries what the value means

table_source_name (CHARACTER VARYING, nullable)

the table_source_name of a row of this rule, which the stage inserts into graphitron_field_scope_table.table_source_name, whose comment carries what the value means

table_schema (CHARACTER VARYING, nullable)

the table_schema of a row of this rule, which the stage inserts into graphitron_field_scope_table.table_schema, whose comment carries what the value means

table_name (CHARACTER VARYING, nullable)

the table_name of a row of this rule, which the stage inserts into graphitron_field_scope_table.table_name, whose comment carries what the value means

graphitron_field_table

A table a field’s rows come from, paired with the table the field departs from: one row per target table of one field. For example Actor.films draws a row departing from actor and arriving at film, and a field returning a multi-table interface draws one row per participant, each arriving at that participant’s own table.

Primary key: (graph_name, type_name, field_name, to_source_name, to_schema, to_table). Foreign key: (graph_name, type_name, field_name) references graphitron_field (graph_name, type_name, field_name). Foreign key: (from_source_name, from_schema, from_table) references sql_table (source_name, table_schema, table_name). Foreign key: (to_source_name, to_schema, to_table) references sql_table (source_name, table_schema, table_name). Check: "TARGET_BASIS" IN('NAMED_TYPE_TABLE', 'PARTICIPANT_TABLE', 'ROUTINE_RESULT'). Check: ("FROM_SOURCE_NAME" IS NULL) = ("FROM_SCHEMA" IS NULL). Check: ("FROM_SOURCE_NAME" IS NULL) = ("FROM_TABLE" IS NULL).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the type owning the field

field_name (CHARACTER VARYING, not null)

the field whose endpoints this row states, over the population the generator emits rather than the one the author wrote: a field a connection macro minted has a target like any other and appears here, which is why the key points at graphitron_field and not at the transcription’s own anchor. graphitron_field_navigation spans the same two populations and is where this one gets them

from_source_name (CHARACTER VARYING, nullable)

the catalog partition of the table the field departs from, the first column of the sql_table key this row names. Functionally determined by the graph rather than independent of it: a capture reads exactly one jOOQ package, so within a graph the schema and the name already identify a table, which is why @table(name:) can spell one in two parts and needs no third. It is carried all the same because the engine cannot derive it. sql_table is source-keyed and shared between graphs, so without this column the reference here could not be a foreign key and a recrawled source could not take the rows naming it along with it. The same holds of to_source_name beside it

from_schema (CHARACTER VARYING, nullable)

the departure table’s SQL schema

from_table (CHARACTER VARYING, nullable)

the departure table’s SQL name. Null at a root field, together with the two columns beside it, and that nullness is the fact rather than a gap: a field on Query or Mutation has no enclosing row to depart from, so its statement starts at the target. Null is therefore "this field is the start of its own path", which is also what makes a leading @routine legal only at a root

to_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the field’s rows come from; see from_source_name for why a column the graph already determines is stored

to_schema (CHARACTER VARYING, not null)

the target table’s SQL schema

to_table (CHARACTER VARYING, not null)

the target table’s SQL name; with the two columns above this is sql_table’s full key, so the target’s columns and constraints are one join away

target_basis (CHARACTER VARYING, not null)

which rule named this target, in a closed vocabulary of three. NAMED_TYPE_TABLE: the field’s navigated type binds a table, the ordinary case, and the one a connection field reaches through the element it paginates rather than through its edge wrapper. PARTICIPANT_TABLE: the navigated type is a polymorphic container binding no table of its own, so each table-bound participant is a target and the field has several. ROUTINE_RESULT: the field’s chain ends on a @routine and the result table binds the return, which is why such a return needs no @table of its own. Provenance and fork at once, PARTICIPANT_TABLE being exactly where a reader holding one row holds one branch of several. Two rules that look like they belong here do not, and the boundary is what this relation is about rather than a gap in it: a DML mutation returning a carrier payload, and a @mutation(table:) on a return that names no table, each say where the mutation writes and not where the field’s rows come from. The carrier’s rows are fetched by its own data field, which has a coordinate and a row of its own here, and a delete returning a scalar has no rows at all. Both exist to give a mutation’s arguments a table to bind against, which is the argument scope’s question and answered where that is stated

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran, on graphql_element.touched_at’s terms: swept per graph, and NOT NULL so the sweep is total. A target this reading no longer names leaves, and the links keyed into it leave with it; what does not happen is the whole partition emptying first, which is what the column is for

Where one link of a field’s chain departs and where it arrives, toward one of the field’s targets: one row per written link per target, with the constraint it joins through where it joins through one. For example Actor.films over @reference(path: [{key: "film_actor_actor_id_fkey"}, {key: "film_actor_film_id_fkey"}]) draws two rows toward the film target, actor to film_actor and then film_actor to film.

Primary key: (graph_name, type_name, field_name, target_source_name, target_schema, target_table, position). Foreign key: (graph_name, type_name, field_name, target_source_name, target_schema, target_table) references graphitron_field_table (graph_name, type_name, field_name, to_source_name, to_schema, to_table). Foreign key: (graph_name, type_name, field_name, position) references graphitron_field_chain_link (graph_name, type_name, field_name, position). Foreign key: (constraint_source_name, constraint_schema, constraint_table, constraint_name) references sql_referential_constraint (source_name, table_schema, table_name, constraint_name). Foreign key: (from_source_name, from_schema, from_table) references sql_table (source_name, table_schema, table_name). Foreign key: (to_source_name, to_schema, to_table) references sql_table (source_name, table_schema, table_name). Check: "VIA" IN('ROUTINE', 'KEY', 'TABLE', 'NAME_MATCH', 'CONDITION'). Check: ("CONSTRAINT_NAME" IS NULL) = ("FK_ON_FROM" IS NULL). Check: ("KEY_MATCHED_BY" IS NULL) OR ("VIA" = 'KEY'). Check: ("KEY_MATCHED_BY" IN('SQL_NAME', 'JOOQ_NAME')) OR ("KEY_MATCHED_BY" IS NULL). Check: ("FROM_SOURCE_NAME" IS NULL) = ("FROM_SCHEMA" IS NULL). Check: ("FROM_SOURCE_NAME" IS NULL) = ("FROM_TABLE" IS NULL). Check: ("FROM_SOURCE_NAME" IS NOT NULL) OR ("VIA" = 'ROUTINE'). Check: ("CONSTRAINT_NAME" IS NULL) = ("CONSTRAINT_SOURCE_NAME" IS NULL). Check: ("CONSTRAINT_NAME" IS NULL) = ("CONSTRAINT_SCHEMA" IS NULL). Check: ("CONSTRAINT_NAME" IS NULL) = ("CONSTRAINT_TABLE" IS NULL). Check: ("CONSTRAINT_NAME" IS NOT NULL) OR ("VIA" <> 'KEY').

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the type owning the field whose chain this link is part of

field_name (CHARACTER VARYING, not null)

the field whose chain this link is part of

target_source_name (CHARACTER VARYING, not null)

the catalog partition of the target this link’s chain leads to, the first column of the graphitron_field_table row this resolution belongs to

target_schema (CHARACTER VARYING, not null)

the target’s SQL schema

target_table (CHARACTER VARYING, not null)

the target’s SQL name. With the two columns above and the coordinate, graphitron_field_table’s whole key: the target is not this link’s arrival but the arrival of the chain it stands in, which is why a field with several targets resolves its links once per target rather than once

position (INTEGER, not null)

the link’s place in the chain, carried from graphitron_field_chain_link, where the order is stated and what makes it an order is argued. Numbered from zero without a hole there; a hole here is a link this resolution could not answer for

via (CHARACTER VARYING, not null)

which authored arm moved the chain, in a closed vocabulary of five. ROUTINE: the link is a @routine application and its arrival is the function result. KEY: the element named a foreign key, and the constraint columns beside this one say which and which way round. TABLE: the element named a table and a foreign key between the departure and it is what joins them. NAME_MATCH: the element named a table and the departure is a function result, which declares no foreign key, so the join is the whole primary-key name match sql_name_matched_key_column states. CONDITION: the element named neither a key nor a table and carried a condition, whose method signature declares both ends. Provenance and fork at once: it says which relation holds the link’s join columns, so a reader never has to try each in turn

key_matched_by (CHARACTER VARYING, nullable)

which name the author’s key spelling matched, SQL_NAME for the constraint’s own name in the catalog and JOOQ_NAME for the generated constant’s, in that precedence. NULL off the KEY arm, no other arm matching a key name at all. The precedence is the generator’s resolver’s: a written qualifier binds against the schema of the table holding the constraint, an unqualified name matches the SQL name, and the generated name becomes eligible only where no SQL name in this graph’s sources answers

constraint_source_name (CHARACTER VARYING, nullable)

the catalog partition of the referential constraint this link joins through, the first of four columns naming it

constraint_schema (CHARACTER VARYING, nullable)

the schema of the table the constraint is declared on

constraint_table (CHARACTER VARYING, nullable)

that table’s name. A constraint has no schema of its own; these two columns name the table holding it, which is the referencing side of the foreign key and not necessarily this link’s departure

constraint_name (CHARACTER VARYING, nullable)

the constraint’s own name as the catalog spells it, whatever the author spelled. With the three columns above, a foreign key into sql_referential_constraint, so the link’s column pairs are one join away. Carried here rather than recovered from the endpoints because two foreign keys may join the same pair of tables, so the endpoints do not name the constraint and a reader recomputing it from them would be guessing. NULL where the arm joins through no constraint

fk_on_from (BOOLEAN, nullable)

whether the departure is the side declaring the constraint, so the join runs along the foreign key rather than against it. Implied by which endpoint the constraint’s table matches, and carried anyway for the one case where that is no answer: a self-referential key declares both ends on one table, and this column is then the only thing saying which way the link runs. NULL exactly where no constraint answered

from_source_name (CHARACTER VARYING, nullable)

the catalog partition of the table this link departs from, the first of three columns naming it

from_schema (CHARACTER VARYING, nullable)

the departure’s SQL schema

from_table (CHARACTER VARYING, nullable)

the departure’s SQL name; with the two columns above a foreign key into sql_table. The previous link’s arrival, or at position zero the enclosing type’s binding, which graphitron_field_table holds beside the target. Three columns or none of them, and none only on the ROUTINE arm: a function result is where a chain’s rows begin, so that link departs from nothing and the absence is the fact rather than a gap

to_source_name (CHARACTER VARYING, not null)

the catalog partition of the table this link arrives at, the first of three columns naming it

to_schema (CHARACTER VARYING, not null)

the arrival’s SQL schema

to_table (CHARACTER VARYING, not null)

the arrival’s SQL name; with the two columns above a foreign key into sql_table. The next link’s departure, and at the chain’s last link the target itself, which is the identity a reader can check and a mismatch is the chain not reaching what the field claims to return

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran, on graphql_element.touched_at’s terms: swept per graph, and NOT NULL so the sweep is total. It is also what the walk reads: a link resolves from where the one before it arrived, and it matches that row on this reading’s instant so it departs from what this reading resolved rather than from a row the sweep is about to remove

One row the chain-link resolution computes, in the shape graphitron_field_table_link stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_field_table_link, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_field_table_link.graph_name

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_field_table_link.type_name

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_field_table_link.field_name

target_source_name (CHARACTER VARYING, nullable)

the target_source_name of a row of this rule, which the stage inserts into graphitron_field_table_link.target_source_name

target_schema (CHARACTER VARYING, nullable)

the target_schema of a row of this rule, which the stage inserts into graphitron_field_table_link.target_schema

target_table (CHARACTER VARYING, nullable)

the target_table of a row of this rule, which the stage inserts into graphitron_field_table_link.target_table

position (INTEGER, nullable)

the position of a row of this rule, which the stage inserts into graphitron_field_table_link.position

via (CHARACTER VARYING, nullable)

the via of a row of this rule, which the stage inserts into graphitron_field_table_link.via

key_matched_by (CHARACTER VARYING, nullable)

the key_matched_by of a row of this rule, which the stage inserts into graphitron_field_table_link.key_matched_by

constraint_source_name (CHARACTER VARYING, nullable)

the constraint_source_name of a row of this rule, which the stage inserts into graphitron_field_table_link.constraint_source_name

constraint_schema (CHARACTER VARYING, nullable)

the constraint_schema of a row of this rule, which the stage inserts into graphitron_field_table_link.constraint_schema

constraint_table (CHARACTER VARYING, nullable)

the constraint_table of a row of this rule, which the stage inserts into graphitron_field_table_link.constraint_table

constraint_name (CHARACTER VARYING, nullable)

the constraint_name of a row of this rule, which the stage inserts into graphitron_field_table_link.constraint_name

fk_on_from (BOOLEAN, nullable)

the fk_on_from of a row of this rule, which the stage inserts into graphitron_field_table_link.fk_on_from

from_source_name (CHARACTER VARYING, nullable)

the from_source_name of a row of this rule, which the stage inserts into graphitron_field_table_link.from_source_name

from_schema (CHARACTER VARYING, nullable)

the from_schema of a row of this rule, which the stage inserts into graphitron_field_table_link.from_schema

from_table (CHARACTER VARYING, nullable)

the from_table of a row of this rule, which the stage inserts into graphitron_field_table_link.from_table

to_source_name (CHARACTER VARYING, nullable)

the to_source_name of a row of this rule, which the stage inserts into graphitron_field_table_link.to_source_name

to_schema (CHARACTER VARYING, nullable)

the to_schema of a row of this rule, which the stage inserts into graphitron_field_table_link.to_schema

to_table (CHARACTER VARYING, nullable)

the to_table of a row of this rule, which the stage inserts into graphitron_field_table_link.to_table

graphitron_input_field_carrier_role

What a column-bearing input field points at, which is what decides whether its value can be compared on the table it was classified against and, where it can, whether those columns are that row’s own identity or a pointer at another row. For example an input field naming the film row’s own columns draws OWN_COLUMNS, and a @nodeId field decoding through a key the row declares on another table draws CROSS_TABLE_FK.

Primary key: (graph_name, type_name, field_name, resolving_source_name, resolving_schema, resolving_table). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the column scope

type_name (CHARACTER VARYING, not null)

the input object type the field is declared on

field_name (CHARACTER VARYING, not null)

the input field’s name within its container

resolving_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the site was classified against; part of the grain, so a shared input type reached from two tables gets a row for each

resolving_schema (CHARACTER VARYING, not null)

the classifying table’s SQL schema; part of the grain, as above

resolving_table (CHARACTER VARYING, not null)

the classifying table’s SQL name; with the two coordinate columns and the two columns above, the grain

carrier_role (CHARACTER VARYING, nullable)

what the carrier points at: OWN_COLUMNS, SELF_FK, CROSS_TABLE_FK or REMOTE, the four the classifier can answer. A closed vocabulary, and a fifth carrier shape is a new value here rather than a silence

graphitron_input_field_carrier_role_rule (view)

One row the input-field carrier-role rule computes, in the shape graphitron_input_field_carrier_role stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_input_field_carrier_role, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_input_field_carrier_role.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_input_field_carrier_role.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_input_field_carrier_role.field_name, whose comment carries what the value means

resolving_source_name (CHARACTER VARYING, nullable)

the resolving_source_name of a row of this rule, which the stage inserts into graphitron_input_field_carrier_role.resolving_source_name, whose comment carries what the value means

resolving_schema (CHARACTER VARYING, nullable)

the resolving_schema of a row of this rule, which the stage inserts into graphitron_input_field_carrier_role.resolving_schema, whose comment carries what the value means

resolving_table (CHARACTER VARYING, nullable)

the resolving_table of a row of this rule, which the stage inserts into graphitron_input_field_carrier_role.resolving_table, whose comment carries what the value means

carrier_role (CHARACTER VARYING, nullable)

the carrier_role of a row of this rule, which the stage inserts into graphitron_input_field_carrier_role.carrier_role, whose comment carries what the value means

graphitron_input_field_column_match

Which column an input field’s own name resolves to on the table its site navigates to: the column a predicate or an assignment built from that field names. For example the title field of an input classified against film draws one row naming film.title.

Primary key: (graph_name, type_name, field_name, resolving_source_name, resolving_schema, resolving_table). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the scope

type_name (CHARACTER VARYING, not null)

the input object type the field is declared on

field_name (CHARACTER VARYING, not null)

the input field whose name this row resolves

resolving_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the site was classified against; carried from the scope, where it is part of the grain and here too

resolving_schema (CHARACTER VARYING, not null)

the classifying table’s SQL schema; part of the grain, as above

resolving_table (CHARACTER VARYING, not null)

the classifying table’s SQL name; with the two coordinate columns and the two columns above, the grain

matched_name (CHARACTER VARYING, not null)

the effective name that matched: the @field(name:) binding where one was written, else the input field’s own name

matched_by (CHARACTER VARYING, not null)

which tier answered, in a closed vocabulary of two: JOOQ_NAME (the generated Java name) or SQL_NAME. The generated name is preferred where both match, which is the classifier’s order

table_source_name (CHARACTER VARYING, not null)

witness: the resolved table’s catalog partition. Which navigation reached it is intent_input_field_column_scope’s basis, and a consumer emitting the binding needs both

table_schema (CHARACTER VARYING, not null)

witness: the resolved table’s SQL schema

table_name (CHARACTER VARYING, not null)

witness: the resolved table’s SQL name

column_name (CHARACTER VARYING, not null)

the resolved column’s SQL name on that table; with the three witness columns above, sql_column’s full key

source_name (CHARACTER VARYING, not null)

the input field’s own declaration file; the position a diagnostic would carry

source_line (INTEGER, nullable)

source line of the input field declaration, 1-based

source_column (INTEGER, nullable)

source column of the input field declaration, 1-based

graphitron_input_field_column_match_rule (view)

One row the input-field column-match rule computes, in the shape graphitron_input_field_column_match stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_input_field_column_match, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_input_field_column_match.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_input_field_column_match.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_input_field_column_match.field_name, whose comment carries what the value means

resolving_source_name (CHARACTER VARYING, nullable)

the resolving_source_name of a row of this rule, which the stage inserts into graphitron_input_field_column_match.resolving_source_name, whose comment carries what the value means

resolving_schema (CHARACTER VARYING, nullable)

the resolving_schema of a row of this rule, which the stage inserts into graphitron_input_field_column_match.resolving_schema, whose comment carries what the value means

resolving_table (CHARACTER VARYING, nullable)

the resolving_table of a row of this rule, which the stage inserts into graphitron_input_field_column_match.resolving_table, whose comment carries what the value means

matched_name (CHARACTER VARYING, nullable)

the matched_name of a row of this rule, which the stage inserts into graphitron_input_field_column_match.matched_name, whose comment carries what the value means

matched_by (CHARACTER VARYING, nullable)

the matched_by of a row of this rule, which the stage inserts into graphitron_input_field_column_match.matched_by, whose comment carries what the value means

table_source_name (CHARACTER VARYING, nullable)

the table_source_name of a row of this rule, which the stage inserts into graphitron_input_field_column_match.table_source_name, whose comment carries what the value means

table_schema (CHARACTER VARYING, nullable)

the table_schema of a row of this rule, which the stage inserts into graphitron_input_field_column_match.table_schema, whose comment carries what the value means

table_name (CHARACTER VARYING, nullable)

the table_name of a row of this rule, which the stage inserts into graphitron_input_field_column_match.table_name, whose comment carries what the value means

column_name (CHARACTER VARYING, nullable)

the column_name of a row of this rule, which the stage inserts into graphitron_input_field_column_match.column_name, whose comment carries what the value means

source_name (CHARACTER VARYING, nullable)

the source_name of a row of this rule, which the stage inserts into graphitron_input_field_column_match.source_name, whose comment carries what the value means

source_line (INTEGER, nullable)

the source_line of a row of this rule, which the stage inserts into graphitron_input_field_column_match.source_line, whose comment carries what the value means

source_column (INTEGER, nullable)

the source_column of a row of this rule, which the stage inserts into graphitron_input_field_column_match.source_column, whose comment carries what the value means

graphitron_input_field_filter_role

Which rule resolves what one input field contributes at the site that reaches it. For example the title field of an input classified against film draws one row with the role NAME_MATCHED, and a field carrying @nodeId draws one with NODE_ID.

Primary key: (graph_name, type_name, field_name, resolving_source_name, resolving_schema, resolving_table). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from graphql_field

type_name (CHARACTER VARYING, not null)

the input object type the field is declared on. Not the type whose binding started any navigation, an input object having none, which is the difference from the argument-grain counterpart where the owning type is the navigating one

field_name (CHARACTER VARYING, not null)

the input field this row classifies

resolving_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the site was classified against; part of the grain, so a shared input type reached from two tables gets a row for each

resolving_schema (CHARACTER VARYING, not null)

the classifying table’s SQL schema; part of the grain, as above

resolving_table (CHARACTER VARYING, not null)

the classifying table’s SQL name; with the two coordinate columns and the two above it, the grain. One row per input field per table it is classified against, which is one row per classification the build actually performs

role (CHARACTER VARYING, not null)

which rule resolves the contribution: NODE_ID, NESTING, NAME_MATCHED, CONDITION_OWNED or UNBOUND, the winner of the ranked fork. A closed vocabulary, and a new classifier arm is a new value here rather than a silence

authored_condition (BOOLEAN, not null)

the field carries an authored @condition that composes with whatever the role contributes, which is every @condition except the override: true one CONDITION_OWNED already names. A modifier on the role and not a role, because the classifier attaches it inside four of the five arms rather than instead of them; the condition’s own identity is one join to graphitron_field_condition_entry away

source_name (CHARACTER VARYING, not null)

the input field’s own declaration file; the position a diagnostic would carry

source_line (INTEGER, nullable)

source line of the input field declaration, 1-based

source_column (INTEGER, nullable)

source column of the input field declaration, 1-based

graphitron_input_field_filter_role_rule (view)

One row the input-field filter-role rule computes, in the shape graphitron_input_field_filter_role stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_input_field_filter_role, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_input_field_filter_role.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_input_field_filter_role.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_input_field_filter_role.field_name, whose comment carries what the value means

resolving_source_name (CHARACTER VARYING, nullable)

the resolving_source_name of a row of this rule, which the stage inserts into graphitron_input_field_filter_role.resolving_source_name, whose comment carries what the value means

resolving_schema (CHARACTER VARYING, nullable)

the resolving_schema of a row of this rule, which the stage inserts into graphitron_input_field_filter_role.resolving_schema, whose comment carries what the value means

resolving_table (CHARACTER VARYING, nullable)

the resolving_table of a row of this rule, which the stage inserts into graphitron_input_field_filter_role.resolving_table, whose comment carries what the value means

role (CHARACTER VARYING, nullable)

the role of a row of this rule, which the stage inserts into graphitron_input_field_filter_role.role, whose comment carries what the value means

authored_condition (BOOLEAN, nullable)

the authored_condition of a row of this rule, which the stage inserts into graphitron_input_field_filter_role.authored_condition, whose comment carries what the value means

source_name (CHARACTER VARYING, nullable)

the source_name of a row of this rule, which the stage inserts into graphitron_input_field_filter_role.source_name, whose comment carries what the value means

source_line (INTEGER, nullable)

the source_line of a row of this rule, which the stage inserts into graphitron_input_field_filter_role.source_line, whose comment carries what the value means

source_column (INTEGER, nullable)

the source_column of a row of this rule, which the stage inserts into graphitron_input_field_filter_role.source_column, whose comment carries what the value means

graphitron_input_field_reference_step_target (view)

Where each element of an input field’s @reference path actually lands: the hops walked from the table that field is classified against, one element at a time, so a row exists only for an element the chain can be shown to reach. For example one input field reached under two arguments selecting from different tables walks two chains from one authored path, and an element that resolves to nothing ends its own chain and draws none.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the hop relation

type_name (CHARACTER VARYING, nullable)

the input object type owning the field the @reference is applied to

field_name (CHARACTER VARYING, nullable)

the input field the @reference is applied to

resolving_source_name (CHARACTER VARYING, nullable)

the catalog partition of the table this chain departed from; part of the key, unlike on either sibling walk, because an input field’s departure is its consuming site’s and not its own

resolving_schema (CHARACTER VARYING, nullable)

the departing table’s SQL schema; part of the key, as above

resolving_table (CHARACTER VARYING, nullable)

the departing table’s SQL name; part of the key, as above. Equal to from_table at position 0 and unrelated to it after that

ordinal (INTEGER, nullable)

the owning @reference application’s ordinal, since the directive is repeatable at capture; repetition on an input field is a conflict the resolver rejects, so a reader wanting the authored path counts applications rather than trusting this column to be zero

position (INTEGER, nullable)

the element’s 0-based position within its application’s path; positions are contiguous from 0 up to wherever the chain stopped

via (CHARACTER VARYING, nullable)

which arm resolved the element, as on the hop relation: KEY, TABLE, NAME_MATCH or CONDITION

key_matched_by (CHARACTER VARYING, nullable)

for a KEY element, the namespace that answered; NULL on a TABLE, NAME_MATCH or CONDITION element. As on the hop relation

from_source_name (CHARACTER VARYING, nullable)

the departing table’s catalog partition for this element: the resolving table at position 0, the previous element’s arrival after that

from_schema (CHARACTER VARYING, nullable)

this element’s departing SQL schema

from_table (CHARACTER VARYING, nullable)

this element’s departing SQL table name

to_source_name (CHARACTER VARYING, nullable)

the arriving table’s catalog partition, first column of its sql_table key

to_schema (CHARACTER VARYING, nullable)

the arriving table’s SQL schema

to_table (CHARACTER VARYING, nullable)

the arriving table’s SQL name. At the path’s last position this is the table the input field’s effective name resolves its column against

constraint_name (CHARACTER VARYING, nullable)

the foreign key this element joins on, named or discovered; NULL on a NAME_MATCH or CONDITION element, as on the hop relation

fk_on_from (BOOLEAN, nullable)

TRUE when the departing table declares the foreign key; the element’s direction. NULL on a NAME_MATCH or CONDITION element, as on the hop relation

targets (INTEGER, nullable)

how many distinct tables this element reaches, this row’s arrival being one of them; 1 where the destination is certain. Separate from candidates for the reason the sibling walks state: a reader that only needs the destination can trust a certain one where a reader that has to render the join cannot

candidates (INTEGER, nullable)

how many rows this element resolved to, counting routes and not just destinations; 1 is the walk’s requirement for an expressible hop

graphitron_input_field_reference_step_target_keyed

One foreign-key route one input-field @reference path element reaches, in one orientation and under one resolving table: the element the chain walked to, with the key it joins through. For example a FilmFilter field carrying @reference(path: [{key: "film_language_id_fkey"}]) draws one row per position under each table the field is classified against.

Primary key: (graph_name, type_name, field_name, resolving_source_name, resolving_schema, resolving_table, ordinal, position, from_source_name, from_schema, from_table, to_source_name, to_schema, to_table, constraint_name, fk_on_from). Foreign key: (graph_name) references store_graph (graph_name). Check: "VIA" IN('KEY', 'TABLE'). Check: ("KEY_MATCHED_BY" IN('SQL_NAME', 'JOOQ_NAME')) OR ("KEY_MATCHED_BY" IS NULL). Check: ("KEY_MATCHED_BY" IS NOT NULL) = ("VIA" = 'KEY').

Columns
graph_name (CHARACTER VARYING, not null)

the graph_name of a row of this arm, presented on graphitron_input_field_reference_step_target.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, not null)

the type_name of a row of this arm, presented on graphitron_input_field_reference_step_target.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, not null)

the field_name of a row of this arm, presented on graphitron_input_field_reference_step_target.field_name, whose comment carries what the value means

resolving_source_name (CHARACTER VARYING, not null)

the resolving_source_name of a row of this arm, presented on graphitron_input_field_reference_step_target.resolving_source_name, whose comment carries what the value means

resolving_schema (CHARACTER VARYING, not null)

the resolving_schema of a row of this arm, presented on graphitron_input_field_reference_step_target.resolving_schema, whose comment carries what the value means

resolving_table (CHARACTER VARYING, not null)

the resolving_table of a row of this arm, presented on graphitron_input_field_reference_step_target.resolving_table, whose comment carries what the value means

ordinal (INTEGER, not null)

the ordinal of a row of this arm, presented on graphitron_input_field_reference_step_target.ordinal, whose comment carries what the value means

position (INTEGER, not null)

the position of a row of this arm, presented on graphitron_input_field_reference_step_target.position, whose comment carries what the value means

via (CHARACTER VARYING, not null)

the via of a row of this arm, presented on graphitron_input_field_reference_step_target.via, whose comment carries what the value means

key_matched_by (CHARACTER VARYING, nullable)

the key_matched_by of a row of this arm, presented on graphitron_input_field_reference_step_target.key_matched_by, whose comment carries what the value means

from_source_name (CHARACTER VARYING, not null)

the from_source_name of a row of this arm, presented on graphitron_input_field_reference_step_target.from_source_name, whose comment carries what the value means

from_schema (CHARACTER VARYING, not null)

the from_schema of a row of this arm, presented on graphitron_input_field_reference_step_target.from_schema, whose comment carries what the value means

from_table (CHARACTER VARYING, not null)

the from_table of a row of this arm, presented on graphitron_input_field_reference_step_target.from_table, whose comment carries what the value means

to_source_name (CHARACTER VARYING, not null)

the to_source_name of a row of this arm, presented on graphitron_input_field_reference_step_target.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, not null)

the to_schema of a row of this arm, presented on graphitron_input_field_reference_step_target.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, not null)

the to_table of a row of this arm, presented on graphitron_input_field_reference_step_target.to_table, whose comment carries what the value means

constraint_name (CHARACTER VARYING, not null)

the constraint_name of a row of this arm, presented on graphitron_input_field_reference_step_target.constraint_name, whose comment carries what the value means

fk_on_from (BOOLEAN, not null)

the fk_on_from of a row of this arm, presented on graphitron_input_field_reference_step_target.fk_on_from, whose comment carries what the value means

targets (INTEGER, not null)

the targets of a row of this arm, presented on graphitron_input_field_reference_step_target.targets, whose comment carries what the value means

candidates (INTEGER, not null)

the candidates of a row of this arm, presented on graphitron_input_field_reference_step_target.candidates, whose comment carries what the value means

graphitron_input_field_reference_step_target_keyless

One table pair one input-field @reference path element reaches without a foreign key, under one resolving table: the element the chain walked to, by column-name match from a function result or by the route a condition method declares. For example a chain-ending element carrying only a @condition draws one row arriving at the table that method’s second parameter names.

Primary key: (graph_name, type_name, field_name, resolving_source_name, resolving_schema, resolving_table, ordinal, position, from_source_name, from_schema, from_table, to_source_name, to_schema, to_table). Foreign key: (graph_name) references store_graph (graph_name). Check: "VIA" IN('NAME_MATCH', 'CONDITION').

Columns
graph_name (CHARACTER VARYING, not null)

the graph_name of a row of this arm, presented on graphitron_input_field_reference_step_target.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, not null)

the type_name of a row of this arm, presented on graphitron_input_field_reference_step_target.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, not null)

the field_name of a row of this arm, presented on graphitron_input_field_reference_step_target.field_name, whose comment carries what the value means

resolving_source_name (CHARACTER VARYING, not null)

the resolving_source_name of a row of this arm, presented on graphitron_input_field_reference_step_target.resolving_source_name, whose comment carries what the value means

resolving_schema (CHARACTER VARYING, not null)

the resolving_schema of a row of this arm, presented on graphitron_input_field_reference_step_target.resolving_schema, whose comment carries what the value means

resolving_table (CHARACTER VARYING, not null)

the resolving_table of a row of this arm, presented on graphitron_input_field_reference_step_target.resolving_table, whose comment carries what the value means

ordinal (INTEGER, not null)

the ordinal of a row of this arm, presented on graphitron_input_field_reference_step_target.ordinal, whose comment carries what the value means

position (INTEGER, not null)

the position of a row of this arm, presented on graphitron_input_field_reference_step_target.position, whose comment carries what the value means

via (CHARACTER VARYING, not null)

the via of a row of this arm, presented on graphitron_input_field_reference_step_target.via, whose comment carries what the value means

from_source_name (CHARACTER VARYING, not null)

the from_source_name of a row of this arm, presented on graphitron_input_field_reference_step_target.from_source_name, whose comment carries what the value means

from_schema (CHARACTER VARYING, not null)

the from_schema of a row of this arm, presented on graphitron_input_field_reference_step_target.from_schema, whose comment carries what the value means

from_table (CHARACTER VARYING, not null)

the from_table of a row of this arm, presented on graphitron_input_field_reference_step_target.from_table, whose comment carries what the value means

to_source_name (CHARACTER VARYING, not null)

the to_source_name of a row of this arm, presented on graphitron_input_field_reference_step_target.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, not null)

the to_schema of a row of this arm, presented on graphitron_input_field_reference_step_target.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, not null)

the to_table of a row of this arm, presented on graphitron_input_field_reference_step_target.to_table, whose comment carries what the value means

targets (INTEGER, not null)

the targets of a row of this arm, presented on graphitron_input_field_reference_step_target.targets, whose comment carries what the value means

candidates (INTEGER, not null)

the candidates of a row of this arm, presented on graphitron_input_field_reference_step_target.candidates, whose comment carries what the value means

graphitron_input_field_resolving_table

Which table an input field is classified against, the field and the table together being the grain: a field resolves against a table it is handed rather than one it owns, so one input field reached under two arguments selecting from different tables is two rows. For example a FilmFilter input reached from one argument rooted in film and another rooted in actor draws two rows for each of its fields, one per resolving table.

Primary key: (graph_name, type_name, field_name, table_source_name, table_schema, table_name). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the occurrence path

type_name (CHARACTER VARYING, not null)

the input object type the field is declared on, the occurrence step’s container; with the column beside it, graphql_field’s key for an input coordinate

field_name (CHARACTER VARYING, not null)

the input field’s name within its container

table_source_name (CHARACTER VARYING, not null)

the resolving table’s catalog partition, the first column of the sql_table key this row names

table_schema (CHARACTER VARYING, not null)

the resolving table’s SQL schema

table_name (CHARACTER VARYING, not null)

the resolving table’s SQL name; with the two columns above this is sql_table’s full key, and with the two coordinate columns it is this relation’s grain

graphitron_input_field_resolving_table_rule (view)

One row the input-field resolving-table rule computes, in the shape graphitron_input_field_resolving_table stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_input_field_resolving_table, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_input_field_resolving_table.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_input_field_resolving_table.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_input_field_resolving_table.field_name, whose comment carries what the value means

table_source_name (CHARACTER VARYING, nullable)

the table_source_name of a row of this rule, which the stage inserts into graphitron_input_field_resolving_table.table_source_name, whose comment carries what the value means

table_schema (CHARACTER VARYING, nullable)

the table_schema of a row of this rule, which the stage inserts into graphitron_input_field_resolving_table.table_schema, whose comment carries what the value means

table_name (CHARACTER VARYING, nullable)

the table_name of a row of this rule, which the stage inserts into graphitron_input_field_resolving_table.table_name, whose comment carries what the value means

graphitron_link_entry

@link on the schema definition, decoded. All @link applications decode here (the verbatim twin sits in graphql_directive_application at coordinate $schema); whether a link is the federation opt-in is a predicate over url, a derivation. @tag and @shareable get no decoded relations: their only readers are the expansion machinery itself, which is the capture walk with the AST in hand, so downstream consumers see them only as fidelity rows for re-emission. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. graphitron_ast_link_entry is the replacement, written by the graphitron-ast gatherer from the document the application sits in.

Primary key: (graph_name, ordinal). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

ordinal (INTEGER, not null)

@link is repeatable; document order

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

url (CHARACTER VARYING, nullable)

as written

graphitron_method_reference_entry

A Java method named by a directive: the class and the method as the author spelled them, at the site that spelled them. Eleven kinds of site can name one and every one of them states the same two facts, so this is those two facts with a uniform key over them, which is what lets a reader asking what methods a graph names scan one relation instead of unioning ten and synthesising a key in each. Three readers were doing exactly that, at six arms, five and five, and each of the three had written the union out by hand. Keyed on the site and its own spelling, deliberately the same key graphitron_argmapping_entry carries: a pair and the method it binds into are two facts about one site, so a reader holding a pair reaches its method by joining the key it already has rather than by switching on the site to pick a relation. That is the whole of what the six-arm reconstruction was. A pair at the ROUTINE site names a database routine and no Java method, so it has no row here and an inner join drops it; the absence of a row is what used to be six site literals. Nine of the ten relations that spell a method keep their own tables, on the rule the section above states: each carries data this relation cannot hold, an override flag at the two condition sites, a table or key reference at the four step sites, a declaration coordinate at the enum, an authored argMapping string at three. The tenth, the source row, carried nothing beyond what is here and became rows of this relation; SOURCE_ROW is its site value. What this relation does not claim is that the method exists: it records what an author wrote, and whether the classpath census has a matching signature is a resolution the intent layer states, which is why nothing here joins code_method and why a name that resolves to nothing is a row rather than a silence. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, site, use_site). Foreign key: (graph_name) references store_graph (graph_name). Check: "SITE" IN('ENUM', 'SERVICE', 'EXTERNAL_FIELD', 'SOURCE_ROW', 'FIELD_CONDITION', 'INPUT_FIELD_CONDITION', 'ARGUMENT_CONDITION', 'FIELD_REFERENCE_STEP', 'ARGUMENT_REFERENCE_STEP', 'REFERENCE_FOR_STEP', 'ARGUMENT_REFERENCE_FOR_STEP').

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

site (CHARACTER VARYING, not null)

which kind of site named the method, in a closed vocabulary of eleven, one per directive spelling that can carry a class and a method. The whole of what says how to read type_name, field_name, argument_name, ordinal and step_position beside it, on graphitron_argmapping_entry.site’s terms. A reader that means one kind filters on it and owns having chosen; a reader that means the condition family filters on the six condition spellings, which is the filter three intent views spell

use_site (CHARACTER VARYING, not null)

the site spelled as one string, in the site’s own grammar and in exactly the spelling graphitron_argmapping_entry.use_site uses, so the two relations join on a key neither has to translate: Type.field, Type.field(argument), Type.field#ordinal, or those with the step position appended in brackets. The enum site is the one form that relation has no counterpart for, its coordinate being a type, so its spelling is the bare type name. Total by construction, which is what lets it key this relation where the decomposed columns beside it cannot

type_name (CHARACTER VARYING, not null)

the type owning the coordinate the site sits on; the whole coordinate at the ENUM site, whose directive sits on a type rather than within one

field_name (CHARACTER VARYING, nullable)

the field owning the coordinate the site sits on; NULL exactly at the ENUM site, determined by site rather than independent of it, which is what makes the nullness a stated rule instead of a missing value

argument_name (CHARACTER VARYING, nullable)

the argument the site sits on, at the two argument-grain sites; NULL at the other nine, whose sites sit on a field or a type. Determined by site

ordinal (INTEGER, nullable)

the owning application’s ordinal, at the four step sites whose directive is repeatable; NULL elsewhere. Determined by site

step_position (INTEGER, nullable)

the owning step’s 0-based position within its application’s path, at the four step sites; NULL elsewhere. Determined by site

class_name (CHARACTER VARYING, not null)

the class as the author wrote it, fully qualified, verbatim and unresolved; the spelling graphitron_condition_method_route.class_name and code_method_parameter.class_name both carry

method (CHARACTER VARYING, not null)

the method name as the author wrote it. A name and not a signature: an overload is told apart by the descriptor the classpath census keys on, which is a fact about the classpath rather than about what was written here, so resolving a name to one signature is the intent layer’s and never this relation’s

source_name (CHARACTER VARYING, nullable)

the SDL file the owning directive application was captured from; NULL where the application carries no position, on graphitron_routine_entry.source_name’s terms

source_line (INTEGER, nullable)

the owning application’s line, 1-based per the graphql-java convention; NULL exactly where source_name is

source_column (INTEGER, nullable)

the owning application’s column, 1-based per the graphql-java convention; NULL exactly where source_name is

graphitron_minted_coinage (view)

Which coordinate coined each type the expansion mints: one row per minted type name and the application it was derived from. For example films: [Film!]! @asConnection with a title facet coins QueryFilmsConnection, QueryFilmsConnectionEdge, PageInfo, QueryFilmsConnectionFacets and StringFacetValue, all at Query.films.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph''s partition, carried from the carrier

type_name (CHARACTER VARYING, nullable)

the minted type''s name; not unique here, one name being coinable by several applications

coordinate (CHARACTER VARYING, nullable)

the application that coined it, on graphitron_element_authored.coordinate''s terms; with the name above, the grain

graphitron_minted_conflict

A coordinate several macro applications would mint and disagree about: one row per contested coordinate in the graph. For example two carriers naming one connection through connectionName over different element types disagree about that connection’s own nodes field, which draws a row here and no row at all in graphitron_field.

Primary key: (graph_name, coordinate). Foreign key: (graph_name) references store_graph (graph_name). Check: "ELEMENT_KIND" IN('NAMED_TYPE', 'FIELD', 'FIELD_ARGUMENT'). Check: "VARIANTS" >= 2.

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

coordinate (CHARACTER VARYING, not null)

the contested coordinate, spelled as graphitron_element spells one. No foreign key there, and the absence is the fact: a contested coordinate is exactly the one the anchor declined to hold, so a key into the anchor could never be satisfied by a row of this relation

element_kind (CHARACTER VARYING, not null)

which kind of schema element the contested coordinate names, which is also which minted relation a reader joins to see what each application would have written. Three of the four the emitted family holds, an input field being minted by nothing today

variants (INTEGER, not null)

how many distinct payloads were minted here, always at least two, which the CHECK holds. A count of readings and not of applications: two carriers minting one coordinate the same way are no conflict and draw no row, and three carriers holding two opinions between them are two. Carried rather than left to a reader’s own count, on intent_bound_table.candidates' terms, so a message can say how many ways the schema disagrees with itself

graphitron_multitable_reference_entry

@multitableReference (removed) on a field; routes is never read. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

graphitron_mutation_entry

The statement a @mutation application makes a field perform, as one row per field however many applications the corpus wrote on it. For example @mutation(typeName: INSERT, table: "film") gives one row reading INSERT against the spelling film.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

operation (CHARACTER VARYING, not null)

the typeName argument as written (INSERT / UPDATE / DELETE / UPSERT); open column per the enum-literal rule

multi_row (BOOLEAN, nullable)

as written; NULL when omitted

table_ref (CHARACTER VARYING, nullable)

the table argument as written (may carry a schema qualifier); it names the write target of a DELETE, INSERT or UPDATE, the three verbs the resolver accepts it for, and resolves through the same qualified-name route a @table binding takes

table_ref_namespace_part (CHARACTER VARYING, nullable)

left of table_ref’s first period, NULL when no period appeared and the empty string when one appeared with nothing before it; for a table name this namespace is the SQL schema in every dialect jOOQ models. Written by capture, because splitting on a period is a decode and decodes happen there

table_ref_name_part (CHARACTER VARYING, nullable)

right of table_ref’s first period, or the whole value when none; the empty string when a period was written with nothing after it, which joins nothing and is meant to

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the applications an author removed from a coordinate that still stands; a coordinate the author removed takes its rows with it through the cascade on the reference below, so the two together are what makes this relation total without a pass emptying it first

table_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

table_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_mutation_payload_column

What a write payload actually puts on the table, column by column: one row per admitted occurrence per decode slot, carrying the column that slot binds and what the carrier at the end of it points at. For example an UPDATE of film whose input carries filmId and title draws one row for film_id and one for title, each at position 0.

Primary key: (graph_name, path, write_source_name, write_schema, write_table, position). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the write payload

type_name (CHARACTER VARYING, not null)

the type owning the mutation field, which is the occurrence path’s root type

field_name (CHARACTER VARYING, not null)

the mutation field whose payload contributes this column

operation (CHARACTER VARYING, not null)

the verb the walker was flattening for, UPDATE or DELETE; carried because the covered set the matched key computes over differs between them

path (CHARACTER VARYING, not null)

the occurrence path of the contributing input field; with the graph and the position, this relation’s grain

container_type_name (CHARACTER VARYING, not null)

the input object type the contributing field is declared on

input_field_name (CHARACTER VARYING, not null)

the contributing input field’s name within that container; named apart from field_name because that column is the mutation’s

role (CHARACTER VARYING, not null)

which rule resolved the column, NAME_MATCHED or NODE_ID, carried from the filter role. The two arms of this relation, and what tells a one-column contribution from a decoded tuple without counting rows

carrier_role (CHARACTER VARYING, not null)

what the carrier points at, OWN_COLUMNS, SELF_FK or CROSS_TABLE_FK, carried from the carrier role relation. REMOTE cannot appear, a remote carrier being a refusal at this site rather than a contribution

position (INTEGER, not null)

the 0-based decode slot within the contributing field’s own column tuple: always zero for a name match, and the node key’s position for a decode. What the emitter reads the value at, and the one fact a split carrier’s two halves cannot recover between them

column_name (CHARACTER VARYING, not null)

the column on the write table this slot binds, as the catalog spells it. Never null: a decode with a position that lands nowhere is a remote carrier and is refused before it reaches here

write_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the write targets, which is also the table the field was classified against

write_schema (CHARACTER VARYING, not null)

the write table’s SQL schema

write_table (CHARACTER VARYING, not null)

the write table’s SQL name; with the two columns above, sql_table’s full key, and with the column name above, sql_column’s

source_name (CHARACTER VARYING, not null)

the contributing input field’s own declaration file; the position a diagnostic naming this column would carry

source_line (INTEGER, nullable)

source line of the input field declaration, 1-based

source_column (INTEGER, nullable)

source column of the input field declaration, 1-based

graphitron_mutation_payload_column_rule (view)

One row the mutation payload-column rule computes, in the shape graphitron_mutation_payload_column stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_mutation_payload_column, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.field_name, whose comment carries what the value means

operation (CHARACTER VARYING, nullable)

the operation of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.operation, whose comment carries what the value means

path (CHARACTER VARYING, nullable)

the path of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.path, whose comment carries what the value means

container_type_name (CHARACTER VARYING, nullable)

the container_type_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.container_type_name, whose comment carries what the value means

input_field_name (CHARACTER VARYING, nullable)

the input_field_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.input_field_name, whose comment carries what the value means

role (CHARACTER VARYING, nullable)

the role of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.role, whose comment carries what the value means

carrier_role (CHARACTER VARYING, nullable)

the carrier_role of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.carrier_role, whose comment carries what the value means

position (INTEGER, nullable)

the position of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.position, whose comment carries what the value means

column_name (CHARACTER VARYING, nullable)

the column_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.column_name, whose comment carries what the value means

write_source_name (CHARACTER VARYING, nullable)

the write_source_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.write_source_name, whose comment carries what the value means

write_schema (CHARACTER VARYING, nullable)

the write_schema of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.write_schema, whose comment carries what the value means

write_table (CHARACTER VARYING, nullable)

the write_table of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.write_table, whose comment carries what the value means

source_name (CHARACTER VARYING, nullable)

the source_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.source_name, whose comment carries what the value means

source_line (INTEGER, nullable)

the source_line of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.source_line, whose comment carries what the value means

source_column (INTEGER, nullable)

the source_column of a row of this rule, which the stage inserts into graphitron_mutation_payload_column.source_column, whose comment carries what the value means

graphitron_mutation_payload_key_membership

Which of the columns an UPDATE’s payload contributes fall inside the key it matched, and how each carrier as a whole falls against that boundary. For example an UPDATE of film matched through its primary key draws film_id inside the key and title outside it, the first carrier falling WHOLE against the key and the second NONE.

Primary key: (graph_name, path, write_source_name, write_schema, write_table, position). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the payload column

type_name (CHARACTER VARYING, not null)

the type declaring the mutation field, which is the occurrence path’s root type

field_name (CHARACTER VARYING, not null)

the mutation field; with the type, the coordinate whose key this membership is measured against

path (CHARACTER VARYING, not null)

the occurrence path of the contributing input field, intent_input_occurrence_path’s key; with the position and the graph, this relation’s grain

container_type_name (CHARACTER VARYING, not null)

the input object type the contributing field is declared on, the path’s last step’s container

input_field_name (CHARACTER VARYING, not null)

the contributing field’s name within that container; named apart from field_name because that column is the mutation’s

role (CHARACTER VARYING, not null)

which rule resolved the column, NAME_MATCHED or NODE_ID, carried from the payload column so a consumer forking on whether the value is decoded does not join back for it

carrier_role (CHARACTER VARYING, not null)

what the carrier points at, carried for the same reason. Both consumers fork on it: a self-referencing foreign key is exempt from the partition altogether and a cross-table one is the only carrier that may be split

non_null (BOOLEAN, not null)

whether the contributing input field is spelled non-null, carried from the field declaration and repeated down the carrier’s columns exactly as carrier_key_membership is, and under the same argument: both consumers fork on the pair, so a row carrying only the column answer would send each of them back for the carrier’s. What it decides is which carriers may supply a predicate and which are only measured against the ones that do. A non-null carrier cannot be absent, so its value is available on every call and may be a column’s only source; a nullable one may be, so it may not, and that asymmetry is the whole content of the refusal beside this relation

position (INTEGER, not null)

the decode slot this column binds, counting from zero, and zero for a name match. Carried because the split is per column and neither half of a split carrier recovers the slot from its own ordering

column_name (CHARACTER VARYING, not null)

the column of the write table this slot binds

in_key (BOOLEAN, not null)

whether this column is one of the matched key’s, which is a lookup against sql_constraint_column for the constraint named beside it

carrier_key_membership (CHARACTER VARYING, not null)

how the whole carrier falls against that boundary: WHOLE where every column of it is in the key, NONE where none is, STRADDLE where it has a column on each side. A closed vocabulary of three, and an all-of over the carrier’s columns rather than a majority

constraint_name (CHARACTER VARYING, not null)

the key the membership is measured against, which is the candidate intent_mutation_matched_key ranked first among those this payload covers. On the row because the boundary is that key rather than the primary key, and a diagnostic has to name it

write_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the write targets

write_schema (CHARACTER VARYING, not null)

the write table’s SQL schema

write_table (CHARACTER VARYING, not null)

the write table’s SQL name; with the two columns above, sql_table’s full key

source_name (CHARACTER VARYING, not null)

the contributing input field’s own declaration file; the position a refusal about this carrier would carry

source_line (INTEGER, nullable)

source line of the input field declaration, 1-based

source_column (INTEGER, nullable)

source column of the input field declaration, 1-based

graphitron_mutation_payload_key_membership_rule (view)

One row the mutation payload key-membership rule computes, in the shape graphitron_mutation_payload_key_membership stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_mutation_payload_key_membership, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.field_name, whose comment carries what the value means

path (CHARACTER VARYING, nullable)

the path of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.path, whose comment carries what the value means

container_type_name (CHARACTER VARYING, nullable)

the container_type_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.container_type_name, whose comment carries what the value means

input_field_name (CHARACTER VARYING, nullable)

the input_field_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.input_field_name, whose comment carries what the value means

role (CHARACTER VARYING, nullable)

the role of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.role, whose comment carries what the value means

carrier_role (CHARACTER VARYING, nullable)

the carrier_role of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.carrier_role, whose comment carries what the value means

non_null (BOOLEAN, nullable)

the non_null of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.non_null, whose comment carries what the value means

position (INTEGER, nullable)

the position of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.position, whose comment carries what the value means

column_name (CHARACTER VARYING, nullable)

the column_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.column_name, whose comment carries what the value means

in_key (BOOLEAN, nullable)

the in_key of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.in_key, whose comment carries what the value means

carrier_key_membership (CHARACTER VARYING, nullable)

the carrier_key_membership of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.carrier_key_membership, whose comment carries what the value means

constraint_name (CHARACTER VARYING, nullable)

the constraint_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.constraint_name, whose comment carries what the value means

write_source_name (CHARACTER VARYING, nullable)

the write_source_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.write_source_name, whose comment carries what the value means

write_schema (CHARACTER VARYING, nullable)

the write_schema of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.write_schema, whose comment carries what the value means

write_table (CHARACTER VARYING, nullable)

the write_table of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.write_table, whose comment carries what the value means

source_name (CHARACTER VARYING, nullable)

the source_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.source_name, whose comment carries what the value means

source_line (INTEGER, nullable)

the source_line of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.source_line, whose comment carries what the value means

source_column (INTEGER, nullable)

the source_column of a row of this rule, which the stage inserts into graphitron_mutation_payload_key_membership.source_column, whose comment carries what the value means

graphitron_mutation_payload_refusal

Why a walker-driven write refuses one input field, located at the occurrence that reaches it. For example an UPDATE whose input carries a field naming no column on the written table draws one row at that field’s occurrence, with the cause UNBOUND.

Primary key: (graph_name, path). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the write payload

type_name (CHARACTER VARYING, not null)

the type owning the refused mutation field, which is the occurrence path’s root type

field_name (CHARACTER VARYING, not null)

the mutation field whose payload this row refuses; with the column above, the coordinate graphitron_mutation_write_payload is keyed by

operation (CHARACTER VARYING, not null)

the verb the walker was flattening for, UPDATE or DELETE. Carried because the two mint different typed errors from the same five refusals, so a consumer rendering one needs the verb without a second join

path (CHARACTER VARYING, not null)

the occurrence path of the refused input field, intent_input_occurrence_path’s key; with the graph, this relation’s grain

container_type_name (CHARACTER VARYING, not null)

the input object type the refused field is declared on, the path’s last step’s container

input_field_name (CHARACTER VARYING, not null)

the refused input field’s name within that container; named apart from field_name because that column is the mutation’s

role (CHARACTER VARYING, nullable)

the role the classifier resolved for the field, which says which of the sites a cause covering two of them is about. NULL exactly where the cause is UNCLASSIFIED, the classifier having resolved no role to carry

cause (CHARACTER VARYING, not null)

which gate refused and why, in a closed vocabulary of six: UNCLASSIFIED where the classifier declined the field before a walker saw it, then the walkers' own five in the order they are tested, REMOTE_CARRIER, CONDITION_OWNED, UNBOUND, LIST_CARRIER and AUTHORED_CONDITION. A new refusal in either walker is a new value here rather than a silence

write_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the write targets, which is also the table the field was classified against; carried so a reader has the classification this refusal was reached under

write_schema (CHARACTER VARYING, not null)

the write table’s SQL schema

write_table (CHARACTER VARYING, not null)

the write table’s SQL name; with the two columns above, sql_table’s full key

source_name (CHARACTER VARYING, not null)

the refused input field’s own declaration file; the position a diagnostic would carry, and the whole reason these refusals are stated here rather than folded into the payload relation’s absence

source_line (INTEGER, nullable)

source line of the input field declaration, 1-based

source_column (INTEGER, nullable)

source column of the input field declaration, 1-based

graphitron_mutation_payload_refusal_rule (view)

One row the mutation payload-refusal rule computes, in the shape graphitron_mutation_payload_refusal stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_mutation_payload_refusal, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.field_name, whose comment carries what the value means

operation (CHARACTER VARYING, nullable)

the operation of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.operation, whose comment carries what the value means

path (CHARACTER VARYING, nullable)

the path of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.path, whose comment carries what the value means

container_type_name (CHARACTER VARYING, nullable)

the container_type_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.container_type_name, whose comment carries what the value means

input_field_name (CHARACTER VARYING, nullable)

the input_field_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.input_field_name, whose comment carries what the value means

role (CHARACTER VARYING, nullable)

the role of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.role, whose comment carries what the value means

cause (CHARACTER VARYING, nullable)

the cause of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.cause, whose comment carries what the value means

write_source_name (CHARACTER VARYING, nullable)

the write_source_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.write_source_name, whose comment carries what the value means

write_schema (CHARACTER VARYING, nullable)

the write_schema of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.write_schema, whose comment carries what the value means

write_table (CHARACTER VARYING, nullable)

the write_table of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.write_table, whose comment carries what the value means

source_name (CHARACTER VARYING, nullable)

the source_name of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.source_name, whose comment carries what the value means

source_line (INTEGER, nullable)

the source_line of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.source_line, whose comment carries what the value means

source_column (INTEGER, nullable)

the source_column of a row of this rule, which the stage inserts into graphitron_mutation_payload_refusal.source_column, whose comment carries what the value means

graphitron_mutation_write_destination

What each column a write payload contributes is for, one row per contributing occurrence per decode slot: the finished partition, and what an emitter assembles a statement out of. For example an UPDATE of film whose input carries filmId and title draws film_id as a PREDICATE and title as a VALUE.

Primary key: (graph_name, path, write_source_name, write_schema, write_table, position). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the write payload

type_name (CHARACTER VARYING, not null)

the type declaring the writing mutation field

field_name (CHARACTER VARYING, not null)

the mutation field whose statement this column takes part in; with the type, the coordinate graphitron_mutation_write_payload is keyed by

operation (CHARACTER VARYING, not null)

the verb as the author wrote it, UPDATE or DELETE. On the row because the destination is not derivable without it: the same payload over the same table disposes its columns differently under the two verbs

path (CHARACTER VARYING, not null)

the occurrence path of the contributing input field, intent_input_occurrence_path’s key; with the position and the graph, this relation’s grain

container_type_name (CHARACTER VARYING, not null)

the input object type the contributing field is declared on, the path’s last step’s container

input_field_name (CHARACTER VARYING, not null)

the contributing field’s name within that container; named apart from field_name because that column is the mutation’s

role (CHARACTER VARYING, not null)

which rule resolved the column, NAME_MATCHED or NODE_ID; carried so a consumer emitting the extraction knows whether the value is decoded without joining back for it

carrier_role (CHARACTER VARYING, not null)

what the carrier points at, which is what the disposition turned on and what a diagnostic explaining the disposition names

position (INTEGER, not null)

the decode slot this column binds, counting from zero, and zero for a name match. The one place the slot survives: a split carrier’s two halves each lose the other’s ordering, so a consumer reading one of them cannot recover it

column_name (CHARACTER VARYING, not null)

the column of the write table this row’s value reaches

destination (CHARACTER VARYING, not null)

what the column is for, in a closed vocabulary of three. PREDICATE where the statement finds its row by this column, VALUE where it assigns it, CHECKED where it does neither and the contribution is only compared against the predicate’s value before the statement runs

on_explicit_null (CHARACTER VARYING, nullable)

what an explicit null on the contributing field means, in a closed vocabulary of three, and NULL where the question does not arise. It is a fact about the carrier rather than about this row’s column, repeated down the carrier’s rows the way the membership relation repeats its own carrier-level answer, and it is here because a reader that can say which columns a statement assigns but not what a null on them means is left deriving the second answer from the first, which does not follow: the same VALUE row clears under one spelling and is refused under another. CANNOT_ARRIVE is a non-null field, where the schema rejects a null before the statement is reached. CLEARS is a nullable field no assigned column of which is one the statement finds the row by, so a null writes NULL to every column it assigns and touches nothing else; an admitted straddling reference is always this, its assigned half being its out-of-key half by construction. REFUSED_AS_IDENTITY is a nullable field that assigns a column the statement identifies the row by, which a self-referencing foreign key can be and no other carrier is, and a null on it is refused when the statement runs rather than orphaning the row. NULL is a carrier that assigns nothing, which is a whole carrier and every row of a DELETE: there is no assignment for a null to clear, so there is no rule and an absence is the honest answer rather than a fourth value

write_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the write targets

write_schema (CHARACTER VARYING, not null)

the write table’s SQL schema

write_table (CHARACTER VARYING, not null)

the write table’s SQL name; with the two columns above, sql_table’s full key

source_name (CHARACTER VARYING, not null)

the contributing input field’s own declaration file

source_line (INTEGER, nullable)

source line of the input field declaration, 1-based

source_column (INTEGER, nullable)

source column of the input field declaration, 1-based

graphitron_mutation_write_destination_rule (view)

One row the mutation write-destination rule computes, in the shape graphitron_mutation_write_destination stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_mutation_write_destination, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.field_name, whose comment carries what the value means

operation (CHARACTER VARYING, nullable)

the operation of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.operation, whose comment carries what the value means

path (CHARACTER VARYING, nullable)

the path of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.path, whose comment carries what the value means

container_type_name (CHARACTER VARYING, nullable)

the container_type_name of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.container_type_name, whose comment carries what the value means

input_field_name (CHARACTER VARYING, nullable)

the input_field_name of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.input_field_name, whose comment carries what the value means

role (CHARACTER VARYING, nullable)

the role of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.role, whose comment carries what the value means

carrier_role (CHARACTER VARYING, nullable)

the carrier_role of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.carrier_role, whose comment carries what the value means

position (INTEGER, nullable)

the position of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.position, whose comment carries what the value means

column_name (CHARACTER VARYING, nullable)

the column_name of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.column_name, whose comment carries what the value means

destination (CHARACTER VARYING, nullable)

the destination of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.destination, whose comment carries what the value means

on_explicit_null (CHARACTER VARYING, nullable)

the on_explicit_null of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.on_explicit_null, whose comment carries what the value means

write_source_name (CHARACTER VARYING, nullable)

the write_source_name of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.write_source_name, whose comment carries what the value means

write_schema (CHARACTER VARYING, nullable)

the write_schema of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.write_schema, whose comment carries what the value means

write_table (CHARACTER VARYING, nullable)

the write_table of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.write_table, whose comment carries what the value means

source_name (CHARACTER VARYING, nullable)

the source_name of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.source_name, whose comment carries what the value means

source_line (INTEGER, nullable)

the source_line of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.source_line, whose comment carries what the value means

source_column (INTEGER, nullable)

the source_column of a row of this rule, which the stage inserts into graphitron_mutation_write_destination.source_column, whose comment carries what the value means

graphitron_mutation_write_payload

The write surface a walker-driven DML mutation offers: which coordinate writes, with which verb, over which table, through which argument. For example Mutation.deleteFilm(in: FilmKeyInput!) over @mutation(typeName: DELETE, table: "film") draws one row, a DELETE over film through the in argument.

Primary key: (graph_name, type_name, field_name, write_source_name, write_schema, write_table). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from graphitron_mutation_entry

type_name (CHARACTER VARYING, not null)

the type declaring the mutation field, which is a root operation type in every shape the generator emits and is not required to be one here

field_name (CHARACTER VARYING, not null)

the mutation field; with the type, the coordinate whose statement this row describes, and this relation’s grain, one row per writing coordinate

operation (CHARACTER VARYING, not null)

the verb as the author wrote it, UPDATE or DELETE, those being the two the walkers drive. Carried from graphitron_mutation_entry unchanged and not narrowed to an enum here, on the open-column rule the capture relation states

multi_row (BOOLEAN, not null)

whether @mutation(multiRow: true) is written, with the omitted spelling read as false. Meaningful on DELETE alone, where it is the opt-in to a statement that identifies no single row; an UPDATE carrying it has no row here at all, so this column is false on every UPDATE by construction rather than by a rule a reader has to remember

argument_name (CHARACTER VARYING, not null)

the sole argument carrying the payload; the name a consumer reads a wire value out of and the name an occurrence path under this coordinate roots at

argument_type_name (CHARACTER VARYING, not null)

the argument’s named input object type, the type whose fields the payload is assembled from. Not part of the grain, the argument being sole

argument_list (BOOLEAN, not null)

whether the argument is list-shaped, which is the bulk form: one statement over several payload rows rather than one. Carried and not filtered on, the cardinality being the emitter’s fork and not an admissibility question here

write_source_name (CHARACTER VARYING, not null)

the write table’s catalog partition, the first column of the sql_table key this row names

write_schema (CHARACTER VARYING, not null)

the write table’s SQL schema

write_table (CHARACTER VARYING, not null)

the write table’s SQL name; with the two columns above, sql_table’s full key. Also the table every input field under this argument is classified against, which is what makes this the join key into the input-field family rather than only a fact about the statement

source_name (CHARACTER VARYING, not null)

the SDL file the @mutation application was captured from; the position a refusal about this statement would carry

source_line (INTEGER, nullable)

source line of the @mutation application, 1-based

source_column (INTEGER, nullable)

source column of the @mutation application, 1-based

graphitron_mutation_write_payload_rule (view)

One row the mutation write-surface rule computes, in the shape graphitron_mutation_write_payload stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_mutation_write_payload, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.graph_name, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.field_name, whose comment carries what the value means

operation (CHARACTER VARYING, nullable)

the operation of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.operation, whose comment carries what the value means

multi_row (BOOLEAN, nullable)

the multi_row of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.multi_row, whose comment carries what the value means

argument_name (CHARACTER VARYING, nullable)

the argument_name of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.argument_name, whose comment carries what the value means

argument_type_name (CHARACTER VARYING, nullable)

the argument_type_name of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.argument_type_name, whose comment carries what the value means

argument_list (BOOLEAN, nullable)

the argument_list of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.argument_list, whose comment carries what the value means

write_source_name (CHARACTER VARYING, nullable)

the write_source_name of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.write_source_name, whose comment carries what the value means

write_schema (CHARACTER VARYING, nullable)

the write_schema of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.write_schema, whose comment carries what the value means

write_table (CHARACTER VARYING, nullable)

the write_table of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.write_table, whose comment carries what the value means

source_name (CHARACTER VARYING, nullable)

the source_name of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.source_name, whose comment carries what the value means

source_line (INTEGER, nullable)

the source_line of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.source_line, whose comment carries what the value means

source_column (INTEGER, nullable)

the source_column of a row of this rule, which the stage inserts into graphitron_mutation_write_payload.source_column, whose comment carries what the value means

graphitron_node

Which of a graph’s types are nodes, with the wire type id each answers to: one row per node type, from the authored population and the published one alike. For example a Customer carrying @node over @table draws a row, a type merely implementing Node over a table whose class publishes __NODE_TYPE_ID draws one beside it, and a @node on a type with no @table draws none.

Primary key: (graph_name, type_name). Foreign key: (graph_name, type_name) references graphitron_tabletype (graph_name, type_name). Check: "TYPE_ID_ORIGIN" IN('SDL_DECLARED', 'JOOQ_METADATA', 'TYPE_NAME').

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the type that is a node. The foreign key is into graphitron_tabletype rather than into the type coordinate, and that is the relation’s central claim: @node only takes effect on a type that also carries @table, so a node is a table-bound type before it is anything else and one that is not table bound cannot be a row here. A @node written on a type with no binding is a row in graphitron_node_entry and none here, and the anti-join between the two is where an author is told so. Cascading on delete, the dependency being existential rather than merely referential: a type that stops resolving to a table stops being a node, and the two are rewritten in one pass by the same gatherer

type_id (CHARACTER VARYING, not null)

the wire type id this node answers to, resolved rather than as written: what the author declared where they declared one, what the backing class publishes where they did not, and the type’s own name where neither says. Never null, the last of those three always answering, so a reader encoding an id needs no fallback of its own

type_id_origin (CHARACTER VARYING, not null)

which of the three answered, in the order they are tried: SDL_DECLARED from @node(typeId:), JOOQ_METADATA from the backing class’s __NODE_TYPE_ID, TYPE_NAME from the type itself. Carried because a diagnostic that says an id collides has to say where each came from, and because the tiers are a precedence a reader must not re-derive. The key columns' own origin is a separate column on a separate relation, the two axes being independent: an author may declare the id and leave the columns to the catalog, or the reverse

graphitron_node_entry

@node on an object type, as the author wrote it. The written half of the pair whose resolved half is graphitron_node: this records the directive wherever it appears and asks nothing of it, that holds the types the directive took effect on. A @node on a type carrying no @table is a row here and no row there, and the anti-join between the two is where an author learns the directive did nothing. Everything the directive leaves unstated is settled on the resolved side and not here: the type-name fallback for the wire id, the catalog key for the columns, and the precedence between what an author declared and what a generated class publishes.

Primary key: (graph_name, type_name). Foreign key: (graph_name, type_name) references graphql_type_element (graph_name, type_name). Foreign key: (graph_name, type_name, source_name, declaration_line, declaration_column) references graphql_type_declaration (graph_name, type_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the type the directive was written on, which is a type that exists and nothing further. Keyed to the type coordinate and deliberately not to graphitron_node: a decode that could hold only the types the directive took effect on could not record the ones where it did not, and those are exactly the rows worth reporting

source_name (CHARACTER VARYING, not null)

half of the site FK, so NOT NULL; a graphitron application always has an SDL position

declaration_line (INTEGER, not null)

line of the contributing declaration site, keyed with source_name

declaration_column (INTEGER, not null)

column of the contributing declaration site, the site key’s fourth part

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

type_id (CHARACTER VARYING, nullable)

the typeId as written, null where the author wrote none. Null means unstated rather than unknown: what such a node answers to is resolved on graphitron_node, which is never null because its last tier is the type’s own name

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the applications an author removed from a type that still stands; a type the author removed takes its rows with it through the element reference above, so the two together are what makes this relation total without a pass emptying it first

graphitron_node_id_decode_column

Where each value a decode yields lands: one row per position of the node type’s key, carrying that key column and the column on the slot’s own table the value lifts back to, or nothing where no such column exists. For example that same decode draws one row for Film’s key column film_id, lifting it back to inventory.film_id on the slot’s own table.

Primary key: (graph_name, use_site, origin_source_name, origin_schema, origin_table, node_type_name, position). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the endpoint relation

site (CHARACTER VARYING, nullable)

ARGUMENT or INPUT_FIELD, as on the endpoint relation

type_name (CHARACTER VARYING, nullable)

the type owning the slot, as on the endpoint relation

field_name (CHARACTER VARYING, nullable)

the slot’s field name, as on the endpoint relation

argument_name (CHARACTER VARYING, nullable)

the argument on ARGUMENT; NULL on INPUT_FIELD, as on the endpoint relation

path (CHARACTER VARYING, nullable)

the occurrence path on INPUT_FIELD; NULL on ARGUMENT, as on the endpoint relation, and carried for a reader that wants the descent rather than as a join key

use_site (CHARACTER VARYING, not null)

the consuming coordinate serialized, carried from the endpoint relation; with the graph, the branch and the position, the key. The whole decode family keys on this pair, for the reason the hop relation states: the five coordinate columns are the same key in parts, two of them nullable by site, so joining on them costs four null-safe disjunctions and yields a predicate no plan can use

node_type_name (CHARACTER VARYING, not null)

the node type the instruction named, carried from the endpoint relation, and part of the key: a slot naming a polymorphic container decodes once per member node type, and two members can depart from one table; the type whose key this row is a position of, and what a reader over these rows alone needs in order to say which key it is looking at

origin_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the decode departs from, carried from the endpoint relation. With the two columns below it this is the branch, and with the graph, the use site, the node type and the position it completes this relation’s key: a slot whose consuming field returns a multi-table polymorphic container decodes once per branch, so a row here is a position of one branch’s key rather than of the coordinate’s

origin_schema (CHARACTER VARYING, not null)

the departing table’s SQL schema, carried from the endpoint relation

origin_table (CHARACTER VARYING, not null)

the departing table’s SQL name, carried from the endpoint relation; the branch whose lift this row records, and the table local_column_name below names a column of

position (INTEGER, not null)

the 0-based position within the node type’s key, carried from graphitron_node_keycolumn; the order the decode returns values in, so a tuple predicate binds this row’s local column against the value at this position

tier (CHARACTER VARYING, nullable)

which population answered for the key column, carried from graphitron_node_keycolumn so a reader learns whether the key was pinned in SDL, stated by the generated model, or the bound table’s primary key without joining back. Provenance, and what a message naming a key column stands on

key_column_name (CHARACTER VARYING, nullable)

the node type’s key column at this position, as the winning tier spells it. What the decode yields a value for, and what a remote binding puts the value against on the node type’s own table

local_column_name (CHARACTER VARYING, nullable)

the column on the slot’s own table this position lifts back to, spelled as the catalog spells it, or NULL where the walk reached no such column. The whole discriminator of the two table destinations: every position carrying one is a local tuple predicate, none carrying one is a correlated EXISTS on the node type’s own table. NULL is a stated absence rather than a missing value, and the site is what determines it in the sense the nullable-by-kind discipline allows: on the identity navigation it is the key column itself, on a lifting chain the column the chain reached, and on a translating chain nothing, which is a rule about the navigation rather than an unfilled slot

graphitron_node_id_decode_column_rule (view)

One row the @nodeId decode-column rule computes, in the shape graphitron_node_id_decode_column stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_node_id_decode_column, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.graph_name, whose comment carries what the value means

site (CHARACTER VARYING, nullable)

the site of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.site, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.field_name, whose comment carries what the value means

argument_name (CHARACTER VARYING, nullable)

the argument_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.argument_name, whose comment carries what the value means

path (CHARACTER VARYING, nullable)

the path of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.path, whose comment carries what the value means

use_site (CHARACTER VARYING, nullable)

the use_site of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.use_site, whose comment carries what the value means

node_type_name (CHARACTER VARYING, nullable)

the node_type_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.node_type_name, whose comment carries what the value means

origin_source_name (CHARACTER VARYING, nullable)

the origin_source_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.origin_source_name, whose comment carries what the value means

origin_schema (CHARACTER VARYING, nullable)

the origin_schema of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.origin_schema, whose comment carries what the value means

origin_table (CHARACTER VARYING, nullable)

the origin_table of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.origin_table, whose comment carries what the value means

position (INTEGER, nullable)

the position of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.position, whose comment carries what the value means

tier (CHARACTER VARYING, nullable)

the tier of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.tier, whose comment carries what the value means

key_column_name (CHARACTER VARYING, nullable)

the key_column_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.key_column_name, whose comment carries what the value means

local_column_name (CHARACTER VARYING, nullable)

the local_column_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_column.local_column_name, whose comment carries what the value means

graphitron_node_id_decode_hop

The foreign-key hops a decode traverses from the slot’s own table to the node type’s, one row per hop in authored order. For example a @nodeId argument naming Film on a field whose statement is rooted in inventory draws one row, the hop over inventory_film_id_fkey from inventory to film.

Primary key: (graph_name, use_site, origin_source_name, origin_schema, origin_table, position). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the endpoint relation

site (CHARACTER VARYING, nullable)

ARGUMENT or INPUT_FIELD, as on the endpoint relation

type_name (CHARACTER VARYING, nullable)

the type owning the slot, as on the endpoint relation

field_name (CHARACTER VARYING, nullable)

the slot’s field name, as on the endpoint relation

argument_name (CHARACTER VARYING, nullable)

the argument carrying the instruction on ARGUMENT; NULL on INPUT_FIELD, as on the endpoint relation

path (CHARACTER VARYING, nullable)

the occurrence path on INPUT_FIELD; NULL on ARGUMENT, as on the endpoint relation. Carried for a reader that wants the descent as rows rather than as the one string beside it, and no longer part of the key

use_site (CHARACTER VARYING, not null)

the consuming coordinate serialized, carried from the endpoint relation. With the graph, the branch above and the position below, the whole of this relation’s key, and that is why it is here rather than only on the parent: the five coordinate columns above are the same key spelled in parts, two of them nullable by site, so a reader joining on them writes four null-safe disjunctions and gets a predicate no plan can use. This column is never NULL and the two sites cannot collide in it, an argument serializing as Type.field(argument) and an input field as an occurrence path of at least one step, so it keys the same rows the parts do. The lift walks this relation’s rows against themselves and that walk is the reader the collapse was measured on

origin_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the decode departs from, carried from the endpoint relation. With the two columns below it this is the branch: a slot whose consuming field returns a multi-table polymorphic container has one endpoint pair per branch, and the decode is stated once per branch, so the branch is part of this relation’s key and of every relation’s below it. Distinct from from_source_name beside it, which is the step’s own departure: the two agree at position 0 and part company after it, an intermediate table being where a later step departs

origin_schema (CHARACTER VARYING, not null)

the departing table’s SQL schema, carried from the endpoint relation

origin_table (CHARACTER VARYING, not null)

the departing table’s SQL name, carried from the endpoint relation; the branch this row’s chain belongs to

position (INTEGER, not null)

the hop’s 0-based position along the path, in authored order; always 0 on a discovered key, that arm resolving one hop and never a chain. Contiguous from 0 up to wherever the chain stopped, which is the reference-target view’s own property carried through

via (CHARACTER VARYING, nullable)

which arm resolved the hop: KEY, TABLE or NAME_MATCH carried from the reference-target view where the author wrote the path, DISCOVERED where nothing was written and the single connecting key answered. A closed vocabulary of four, and what a reader asks to learn whether every hop is a foreign key at all, a NAME_MATCH hop joining on none

from_source_name (CHARACTER VARYING, nullable)

the departing table’s catalog partition: the slot’s own table at position 0, the previous hop’s arrival after that

from_schema (CHARACTER VARYING, nullable)

the departing table’s SQL schema

from_table (CHARACTER VARYING, nullable)

the departing table’s SQL name

to_source_name (CHARACTER VARYING, nullable)

the arriving table’s catalog partition; the node type’s own table at the terminal hop, an intermediate table before it

to_schema (CHARACTER VARYING, nullable)

the arriving table’s SQL schema

to_table (CHARACTER VARYING, nullable)

the arriving table’s SQL name

constraint_name (CHARACTER VARYING, nullable)

the foreign key the hop joins on, written or discovered. Its own sql_referential_constraint key is this name under whichever endpoint declares it, which fk_on_from says. NULL on a NAME_MATCH hop, which joins on no foreign key

fk_on_from (BOOLEAN, nullable)

TRUE when the departing table declares the foreign key, FALSE when the arriving one does; the hop’s direction, and what says which side of the key’s column pairing is the local column. Always TRUE on a discovered key, the discovery demanding a key the departing table declares, which is the classifier’s own rule and not a simplification here. NULL on a NAME_MATCH hop

last_position (INTEGER, nullable)

the greatest position this branch’s path reached, so the terminal hop is the row whose position equals this. Per branch and not per coordinate, which is what the origin columns above are for: two branches of one polymorphic slot walk different chains and can stop at different positions, and a greatest position taken across both would name one branch’s terminal on the other’s rows. Carried because the lift the key-column child computes has to know where the chain ends and asking the question outside would name this relation a second time, which is the same reason the reference-target views carry their own arities. The greatest position rather than a count of rows, because the two agree only where the positions are contiguous, and they need not be: a position whose route is ambiguous contributes no hop, so a chain can have a gap, and a count would then point at a position that is not the terminal. Under a gap nothing lifts either way, the walk being unable to cross it, so this is a statement that stays true rather than a behaviour that changes

graphitron_node_id_decode_hop_column

One hop of a decode path oriented along the walk: for each position of the hop’s foreign key, the column on the table the hop departs beside the column on the table it arrives at. For example the hop over inventory_film_id_fkey from inventory to film draws one row pairing inventory.film_id with film.film_id.

Primary key: (graph_name, use_site, origin_source_name, origin_schema, origin_table, position, pair_position). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the hop

site (CHARACTER VARYING, nullable)

ARGUMENT or INPUT_FIELD, as on the hop

type_name (CHARACTER VARYING, nullable)

the type owning the slot, as on the hop

field_name (CHARACTER VARYING, nullable)

the slot’s field name, as on the hop

argument_name (CHARACTER VARYING, nullable)

the argument on ARGUMENT; NULL on INPUT_FIELD, as on the hop

path (CHARACTER VARYING, nullable)

the occurrence path on INPUT_FIELD; NULL on ARGUMENT, as on the hop, and carried for the same reason: a reader that wants the descent as rows, never as a join key

use_site (CHARACTER VARYING, not null)

the consuming coordinate serialized, carried from the hop; with the graph, the branch below, the position and the pair position, the key. The column the lift joins on, for the reason the hop states, and never on its own: a coordinate whose consuming field returns a multi-table polymorphic container has one chain per branch, so joining on this column without the branch beside it gathers every branch’s hops under each of them

origin_source_name (CHARACTER VARYING, not null)

the catalog partition of the table the decode departs from, carried from the hop. With the two columns below it this is the branch, and with the graph, the use site, the position and the pair position it completes this relation’s key; the hop’s own comment carries why the branch is a key column and not provenance

origin_schema (CHARACTER VARYING, not null)

the departing table’s SQL schema, carried from the hop

origin_table (CHARACTER VARYING, not null)

the departing table’s SQL name, carried from the hop; the branch this row’s pairing belongs to. Not the table this row’s from_column_name sits on, which is the hop’s own departure and is the same table only at position 0

position (INTEGER, not null)

the hop’s own 0-based position along the path, carried from the hop; with the pair position beside it, the branch above, the use site and the graph, this is the key. Positions are contiguous within a branch and are not comparable across two, each branch walking a chain of its own

pair_position (INTEGER, not null)

the 0-based position within the hop’s foreign key, the same position on both sides of the pair. The order a tuple predicate over this hop has to preserve, and what makes the walk positional rather than a name lookup that happens to agree

from_column_name (CHARACTER VARYING, nullable)

the column on the table this hop departs: the key’s own column where the departing table declares it, the column it references where the arriving table does

to_column_name (CHARACTER VARYING, nullable)

the column on the table this hop arrives at, the other half of the pair. What the next hop’s departing column is matched against, and at the terminal hop what a node key column is matched against

last_position (INTEGER, nullable)

the greatest position the path reached, carried from the hop; the terminal hop is the one whose position equals this

graphitron_node_id_decode_hop_column_rule (view)

One row the @nodeId decode-hop column rule computes, in the shape graphitron_node_id_decode_hop_column stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_node_id_decode_hop_column, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.graph_name, whose comment carries what the value means

site (CHARACTER VARYING, nullable)

the site of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.site, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.field_name, whose comment carries what the value means

argument_name (CHARACTER VARYING, nullable)

the argument_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.argument_name, whose comment carries what the value means

path (CHARACTER VARYING, nullable)

the path of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.path, whose comment carries what the value means

use_site (CHARACTER VARYING, nullable)

the use_site of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.use_site, whose comment carries what the value means

origin_source_name (CHARACTER VARYING, nullable)

the origin_source_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.origin_source_name, whose comment carries what the value means

origin_schema (CHARACTER VARYING, nullable)

the origin_schema of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.origin_schema, whose comment carries what the value means

origin_table (CHARACTER VARYING, nullable)

the origin_table of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.origin_table, whose comment carries what the value means

position (INTEGER, nullable)

the position of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.position, whose comment carries what the value means

pair_position (INTEGER, nullable)

the pair_position of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.pair_position, whose comment carries what the value means

from_column_name (CHARACTER VARYING, nullable)

the from_column_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.from_column_name, whose comment carries what the value means

to_column_name (CHARACTER VARYING, nullable)

the to_column_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.to_column_name, whose comment carries what the value means

last_position (INTEGER, nullable)

the last_position of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop_column.last_position, whose comment carries what the value means

graphitron_node_id_decode_hop_rule (view)

One row the @nodeId decode-hop rule computes, in the shape graphitron_node_id_decode_hop stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_node_id_decode_hop, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.graph_name, whose comment carries what the value means

site (CHARACTER VARYING, nullable)

the site of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.site, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.field_name, whose comment carries what the value means

argument_name (CHARACTER VARYING, nullable)

the argument_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.argument_name, whose comment carries what the value means

path (CHARACTER VARYING, nullable)

the path of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.path, whose comment carries what the value means

use_site (CHARACTER VARYING, nullable)

the use_site of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.use_site, whose comment carries what the value means

origin_source_name (CHARACTER VARYING, nullable)

the origin_source_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.origin_source_name, whose comment carries what the value means

origin_schema (CHARACTER VARYING, nullable)

the origin_schema of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.origin_schema, whose comment carries what the value means

origin_table (CHARACTER VARYING, nullable)

the origin_table of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.origin_table, whose comment carries what the value means

position (INTEGER, nullable)

the position of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.position, whose comment carries what the value means

via (CHARACTER VARYING, nullable)

the via of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.via, whose comment carries what the value means

from_source_name (CHARACTER VARYING, nullable)

the from_source_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.from_source_name, whose comment carries what the value means

from_schema (CHARACTER VARYING, nullable)

the from_schema of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.from_schema, whose comment carries what the value means

from_table (CHARACTER VARYING, nullable)

the from_table of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.from_table, whose comment carries what the value means

to_source_name (CHARACTER VARYING, nullable)

the to_source_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.to_source_name, whose comment carries what the value means

to_schema (CHARACTER VARYING, nullable)

the to_schema of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.to_schema, whose comment carries what the value means

to_table (CHARACTER VARYING, nullable)

the to_table of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.to_table, whose comment carries what the value means

constraint_name (CHARACTER VARYING, nullable)

the constraint_name of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.constraint_name, whose comment carries what the value means

fk_on_from (BOOLEAN, nullable)

the fk_on_from of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.fk_on_from, whose comment carries what the value means

last_position (INTEGER, nullable)

the last_position of a row of this rule, which the stage inserts into graphitron_node_id_decode_hop.last_position, whose comment carries what the value means

graphitron_node_id_instruction

Every slot carrying the @nodeId instruction, and which type it names. For example Film.id carrying @nodeId draws one row naming Film, and the id argument of Query.film(id: ID! @nodeId(typeName: "Film")) draws another.

Primary key: (graph_name, use_site, resolved_type_name). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from whichever arm produced the row

site (CHARACTER VARYING, nullable)

which SDL site carries the instruction, in a closed vocabulary of three: OUTPUT_FIELD, INPUT_FIELD, ARGUMENT. The column a consumer switches on, the one that decides the direction, and the one every other column’s nullness is determined by. The two field sites share one captured relation and are told apart by the owning type’s kind, which is how the capture side already tells them apart

type_name (CHARACTER VARYING, nullable)

the type owning the slot: an object type on OUTPUT_FIELD, an input object type on INPUT_FIELD, the argument’s owning type on ARGUMENT

field_name (CHARACTER VARYING, nullable)

the slot’s field name, or on ARGUMENT the field the argument sits on

argument_name (CHARACTER VARYING, nullable)

the argument carrying the instruction on the ARGUMENT site; NULL on the two field sites, determined by site rather than independent of it, which is what makes the nullness a stated rule instead of a missing value

path (CHARACTER VARYING, nullable)

the occurrence path this row’s use site is, on the INPUT_FIELD site; NULL on the other two, whose slot is its own use site. The serialized key of intent_input_occurrence_path, so the use site’s own coordinate and every step of the descent are one join away and nothing here is parsed

use_site (CHARACTER VARYING, not null)

the consuming coordinate serialized, in graphitron_argmapping_entry’s vocabulary: Type.field for an output field, Type.field(argument) for an argument, and the occurrence path itself for an input field, that path already being this serialization. Carried because a message needs one string and the components differ by site; those components are columns beside it, so nothing parses this

basis (CHARACTER VARYING, nullable)

which rule stated the instruction and resolved its target, in a closed vocabulary of five disjoint rules. EXPLICIT_TYPE_NAME: @nodeId(typeName: T). CONTAINING_NODE_TYPE: bare @nodeId on a non-@reference object field whose containing type is itself a node, the manual’s inference rule (a). TARGET_TABLE_NODE_TYPE: bare @nodeId whose target comes from a table, the manual’s inference rule (b), demanding exactly one node type over that table. OWN_ID_FIELD: a node type’s own id field with no directive, which is a node ID by construction. TARGET_ID_NAME: a slot named for the target’s own id with no directive, an argument of a node-returning field or an input field consumed against a node-backed table. Provenance and shape at once, which is why it is one column and not two: typeName: is rejected outright on a node type’s own id field, so the forms are not interchangeable and a rejection has to be able to say which one the author wrote

resolved_type_name (CHARACTER VARYING, not null)

the type the instruction’s basis resolved, written or inferred; never NULL, the population being instructions whose target resolved to something. A name and never a binding, on graphitron_field_navigation.navigated_type_name’s terms: what sort of type it is, and therefore which relation answers for it, is the kind column beside it. Where the kind is NODE_TYPE this is the node type itself and the opaque format’s other end is one join away, graphitron_node_keycolumn on this name and the graph giving the key columns in order and graphitron_node the typeId. Where the kind is POLY_CONTAINER it is a multitable interface or union that resolves no key of its own, and intent_node_id_candidate_node_type on this name is the node types an id at this slot may belong to. Renamed from node_type_name when the container population landed, rather than widening that name’s promise: a container is not a node type, and a column that meant one thing at two kinds would have every reader restating which

resolved_type_kind (CHARACTER VARYING, nullable)

which sort of type the name beside it is, in a closed vocabulary of two. NODE_TYPE: a node type, whose key the decode yields directly. POLY_CONTAINER: a multitable interface or union whose @table members are node types, where the wire id’s own type prefix decides which member’s key the decode yields. A column rather than a predicate each reader re-evaluates, on carries_reference_path’s own justification in this relation: three relations fork on it and several more take it as a filter, and re-deriving it would mean each of them joining graphitron_node_type or graphql_type to answer a question this view has already answered. Deliberately not a sixth basis: basis states which authored rule stood the instruction up, and a written typeName: is one rule whatever it resolves to, so splitting it would split one authored predicate on a resolution fact

carries_reference_path (BOOLEAN, nullable)

whether the slot carries an @reference path of its own, read on the captured relation the slot’s site keys: the argument-site steps on ARGUMENT, the field-site steps on the two field sites. Carried because it decides how the instruction navigates to the node type’s table and because two of the bases above are already disjoint on it, so a reader resolving the navigation would otherwise re-derive a predicate this view has already evaluated. It says a path is written and nothing about whether one resolves; where the path resolves to is the reference-target views' answer and a slot whose path reaches nothing is TRUE here all the same

source_name (CHARACTER VARYING, nullable)

the SDL file the instruction was captured from; the directive application’s own position on the three directive bases, and the slot declaration’s on the two name-carried ones, there being no application to locate

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

graphitron_node_id_instruction_rule (view)

One row the @nodeId instruction rule computes, in the shape graphitron_node_id_instruction stores: the rule itself, evaluated on demand rather than read off disk. For example a capture inserts this view’s rows for one graph into graphitron_node_id_instruction, which is the name every reader spells; naming this relation instead asks for on-demand evaluation and gets it, which is a performance bug rather than a wrong answer.

Columns
graph_name (CHARACTER VARYING, nullable)

the graph_name of a row of this rule, which the stage inserts into graphitron_node_id_instruction.graph_name, whose comment carries what the value means

site (CHARACTER VARYING, nullable)

the site of a row of this rule, which the stage inserts into graphitron_node_id_instruction.site, whose comment carries what the value means

type_name (CHARACTER VARYING, nullable)

the type_name of a row of this rule, which the stage inserts into graphitron_node_id_instruction.type_name, whose comment carries what the value means

field_name (CHARACTER VARYING, nullable)

the field_name of a row of this rule, which the stage inserts into graphitron_node_id_instruction.field_name, whose comment carries what the value means

argument_name (CHARACTER VARYING, nullable)

the argument_name of a row of this rule, which the stage inserts into graphitron_node_id_instruction.argument_name, whose comment carries what the value means

path (CHARACTER VARYING, nullable)

the path of a row of this rule, which the stage inserts into graphitron_node_id_instruction.path, whose comment carries what the value means

use_site (CHARACTER VARYING, nullable)

the use_site of a row of this rule, which the stage inserts into graphitron_node_id_instruction.use_site, whose comment carries what the value means

basis (CHARACTER VARYING, nullable)

the basis of a row of this rule, which the stage inserts into graphitron_node_id_instruction.basis, whose comment carries what the value means

resolved_type_name (CHARACTER VARYING, nullable)

the resolved_type_name of a row of this rule, which the stage inserts into graphitron_node_id_instruction.resolved_type_name, whose comment carries what the value means

resolved_type_kind (CHARACTER VARYING, nullable)

the resolved_type_kind of a row of this rule, which the stage inserts into graphitron_node_id_instruction.resolved_type_kind, whose comment carries what the value means

carries_reference_path (BOOLEAN, nullable)

the carries_reference_path of a row of this rule, which the stage inserts into graphitron_node_id_instruction.carries_reference_path, whose comment carries what the value means

source_name (CHARACTER VARYING, nullable)

the source_name of a row of this rule, which the stage inserts into graphitron_node_id_instruction.source_name, whose comment carries what the value means

source_line (INTEGER, nullable)

the source_line of a row of this rule, which the stage inserts into graphitron_node_id_instruction.source_line, whose comment carries what the value means

source_column (INTEGER, nullable)

the source_column of a row of this rule, which the stage inserts into graphitron_node_id_instruction.source_column, whose comment carries what the value means

graphitron_node_keycolumn

A node type’s key columns, in key order and resolved against the table it is bound to: one row per position, naming a column the catalog has. For example a Customer over the customer table draws its primary key columns, an author pinning keyColumns: ["email"] draws that column instead, and a pinned name the table does not have draws nothing at all.

Primary key: (graph_name, type_name, position). Foreign key: (graph_name, type_name) references graphitron_node (graph_name, type_name). Foreign key: (graph_name, type_name, table_source_name, table_schema, table_name) references graphitron_tabletype (graph_name, type_name, table_source_name, table_schema, table_name). Foreign key: (table_source_name, table_schema, table_name, column_name) references sql_column (source_name, table_schema, table_name, column_name). Check: "POSITION" >= 0. Check: "COLUMN_ORIGIN" IN('SDL_PINNED', 'JOOQ_METADATA', 'CATALOG_PRIMARY_KEY').

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the node whose key this is

type_name (CHARACTER VARYING, not null)

the node type this column is part of the identity of. The foreign key is into graphitron_node, so a type that is not a node has no key columns here however well its table is keyed: the two questions are asked in that order and only one of them is about the catalog

position (INTEGER, not null)

the column’s place in the key tuple, numbered from zero in the order ids are built and read. The order is the whole reason this is a relation of its own rather than a list on the node: an id encoded against one order and decoded against another finds the wrong row rather than failing

column_name (CHARACTER VARYING, not null)

the catalog column, spelled as the catalog spells it and not as whoever named it did. A pinned keyColumns entry and a generated class’s constant are both authored spellings that meet a catalog name here, so both are folded to resolve and neither spelling survives into this column; what was written stays in graphitron_node_keycolumn_entry and in sql_node_key_column respectively

column_origin (CHARACTER VARYING, not null)

which of the three populations answered: SDL_PINNED from @node(keyColumns:), JOOQ_METADATA from the backing class’s __NODE_KEY_COLUMNS, CATALOG_PRIMARY_KEY from the bound table’s own key. Repeated on every position rather than held once per type, the tier being uniform across a key tuple by construction: one tier answers for the whole list or none does, so the repetition is a functional dependency inside a derived relation and not a second grain

table_source_name (CHARACTER VARYING, not null)

the catalog source declaring the table this column belongs to. Carried, with the schema and table beside it, so the row can reference both the type’s binding and the column itself: without them the relation could name a column of some other table and nothing would say so

table_schema (CHARACTER VARYING, not null)

the bound table’s schema, half of the reference that ties this column to the type’s own binding rather than to any table having such a column

table_name (CHARACTER VARYING, not null)

the bound table, cascading with the catalog that declares it: a recrawled source takes its columns and these rows with it, which is the same lifetime rule graphitron_tabletype carries

column_name_upper (CHARACTER VARYING, nullable)

the case fold of the column, stored so a reader matching an authored spelling against it compares two stored values and an index can serve. Minted here rather than left to each reader because this is where an authored name meets a catalog one and the crossing happens once: before this relation the answer was a spelling with nowhere to reach, so every consumer folded at its own join. It duplicates sql_column’s own fold of the same value, deliberately, the alternative being a join per reader for a column this relation already carries

graphitron_node_keycolumn_entry

An ordered keyColumns entry of an @node, as the author wrote it. The written half of the pair whose resolved half is graphitron_node_keycolumn: this holds a spelling and asks nothing of it, that holds a column the catalog has. A spelling naming no column of the bound table is a row here and no row there, and the anti-join between the two is the only place an author finds out; there is no other relation that records the mistake. Keyed by the graph and the type rather than by the node, deliberately, because an author may pin key columns on a type that turns out not to be a node at all and a decode that could not hold that row could not report it either.

Primary key: (graph_name, type_name, position). Foreign key: (graph_name, type_name) references graphitron_node_entry (graph_name, type_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

position (INTEGER, not null)

0-based position within the owning list

column_ref (CHARACTER VARYING, not null)

the key column as written, folded against nothing and resolved against nothing. Either the catalog’s own spelling or the generated field name will resolve, both being names a consumer sees, but which one this is is not asked here and no fold sits beside it: the crossing happens once, where the column is resolved, and a fold on this side would be a second one

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran, on the parent relation’s terms. A list the author shortened loses its tail here and nowhere else: the elements it dropped carry the previous instant and the parent row does not, the application still standing

graphitron_node_type (view)

Which of a graph’s types are node types: the union of the authored @node population and the resolved one. The store’s answer to the question NodeDeclaration.isNodeType answers live, and the relation every reader of nodehood joins instead of restating the rule. A declaration-level answer, matching that predicate: @node without implements Node still reads as a node here, and rejecting that shape is the classifier’s job rather than this relation’s, since a membership relation that silently dropped a declared node would leave a detection with nothing to detect. The predicate’s declared-wins short-circuit needs no transcription: a UNION dedupes, so precedence dissolves along with the provenance column that would have asked for it, and a reader wanting to know which rule answered reads the arm, both arms being residents in their own right. Both arms are captured relations, which is this view’s whole cost argument: graphitron_node’s published arm computes the inferred conjunction at capture, so reading the derivation that restates it would re-evaluate a nodehood chain once per naming of this relation, where a captured table counts once and truncates the tree for every rule above it. Its declared arm is the entry relation intersected with the table binding, so the union absorbs it and the entry arm above is what remains.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from whichever arm produced the row

type_name (CHARACTER VARYING, nullable)

the node type; keyed with the graph, one row per node type however many arms answered for it

graphitron_order_by_entry

@orderBy on an argument: a marker; the input shape rules are detections. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, argument_name). Foreign key: (graph_name, type_name, field_name, argument_name) references graphql_argument_element (graph_name, type_name, field_name, argument_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

argument_name (CHARACTER VARYING, not null)

the argument name within the owning field

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

graphitron_pivot_entry

The two columns a @pivot application projects an aggregate across, as one row per field however many applications the corpus wrote on it. For example @pivot(on: "category", value: "total") gives one row naming the column that spreads and the column that fills.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

on_column (CHARACTER VARYING, not null)

the on: argument, the discriminator column as written

value_column (CHARACTER VARYING, not null)

the value: argument as written

vocabulary_ref (CHARACTER VARYING, nullable)

names an enum type; author-spelled, no FK

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the applications an author removed from a coordinate that still stands; a coordinate the author removed takes its rows with it through the cascade on the reference below, so the two together are what makes this relation total without a pass emptying it first

graphitron_reference_for_entry

@referenceFor at a field coordinate: an explicit join path for one participant of a multi-table interface or union. Two populations share the relation, and they share it because graphql_field spans both: an output field, where the path runs from the parent’s table to the participant’s, and a @nodeId filter input field, where it runs from the participant’s own table to the decoded target’s. Which of the two a row is about is a fact of the owning coordinate’s type kind and is not restated as a column here, on graphql_field’s own terms: the join decides. Keyed by ordinal per the repeatable rule; the consumption-side keying by participant makes a repeated participant a detection, never a collision. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, ordinal). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

ordinal (INTEGER, not null)

capture-assigned position in document order

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

participant_type_ref (CHARACTER VARYING, not null)

the type argument as written; author-spelled, no FK. It names a participant of the polymorphic type the consuming field returns, and which field that is differs by coordinate: an output field consumes its own named type, while an input field is consumed by every field whose argument surface reaches it, possibly several with different participant sets. That is why a spelling matching no participant is a whole-schema detection over the occurrence paths rather than a check one row can carry, and why no FK could stand here even if the participant set were a relation: at an input coordinate there is no single consumer for it to point at.

graphitron_reference_for_step_entry

An ordered path element of one @referenceFor application: the participant’s complete path from the parent’s table, read as the same element grammar as @reference. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name, ordinal, position). Foreign key: (graph_name, type_name, field_name, ordinal) references graphitron_reference_for_entry (graph_name, type_name, field_name, ordinal).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

ordinal (INTEGER, not null)

the owning @referenceFor application’s ordinal

position (INTEGER, not null)

0-based position within the owning list

table_ref (CHARACTER VARYING, nullable)

the table name as written (may carry a schema qualifier)

table_ref_namespace_part (CHARACTER VARYING, nullable)

left of table_ref’s first period, NULL when no period appeared and the empty string when one appeared with nothing before it; for a table name this namespace is the SQL schema in every dialect jOOQ models. Written by capture, because splitting on a period is a decode and decodes happen there

table_ref_name_part (CHARACTER VARYING, nullable)

right of table_ref’s first period, or the whole value when none; the empty string when a period was written with nothing after it, which joins nothing and is meant to

key_ref (CHARACTER VARYING, nullable)

the constraint name as written (may carry a schema qualifier)

key_ref_namespace_part (CHARACTER VARYING, nullable)

left of key_ref’s first period, NULL when no period appeared and the empty string when one appeared with nothing before it. This qualifier does not name the constraint’s own schema, because a constraint has none: it is scoped to its table, which is why sql_constraint takes its schema through the table. It names which schema’s table holds the constraint, disambiguating a constraint name that occurs in more than one, and the resolver reads it that way. Which namespace that is is dialect-dependent (the schema namespace in Oracle, the table namespace in PostgreSQL), which is why the column is not called a schema part

key_ref_name_part (CHARACTER VARYING, nullable)

right of key_ref’s first period, or the whole value when none; joins sql_constraint.constraint_name narrowed by the source table the walk is standing on, not by this row alone

class_name (CHARACTER VARYING, nullable)

the fully-qualified Java class name as written

method (CHARACTER VARYING, nullable)

the Java method name as written

argmapping (CHARACTER VARYING, nullable)

the argMapping string as written; the pair child is its decode

table_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

table_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

key_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint.table_schema_upper, the schema of the table holding the constraint. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

key_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_constraint’s constraint_name_upper and jooq_name_upper, in that precedence. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_resolved_type_binding

Which catalog table stands for a graph’s type, from either population that can answer: one row per candidate table. For example a type carrying @table(name: "film") is one row naming film, and a type standing for a @routine chain’s result is one row naming the table that chain lands on.

Primary key: (graph_name, type_name, table_source_name, table_schema, table_name). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from whichever arm produced the row

type_name (CHARACTER VARYING, not null)

the type the table stands for

table_source_name (CHARACTER VARYING, not null)

the resolved table’s catalog partition, the first column of the sql_table key this row names

table_schema (CHARACTER VARYING, not null)

the resolved table’s SQL schema; what tells two candidates of one name apart

table_name (CHARACTER VARYING, not null)

the resolved table’s SQL name. With the two columns above this is sql_table’s full key; the table’s other facts are one join away, per the referenced-side discipline sql_referential_constraint states

candidates (INTEGER, not null)

how many distinct tables stand for this type across both arms, this row’s table being one of them; 1 on an unambiguous binding, which is the guard a reader that must pick one applies. Recounted here rather than carried from an arm, for the reason the view comment gives

graphitron_routine_column_mapping_pair_entry

columnMapping pairs bind routine parameters to previous-node columns; a dotted right side is captured as written and rejected by detection.

Primary key: (graph_name, type_name, field_name, ordinal, position). Foreign key: (graph_name, type_name, field_name, ordinal) references graphitron_routine_entry (graph_name, type_name, field_name, ordinal).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

ordinal (INTEGER, not null)

the owning @routine application’s ordinal

position (INTEGER, not null)

0-based position within the owning list

param_name (CHARACTER VARYING, not null)

the Java or routine parameter (left side of the pair)

column_ref (CHARACTER VARYING, not null)

the previous-node column as written; a dotted right side is captured and rejected by detection

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the pairs an author removed from a mapping string that still stands; an application the author removed takes its pairs with it through the reference above

graphitron_routine_entry

@routine on a field: one row per application (repeatable). The table chain interleaves these with graphitron_field_reference_entry rows in written order.

Primary key: (graph_name, type_name, field_name, ordinal). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

ordinal (INTEGER, not null)

capture-assigned position in document order

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

routine_ref (CHARACTER VARYING, not null)

the routine name as written (may carry a schema qualifier)

routine_ref_namespace_part (CHARACTER VARYING, nullable)

left of routine_ref’s first period, NULL when no period appeared and the empty string when one appeared with nothing before it; for a routine name this namespace is the SQL schema in every dialect jOOQ models as one. Written by capture, because splitting on a period is a decode and decodes happen there

routine_ref_name_part (CHARACTER VARYING, nullable)

right of routine_ref’s first period, or the whole value when none; the empty string when a period was written with nothing after it, which joins nothing and is meant to

argmapping (CHARACTER VARYING, nullable)

the argMapping string as written; the pair child is its decode

column_mapping (CHARACTER VARYING, nullable)

the columnMapping string as written; the pair child is its decode

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the applications an author removed from a field that still stands; a field the author removed takes its rows with it through the element reference above

routine_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name, a routine result being a catalog table. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

routine_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name, a routine result being a catalog table. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_scalar_type_entry

The Java constant a scalar type is bound to, as one row per scalar however many @scalarType applications the corpus wrote on it. For example scalar Money @scalarType(scalar: "com.example.Scalars.MONEY") gives one row, split into the class that declares the field and the field itself.

Primary key: (graph_name, type_name). Foreign key: (graph_name, type_name) references graphql_type_element (graph_name, type_name). Foreign key: (graph_name, type_name, source_name, declaration_line, declaration_column) references graphql_type_declaration (graph_name, type_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

source_name (CHARACTER VARYING, not null)

half of the site FK, so NOT NULL; a graphitron application always has an SDL position

declaration_line (INTEGER, not null)

line of the contributing declaration site, keyed with source_name

declaration_column (INTEGER, not null)

column of the contributing declaration site, the site key’s fourth part

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

scalar_ref (CHARACTER VARYING, not null)

the fully-qualified Java constant reference as written

scalar_ref_class_part (CHARACTER VARYING, nullable)

the class half of the reference, split on its last period by ConstantReferenceGrammar; NULL where the reference names no class at all, which is that grammar’s malformed arm rather than a missing class

scalar_ref_field_part (CHARACTER VARYING, nullable)

the field half beside it, on the same split and null in the same case; the pair is stored rather than computed so a reader joining the census probes its key instead of comparing against a concatenation

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the applications an author removed from a coordinate that still stands; a coordinate the author removed takes its rows with it through the cascade on the reference below, so the two together are what makes this relation total without a pass emptying it first

graphitron_service_entry

@service on a field: the external service reference. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. graphitron_ast_service_entry is the replacement, written by the graphitron-ast gatherer from the document the application sits in.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

class_name (CHARACTER VARYING, nullable)

the fully-qualified Java class name as written

method (CHARACTER VARYING, nullable)

the Java method name as written

argmapping (CHARACTER VARYING, nullable)

the argMapping string as written; the pair child is its decode

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the applications an author removed from a coordinate that still stands; a coordinate the author removed takes its rows with it through the cascade on the reference below, so the two together are what makes this relation total without a pass emptying it first

graphitron_spelled_reference_entry

Every table or routine name this graph authors anywhere, once per distinct spelling: the fact underneath @table(name:), a @reference path element’s table, its argument-site and @referenceFor siblings, @mutation’s delete target and @routine(name:). Seven relations carry a spelling of this shape and none of them is the spelling; each is a site that wrote one, keyed by where it was written. Keyed by the spelling itself and by nothing else, on the terms graphitron_spelled_table already argues: the resolution does not vary by site, so a spelling written at five coordinates is one fact and one row here, and a reader asking what a name resolves to never has to say which directive wrote it. That is why this relation carries no site discriminator where graphitron_argmapping_entry carries one; the difference between them is whether the shared question has a per-site answer, and here it does not. Arrives already split, capture writing the namespace half and the name half beside the value, so a reader matches on stored folded columns rather than on a fold computed per candidate row. The namespace half is null on an unqualified spelling, which matches on its name half alone. Written by capture at the moment each site is read, deduplicated there rather than by a reader: the same spelling authored twice is one row, and the primary key is what says so. graphitron_routine_entry spells its own site’s column routine_ref where the other six spell theirs table_ref; the two are the same fact and this relation is where that is settled, a name having only one spelling once there is a relation to hold it. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, spelling). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

spelling (CHARACTER VARYING, not null)

the name exactly as the author wrote it, qualifier and all; with the graph the whole key, one row per distinct spelling however many sites wrote it

namespace_part (CHARACTER VARYING, nullable)

the qualifier half of the spelling as written, null on an unqualified name; a null here is the author having written no qualifier and never a qualifier withheld

name_part (CHARACTER VARYING, not null)

the name half of the spelling as written, which is the whole spelling on an unqualified name

namespace_part_upper (CHARACTER VARYING, nullable)

the case-folded namespace half, computed by the database; the column a catalog match compares against, so neither side of that comparison is a fold evaluated per row

name_part_upper (CHARACTER VARYING, nullable)

the case-folded name half, computed by the database; the leading column of this relation’s index because a catalog match binds it first

graphitron_spelled_table

How a written table name resolves against the catalog census: one row per candidate table, keyed on the spelling itself rather than on any one site that wrote it. For example a schema writing @table(name: "film") and a @reference path element naming film draws one row between them, and a name two schemas both declare draws two rows saying two candidates.

Primary key: (graph_name, spelling, table_source_name, table_schema, table_name). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from the authoring relation

spelling (CHARACTER VARYING, not null)

the table name as written at some site in this graph, qualifier included where one was written; the key this resolution answers for

table_source_name (CHARACTER VARYING, not null)

the resolved table’s catalog partition, the first column of the sql_table key this row names

table_schema (CHARACTER VARYING, not null)

the resolved table’s SQL schema; what tells two candidates of one spelling apart

table_name (CHARACTER VARYING, not null)

the resolved table’s SQL name. With the two columns above this is sql_table’s full key

candidates (INTEGER, not null)

how many tables the spelling resolves to, this row being one of them; 1 on an unambiguous spelling

graphitron_split_query_entry

@splitQuery on a field: a marker. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

graphitron_synthesized_federation_key (view)

Federation’s node-entity rule as a relation: which node types get a @key(fields: "id") nobody wrote, federation needing the entity declaration visible in the emitted SDL and a node carrying a globally-unique id by definition. For example a federation-linked graph whose Film is a node and declares no id key of its own gets one row.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the membership relation

type_name (CHARACTER VARYING, nullable)

the node type the key is synthesized for; keyed with the graph, one row per type that gets one

fields_sdl (CHARACTER VARYING, nullable)

the field-set literal the rule states, always id; a column and not an implied constant, so a reader composing this arm with the authored one projects the same shape from both

resolvable (BOOLEAN, nullable)

the resolvable: the rule states, always true; the synthesized entity is resolvable by construction, an opt-out being something only an author can write

graphitron_table_entry

The table a type is bound to, as one row per type however many @table applications the corpus wrote on it. For example type Film @table(name: "film") gives the row Film reading film, and a bare @table on Actor gives a row carrying no name at all.

Primary key: (graph_name, type_name). Foreign key: (graph_name, type_name) references graphql_type_element (graph_name, type_name). Foreign key: (graph_name, type_name, source_name, declaration_line, declaration_column) references graphql_type_declaration (graph_name, type_name, source_name, source_line, source_column).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the OBJECT, INPUT_OBJECT, or INTERFACE carrying @table

source_name (CHARACTER VARYING, not null)

the applying declaration site (keyed with the line and column below); doubles as the file of the position columns

declaration_line (INTEGER, not null)

line of the applying declaration site

declaration_column (INTEGER, not null)

column of the applying declaration site

source_line (INTEGER, nullable)

the application’s own position

source_column (INTEGER, nullable)

the application’s own column

table_ref (CHARACTER VARYING, nullable)

the name argument as written (may carry a schema qualifier); NULL when omitted, the type-name fallback is a derivation

table_ref_namespace_part (CHARACTER VARYING, nullable)

left of table_ref’s first period, NULL when no period appeared and the empty string when one appeared with nothing before it; for a table name this namespace is the SQL schema in every dialect jOOQ models. Written by capture, because splitting on a period is a decode and decodes happen there

table_ref_name_part (CHARACTER VARYING, nullable)

right of table_ref’s first period, or the whole value when none; the empty string when a period was written with nothing after it, which joins nothing and is meant to

touched_at (TIMESTAMP, not null)

when the reading that derived this row ran. The reading finishes by deleting this graph’s rows carrying a different instant, which are the applications an author removed from a coordinate that still stands; a coordinate the author removed takes its rows with it through the cascade on the reference below, so the two together are what makes this relation total without a pass emptying it first

type_name_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table.table_name_upper where @table(name:) was omitted and the type name stands in as a table spelling. Generated, so nothing writes it and nothing can. A GraphQL type name is folded here for that crossing alone; nothing compares one to another case-insensitively

table_ref_namespace_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

table_ref_name_part_upper (CHARACTER VARYING, nullable)

the upper-cased form of the column beside it, for the case-insensitive match against sql_table’s schema and name. Generated, so nothing writes it and nothing can. It exists because an authored spelling meets a catalog name here, which is the only reason anything in this schema is folded

graphitron_tabletype

A graph type that resolved to exactly one catalog table: one row per type whose @table spelling the catalog answered unambiguously. For example a Film type over @table(name: "film") draws a row naming the film table in the schema that declares it, while a spelling two schemas both declare draws none and is found by anti-join against the entry the author wrote.

Primary key: (graph_name, type_name). Foreign key: (graph_name, type_name, named_type_kind) references graphql_type (graph_name, type_name, kind). Foreign key: (table_source_name, table_schema, table_name) references sql_table (source_name, table_schema, table_name). Check: "NAMED_TYPE_KIND" IN('OBJECT', 'INTERFACE').

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the graph type the binding is for, anchored by graphql_type through its kind. With the graph this is the whole key, and that is the resolution’s own claim: a type resolving to two tables is not a row here, so the key is what says the binding is settled rather than a count beside it saying how settled

named_type_kind (CHARACTER VARYING, not null)

which of the six named type kinds the bound type is, OBJECT or INTERFACE, carried here so the reference into graphql_type can name the pair and the store can refuse a binding on a kind that cannot carry one. Not a fact of its own and not a second answer to what kind a type is: the foreign key is what makes it the same answer, and a row disagreeing with the type relation cannot be written. A union, a scalar or an enum with a @table on it resolves to no row here at all, which puts the author’s mistake where every other unresolved application already sits, the anti-join against graphitron_table_entry

table_source_name (CHARACTER VARYING, not null)

the codegen source the table came from, the first of the three columns naming one catalog table

table_schema (CHARACTER VARYING, not null)

the table’s schema as the catalog spells it

table_name (CHARACTER VARYING, not null)

the table’s own name as the catalog spells it; with the two columns above, a foreign key into sql_table, which is what a resolved binding can carry and an unresolved one cannot. The first crossing in this schema from a graph-keyed relation into the source-keyed catalog, and it cascades on delete, which is what makes the crossing sound rather than merely permitted: a catalog source is shared between graphs and recrawled whole, so without the cascade a source could not be recrawled while any graph still named its tables. With it, a recrawled source takes the bindings that named it, and the graphs concerned rebuild theirs the next time they capture. That is the honest outcome of the two available: a reader finds no binding rather than one naming a table the catalog no longer has, which is what the relations this replaces leave behind because they carry no key here at all

graphitron_tenant_fan_out_entry

@tenantFanOut on a field: a marker; its many conflict arms are detections. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, type_name, field_name). Foreign key: (graph_name, type_name, field_name) references graphql_field_element (graph_name, type_name, field_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the GraphQL type this row is about

field_name (CHARACTER VARYING, not null)

the field name within the owning type

source_name (CHARACTER VARYING, nullable)

the SDL file the row was captured from

source_line (INTEGER, nullable)

source line, 1-based per the graphql-java convention

source_column (INTEGER, nullable)

source column, 1-based per the graphql-java convention

graphitron_type

Every type the generator works with, the author’s and the ones macro expansion minted, under one key: one row per type name in the graph. For example a Connection type the connection macro minted sits here beside the type whose field carried the macro, at the same grain and answering the same questions. Total by construction, so a consumer joins this rather than left-joining it.

Primary key: (graph_name, type_name). Foreign key: (graph_name, coordinate) references graphitron_element (graph_name, coordinate). Check: "KIND" IN('OBJECT', 'INTERFACE', 'UNION', 'ENUM', 'INPUT_OBJECT', 'SCALAR').

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, carried from whichever arm supplied the row; the leading key dimension that keeps one workspace’s graphs apart

type_name (CHARACTER VARYING, not null)

the type’s name; with the graph, the grain, and one row per name however many declaration sites or minting sites contributed to it

coordinate (CHARACTER VARYING, not null)

this row as graphitron_element spells it, which for a type is the type name beside it; the join down from the supertype, so a reader holding a coordinate reaches the parts here rather than splitting the spelling

kind (CHARACTER VARYING, not null)

the type’s kind in graphql_type’s vocabulary, carried across rather than restated so a reader joins one column whichever arm supplied its row

description (CHARACTER VARYING, nullable)

the docstring, authored on an authored type and written by the macro on a minted one; display material, never a dimension

graphitron_type_authored (view)

One of the two sets graphitron_type is the union of: a type an author declared, carried across whole. For example type Film { title: String } is the row Film here, with the kind and docstring the author wrote.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the transcription

type_name (CHARACTER VARYING, nullable)

the type’s name, as the author spelled it

coordinate (CHARACTER VARYING, nullable)

the same name again, a named type’s coordinate being its name; spelled here so the join up to graphitron_element is a column rather than a concatenation a reader has to trust

kind (CHARACTER VARYING, nullable)

the type’s kind in graphql_type’s vocabulary, carried rather than restated

description (CHARACTER VARYING, nullable)

the docstring the author wrote, or nothing

graphitron_type_minted (view)

One of the two sets graphitron_type is the union of: a type macro expansion adds, filling a name no author took. For example QueryFilmsConnection where the author wrote only films: [Film!]! @asConnection.

Columns
graph_name (CHARACTER VARYING, nullable)

the owning graph’s partition, carried from the carrier

type_name (CHARACTER VARYING, nullable)

the minted type’s name: a carrier’s connection, its edge, or the page info every carrier states

coordinate (CHARACTER VARYING, nullable)

the same name again, on graphitron_type_authored.coordinate’s terms

kind (CHARACTER VARYING, nullable)

always OBJECT, the three arms minting nothing else

description (CHARACTER VARYING, nullable)

the docstring the macro writes, which is a property of the arm rather than of the carrier; identical across the carriers that state one shared type, which is what lets the distinct collapse them

graphitron_type_minted_candidate (view)

What the arms of the type mint state before any disagreement between them is resolved. For example two carriers landing on one connection name are two rows here and none in graphitron_type_minted.

Columns
graph_name (CHARACTER VARYING, nullable)

the same fact as graphitron_type_minted.graph_name, before the conflict and stand-down filters have withheld anything

type_name (CHARACTER VARYING, nullable)

the same fact as graphitron_type_minted.type_name, before the conflict and stand-down filters have withheld anything

coordinate (CHARACTER VARYING, nullable)

the same fact as graphitron_type_minted.coordinate, before the conflict and stand-down filters have withheld anything

kind (CHARACTER VARYING, nullable)

the same fact as graphitron_type_minted.kind, before the conflict and stand-down filters have withheld anything

description (CHARACTER VARYING, nullable)

the same fact as graphitron_type_minted.description, before the conflict and stand-down filters have withheld anything

graphitron_undecoded_argument_entry

The tolerant-decode overflow: a graphitron application argument whose literal does not fit the declared shape decodes to NULL in its typed column and quarantines its raw text here, so the authored value is never lost and the malformed-literal detection has its row. Empty while assembly runs upstream. Deprecated: written by the decode the incumbent walk drives, which goes when the decode reads the entry stratum instead of a registry. Nothing has been written to replace it yet.

Primary key: (graph_name, source_name, source_line, source_column, directive_name, directive_argument_name). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the owning graph’s partition, anchored by store_graph; the leading key dimension that keeps one workspace’s graphs apart

source_name (CHARACTER VARYING, not null)

the application’s position identifies the row; authored applications always have one

source_line (INTEGER, not null)

line of the application carrying the undecodable literal

source_column (INTEGER, not null)

column of the application carrying the undecodable literal

directive_name (CHARACTER VARYING, not null)

the applied or defined directive name, without the leading @

directive_argument_name (CHARACTER VARYING, not null)

the definition’s formal argument this value binds

value_sdl (CHARACTER VARYING, not null)

the literal as written, rendered from the AST