Prefix: javac_.

What the JDK compiler reported when the emitted sources were last compiled: one row per diagnostic, in the compiler’s own words. Each compile round replaces the previous one wholesale, so the family always describes the latest round and nothing older.

Where to start

javac_diagnostic

One javac diagnostic from the latest compile round over a graph’s emitted sources; the round replaces the graph’s rows wholesale, so the relation’s content contract is exactly the published round.

How this family meets the others

Declared key edges
store_

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

Why the name is right

What the JDK compiler reports about the emitted sources, written in javax.tools.Diagnostic’s terms.

javac_diagnostic

One javac diagnostic from the latest compile round over a graph’s emitted sources; the round replaces the graph’s rows wholesale, so the relation’s content contract is exactly the published round. Graph-keyed and graph-private: a sibling graph’s compile errors are its internals, not its schema contract, so cross-graph reads never range over this family, and rows exist only between one of the graph’s compile rounds and its next generation (capture clears the graph’s own partition with the rest of its ownership scope). Two key columns transcribe absence as javac’s own sentinels rather than NULL, a primary-key column admitting no NULL: readers compare against the sentinel values, never IS NULL.

Primary key: (graph_name, file, line_number, column_number, ordinal). Foreign key: (graph_name) references store_graph (graph_name).

Columns
graph_name (CHARACTER VARYING, not null)

the graph whose emitted sources the round compiled; the partition dimension, anchored by store_graph and the scope of every statement the writer issues

file (CHARACTER VARYING, not null)

path of the generated .java javac anchored the diagnostic on, as javac named it and in java_file.file’s form, or the "(no source)" sentinel where javac reported no source; never NULL, this column being part of the key

line_number (BIGINT, not null)

javac’s 1-based line, or -1 (javax.tools.Diagnostic.NOPOS) where javac reported no position; a sentinel, never NULL, this column being part of the key

column_number (BIGINT, not null)

javac’s 1-based column, on the same NOPOS sentinel terms as line_number

ordinal (INTEGER, not null)

tie-breaker assigned in round order per (graph_name, file, line_number, column_number), so repeated identical diagnostics at one position keep the key natural rather than decoration on a surrogate counter

kind (CHARACTER VARYING, not null)

javax.tools.Diagnostic.Kind.name(). An open column: a CHECK enumerating an externally owned taxonomy would be a hand-maintained copy of javac’s enum, the closed-CHECK convention covering only taxonomies the model owns

code (CHARACTER VARYING, nullable)

Diagnostic.getCode(), the compiler’s stable diagnostic identifier; NULL exactly where javac returns none, and the typed dimension a display list never had

message (CHARACTER VARYING, not null)

javac’s own rendered text (root locale); a transcribed fact because the oracle authored it, but display material: never a dimension, never an agreement anchor