Re: [bug] Table not have typarray when created by single user mode - Mailing list pgsql-bugs

From Tom Lane
Subject Re: [bug] Table not have typarray when created by single user mode
Date
Msg-id 32412.1586789476@sss.pgh.pa.us
Whole thread Raw
In response to [bug] Table not have typarray when created by single user mode  (wenjing <wjzeng2012@gmail.com>)
Responses Re: [bug] Table not have typarray when created by single user mode
List pgsql-bugs
wenjing <wjzeng2012@gmail.com> writes:
> Use single user mode (t_create_by_standalone) typarray = 0, but use psql t_create_by_psql typarray has oid.

That's because of this 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 ||
                              relkind == RELKIND_PARTITIONED_TABLE))
        new_array_oid = AssignTypeArrayOid();

Admittedly, "!IsUnderPostmaster" is not exactly the same thing as "running
during initdb", but I do not consider this a bug.  You generally should
not be using single-user mode for anything except disaster recovery.

            regards, tom lane



pgsql-bugs by date:

Previous
From: Fabien COELHO
Date:
Subject: Re: pg_isready bug
Next
From: PG Bug reporting form
Date:
Subject: BUG #16358: formas web site sql