Joining informational tables

Informational tables in Smile public schema are tables which decode certain other columns within the schema. For example, status and type columns can be expanded using informational tables.

Informational tables are identified with the information symbol:

Because these tables are informational and are not part of the Smile application itself, upgrades and changes to the Smile application may result in references to values which do not exist in an informational table.

For this reason, if you use the informational tables in your queries, then you should use left-joins to ensure that rows will not be removed from your result set if an information table is incomplete.

For example, to select the XDR type from the XDR table, you should not use:

SELECT caller, name FROM xdr JOIN xdr_type USING (xdr_type);

but rather:

SELECT caller, name FROM xdr LEFT JOIN xdr_type USING (xdr_type);