parquet_debug_table_drop_name_index Interface

interface
public module subroutine parquet_debug_table_drop_name_index(table, had_index)

Arguments

Type IntentOptional Attributes Name
type(parquet_table), intent(in) :: table

the table whose index to drop.

logical, intent(out) :: had_index

.true. when an index was present.

Description

TEST-ONLY -- deallocates this table's name index, so the next lookup has to take cache_find's linear-scan fallback.

This is a debug hook, not API, public for the same reason parquet_debug_table_set_inflight is: the index lives on parquet_table_cache, whose components are private to this module, so nothing outside can reach it. It is excluded from README.md's API overview and no library code calls it.

It exists because that fallback is a SAFETY NET with no route to it through the public API: every mutation maintains the index eagerly, so a correct library never reaches the scan, and it was measured executing zero times across the whole suite and every error scenario. What it protects against is a future mutation that forgets to maintain the index -- which would otherwise turn into wrong-column answers rather than a slower lookup. Untested, the net could rot away and nothing would say so.

had_index is not optional on purpose: dropping the index is invisible from outside, so a test that did not check it would pass just as happily against a hook that did nothing. It reports whether an index was there to drop, which makes the before/after states assertable -- .true. on the first call, .false. on a second one.