When it comes to Postgres extensions for columnar storage, I like how Citus [1] handles the more general problem of columnar tables instead of focusing just on "hypertables" which necessarily must have a time column as primary key.
This works fine when you have partitioned tables over time, and the current partition is row-oriented, while the historic read-only partitions are columnar.
[1] https://github.com/citusdata/citus?tab=readme-ov-file#creati...