Andreas Joseph Krogh <andreas@visena.com> writes:
> P�� s��ndag 10. januar 2016 kl. 16:40:23, skrev Tom Lane <tgl@sss.pgh.pa.us
> <mailto:tgl@sss.pgh.pa.us>>:
> Andreas Joseph Krogh <andreas@visena.com> writes:
>>> Then I have to execute the command:
>>> alter table pg_largeobject set tablespace some_tablespace;
> Why do you think you need single-user mode for that?
> Because of this?
> ERROR: permission denied: "pg_largeobject" is a system catalog
What that means is that you need allow_system_table_mods to be set.
It's a postmaster-start-time GUC, but still just a GUC.
So, assuming that you want to use psql to enter your commands,
you'd do something like this:
1. Add allow_system_table_mods=on to postgresql.conf.
2. Restart postmaster.
3. Issue ALTER TABLE commands.
4. Remove allow_system_table_mods setting from postgresql.conf.
5. Restart postmaster.
Prudence would suggest that you also alter pg_hba.conf to prevent
anyone but yourself from connecting to the postmaster while it's
in this state. But that's optional.
regards, tom lane
Aha, thanks!
pg_largeobject being a system-relation does quite make sense to me, but that's another discussion. I know there has been some discussions in the past about making it a non system-relation but it never got anywhere AFAIK.
--
Andreas Joseph Krogh
CTO / Partner - Visena AS
Mobile: +47 909 56 963