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.klaver@xxxxxxxxxxx -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general