pub fn build_inputs(
object_types: &HashMap<String, TableObjectType>,
relationship_fields: &HashMap<String, Vec<RelationshipField>>,
) -> (Vec<InputObject>, HashSet<String>)Expand description
Every input type the boolean expressions need, ready to register, and every scalar those inputs name.
The second half is not a convenience. A comparison input names scalars its
own table may not have a column of – a cast from a geometry names
geography, a raster comparison names geometry – and a type the schema
mentions and never registers makes the whole schema unbuildable. Reading
the names off what was actually generated is the only way that cannot drift
from the truth; twice it was patched case by case, and twice it broke again
one operator later.
The inputs come back with the comparisons first and the table expressions
after, though registration order does not matter to the schema builder –
the types refer to each other by name and are resolved once the whole set
is present, which is also what makes a recursive _and: [author_bool_exp!]
expressible at all.