Dit komt omdat elke nieuwe machtiging de nspacl
. verlengt kolom van de pg_namespace
vermelding voor dit schema.
Tabelblokken in PostgreSQL hebben nu een grootte van 8 kB en elke tabelrij moet in één blok passen, vandaar de limiet.
In normale tabellen zou dat geen probleem zijn, omdat PostgreSQL grote velden van variabele lengte "out of line" opslaat in zogenaamde TOAST tafels. Maar er zijn geen TOAST-tabellen voor systeemcatalogi, dus deze vluchtroute is gesloten.
Ik zou zeggen dat je tegen deze limiet aanloopt vanwege een slecht ontwerp. In plaats van elk van de rollen afzonderlijk toegang te verlenen tot het schema, gebruikt u een hiërarchie van rollen, wijst u uw vele rollen toe aan groepen en verleent u schemamachtigingen op groepsniveau.