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.
- graphitron_field_reference_step_hop (
graphitron_spellings against thesql_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 thesql_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 thesql_census) -
An argMapping path segment meets column names case-insensitively along the binding walk.
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).
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" <> ''.
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.
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).
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.
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).
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).
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.
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).
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.
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).
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).
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).
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:).
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.
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).
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.
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).
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).
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).
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).
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.
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').
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').
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).
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.
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.
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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.
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.
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).
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.
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.
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.
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.
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).
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.
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).
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).
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').
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).
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').
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.
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.
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.
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.
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).
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.
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).
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).
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).
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.
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).
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).
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).
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).
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).
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.
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).
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').
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
graphitron_field_chain_link
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).
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
graphitron_field_chain_link_reading (view)
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.
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
graphitron_field_chain_link_resolution (view)
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.
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
graphitron_field_chain_link_resolution_keyed
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".
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
graphitron_field_chain_link_resolution_keyless
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".
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
graphitron_field_chain_link_resolution_open
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".
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
graphitron_field_chain_link_resolution_rule (view)
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.
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).
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.
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).
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).
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).
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.
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.
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').
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).
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).
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).
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.
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').
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').
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.
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').
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').
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).
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).
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.
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).
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
graphitron_field_table_link
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').
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
graphitron_field_table_link_rule (view)
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.
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).
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.
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).
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.
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).
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.
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.
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').
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').
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).
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.
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).
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').
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.
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.
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).
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).
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).
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.
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).
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.
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).
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.
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).
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.
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).
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.
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').
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).
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).
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.
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).
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).
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.
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.
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).
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.
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').
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).
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.
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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).
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.
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).
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').
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).
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').
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.
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.
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.
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).
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