Node and map loading are slow on larger directories (reported around 20,000 nodes). In ListNodes, the node/IATA join is grouped and aggregated before the final timestamp sort and page limit.
I would like to test a focused query change that selects the filtered node page first and enriches only those rows. It should preserve all filters, IATA ordering, observer identity, neighbour counts and optional neighbour IDs. No API or ingestion changes are planned for this fix.
Validation will include a synthetic 20,000-node PostgreSQL dataset on a Raspberry Pi 5, before/after EXPLAIN ANALYZE, response equivalence for filters/cursors and normal Go checks. This is an AI-assisted investigation; code will be reviewed before a contribution is submitted.
Node and map loading are slow on larger directories (reported around 20,000 nodes). In
ListNodes, the node/IATA join is grouped and aggregated before the final timestamp sort and page limit.I would like to test a focused query change that selects the filtered node page first and enriches only those rows. It should preserve all filters, IATA ordering, observer identity, neighbour counts and optional neighbour IDs. No API or ingestion changes are planned for this fix.
Validation will include a synthetic 20,000-node PostgreSQL dataset on a Raspberry Pi 5, before/after EXPLAIN ANALYZE, response equivalence for filters/cursors and normal Go checks. This is an AI-assisted investigation; code will be reviewed before a contribution is submitted.