F004: mark tables that lack PK or UK with NOT NULL. The same for UNLOGGED tables
Goal
The problem: if a table has no PK and no UKs with NOT NULL, pg_repack won't work with it. In general, the repacking of such a table is problematic. So we need to mark such tables explicitly, to warn the user that such tables need special attention.
The same problem is with UNLOGGED tables (see https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-UNLOGGED).
TODO / How to implement
Check tables definitions If PK and UKs with NOT NULL are not present, mark such table with some sign and notify what this sign means:
Tables marked with .. have neither PK nor UKs with NOT NULL. It means that applying pg_repack at table level is not possible (however, you can still apply it to such tables' indexes). Reducing the level of bloat in such tables is problematic, special attention is needed. Consider adding keys first.
Do the same for UNLOGGED tables.
Acceptance criteria
As a user, I can easily identify "problematic" tables that cannot be processed by pg_repack, I can exclude them from the maintenance list and process separately. The same approach is for UNLOGGED tables -- they are also marked and I can exclude them easily.