Re: Clarify "allow_system_table_mods"

From: Melvin Davidson <melvin6925(at)gmail(dot)com>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Clarify "allow_system_table_mods"
Date: 2016-04-25 22:47:22
Message-ID: CANu8FiwJ7YKyboFkh3s1z5aVFySCRHxTiGsknR9xE6xOWMeoWw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Apr 25, 2016 at 4:26 PM, Melvin Davidson <melvin6925(at)gmail(dot)com>
wrote:

> >my previous answer did not make sense as postgresql.conf is set up by
> initdb
> Yeah, that kind of puzzles me too.
>
> >-O allow_system_table_mods = on
> Thanks, I'll give that a try and create a new cluster, then get back to
> you afterwards.
>
> On Mon, Apr 25, 2016 at 4:05 PM, Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
> wrote:
>
>> On 04/25/2016 09:30 AM, Melvin Davidson wrote:
>>
>>> I need clarification on allow_system_table_mods parameter
>>> Per the documentation:
>>> *Allows modification of the structure of system tables.* This is used by
>>> initdb. This parameter can only be set at server start.
>>>
>>
>> A millisecond after hitting enter I realized my previous answer did not
>> make sense as postgresql.conf is set up by initdb. Then I found this:
>>
>> http://www.postgresql.org/docs/9.2/static/runtime-config-short.html
>>
>> -O allow_system_table_mods = on
>>
>> So use that option when doing initdb?
>>
>>
>>> However, attempting to modify pg_class to add another column fails with
>>> "STATUS_ACCESS_VIOLATION" as below.
>>> So either only certain system catalogs may be changed, or only certain
>>> types of structure changes are allowed.
>>> eg: add indexes, triggers
>>>
>>> Windows 10
>>> PostgreSQL 9.2.15, compiled by Visual C++ build 1600, 32-bit
>>>
>>> Current user is postgres
>>> allow_system_table_mods = on
>>>
>>> ALTER TABLE pg_catalog.pg_class ADD COLUMN relcreated timestamp DEFAULT
>>> current_timestamp;
>>>
>>> Fails with:
>>>
>>> 2016-04-25 12:08:00 EDT STATEMENT: ALTER TABLE pg_catalog.pgclass ADD
>>> COLUMN relcreated timestamp DEFAULT current_timestamp;
>>> 2016-04-25 12:08:14 EDT LOG: server process (PID 7760) was terminated
>>> by exception 0xC0000005
>>> 2016-04-25 12:08:14 EDT DETAIL: Failed process was running: ALTER TABLE
>>> pg_catalog.pg_class ADD COLUMN relcreated timestamp DEFAULT
>>> current_timestamp;
>>> 2016-04-25 12:08:14 EDT HINT: See C include file "ntstatus.h" for a
>>> description of the hexadecimal value.
>>> 2016-04-25 12:08:14 EDT LOG: terminating any other active server
>>> processes
>>>
>>> From ntstatus.h
>>> *#define STATUS_ACCESS_VIOLATION ((NTSTATUS)0xC0000005L) //
>>> winnt*
>>>
>>> --
>>> *Melvin Davidson*
>>> I reserve the right to fantasize. Whether or not you
>>> wish to share my fantasy is entirely up to you.
>>>
>>
>>
>> --
>> Adrian Klaver
>> adrian(dot)klaver(at)aklaver(dot)com
>>
>
> >my previous answer did not make sense as postgresql.conf is set up by
> initdb
> Yeah, that kind of puzzles me too.
>
> >-O allow_system_table_mods = on
> Thanks, I'll give that a try and create a new cluster, then get back to
> you afterwards.
>
> *Melvin Davidson*
> I reserve the right to fantasize. Whether or not you
> wish to share my fantasy is entirely up to you.
>

*ok, so I triedE:\PostgresDB\bin>initdb -U postgres -O -D E:\PGtest\dataand
that failed with:initdb: illegal option -- OTry "initdb --help" for more
information.*

*which confirmed -O is _not_ a valid option.*

*So it's back to square one (and apparently catch 22) of
allow_system_table_mods :(*
--
*Melvin Davidson*
I reserve the right to fantasize. Whether or not you
wish to share my fantasy is entirely up to you.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Sameer Kumar 2016-04-25 23:32:20 Re: Error: no connection to the server
Previous Message Melvin Davidson 2016-04-25 20:26:20 Re: Clarify "allow_system_table_mods"