Limits of table partitioning (in PostgreSQL)
100k partitions is an awful lot.  I would not try that without doing some serious testing first.  Include in the testing things like your backup scripts, and pg_upgrade runs (you don't want to design a database schema that cannot be feasibly upgraded to the next major version). Or just don't do it.

You would probably get most of the advantages of partitions without resorting to one partition per case.  You could use hash partitioning (new in v11) or range partitioning, for example, to have a couple hundred partitions with a few hundred cases per partition.


  5% of all queries go to a dozen or maybe 200 cases.


How does that get expressed?  A app-generated in-list of literal case_id? A join to a parent case table with a where clause to identify the dozen to 200?