Re: behaviour change - default_tablesapce + partition table

From: Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>
To: Rushabh Lathia <rushabh(dot)lathia(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Subject: Re: behaviour change - default_tablesapce + partition table
Date: 2019-05-17 05:00:22
Message-ID: 0a124c74-010e-17de-da37-eda3bfb5e680@lab.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Agree that this behavior change seems unintentional.

On 2019/05/17 12:40, Rushabh Lathia wrote:
> Looking at the commit changes, it seems like at condition when no other
> tablespace is specified, we default the tablespace to the parent partitioned
> table's.
>
> else if (stmt->partbound)
> {
> /*
> * For partitions, when no other tablespace is specified, we default
> * the tablespace to the parent partitioned table's.
> */
> Assert(list_length(inheritOids) == 1);
> tablespaceId = get_rel_tablespace(linitial_oid(inheritOids));
> }
>
> But here it doesn't consider the default_tablespace if the parent
> partitioned
> tablespace is an InvalidOid (which was the care before this commit).
>
> PFA patch to fix the same.

+
+ if (!OidIsValid(tablespaceId))
+ tablespaceId = GetDefaultTablespace(stmt->relation->relpersistence,
partitioned);
}
else
tablespaceId = GetDefaultTablespace(stmt->relation->relpersistence,

Why not change it like this instead:

@@ -681,7 +681,8 @@ DefineRelation(CreateStmt *stmt, char relkind, Oid
ownerId,
Assert(list_length(inheritOids) == 1);
tablespaceId = get_rel_tablespace(linitial_oid(inheritOids));
}
- else
+
+ if (!OidIsValid(tablespaceId))
tablespaceId = GetDefaultTablespace(stmt->relation->relpersistence,
partitioned);

Thanks,
Amit

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kyotaro HORIGUCHI 2019-05-17 05:27:22 Re: shared-memory based stats collector
Previous Message Michael Paquier 2019-05-17 03:50:12 Re: PostgreSQL 12: Feature Highlights