Re: BUG #12670: Can't create postgis extension in single-user mode - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #12670: Can't create postgis extension in single-user mode
Date
Msg-id 29161.1422337002@sss.pgh.pa.us
Whole thread Raw
In response to BUG #12670: Can't create postgis extension in single-user mode  (warrior2031@mail.ru)
Responses Re: BUG #12670: Can't create postgis extension in single-user mode  (Andrew Gierth <andrew@tao11.riddles.org.uk>)
List pgsql-bugs
warrior2031@mail.ru writes:
> [ Can't create postgis extension in single-user mode ]

Why in the world would you think that's a good thing to do?

Single-user mode is a barely-documented disaster recovery aid.
It's not meant for routine activity.  There are a *whole lot*
of behaviors you want that are turned off in single-user mode.

The specific reason why this doesn't work is this bit in
heap_create_with_catalog:

    /*
     * Decide whether to create an array type over the relation's rowtype. We
     * do not create any array types for system catalogs (ie, those made
     * during initdb). We do not create them where the use of a relation as
     * such is an implementation detail: toast tables, sequences and indexes.
     */
    if (IsUnderPostmaster && (relkind == RELKIND_RELATION ||
                              relkind == RELKIND_VIEW ||
                              relkind == RELKIND_MATVIEW ||
                              relkind == RELKIND_FOREIGN_TABLE ||
                              relkind == RELKIND_COMPOSITE_TYPE))
        new_array_oid = AssignTypeArrayOid();

We could possibly develop some other mechanism for detecting whether
we're within the initdb sequence, but I can't get very excited about
treating this as a bug.  Single-user mode hasn't been considered a
standard user environment since maybe the early 90s.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Milan Hronský
Date:
Subject: PostgreSQL for Odroid
Next
From: Tom Lane
Date:
Subject: Re: BUG #12664: numeric_recv does not accept large values