Re: pointless check in RelationBuildPartitionDesc

Amit Langote <langote_amit_f8@lab.ntt.co.jp>

From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Michael Paquier <michael@paquier.xyz>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2018-09-05T00:53:15Z
Lists: pgsql-hackers
On 2018/09/05 1:50, Alvaro Herrera wrote:
> Proposed patch.  Checking isnull in a elog(ERROR) is important, because
> the column is not marked NOT NULL.  This is not true for other columns
> where we simply do Assert(!isnull).

Looks good.  Thanks for taking care of other sites as well.

@@ -14705,7 +14705,9 @@ ATExecDetachPartition(Relation rel, RangeVar *name)

 	(void) SysCacheGetAttr(RELOID, tuple, Anum_pg_class_relpartbound,
 						   &isnull);
-	Assert(!isnull);
+	if (isnull)
+		elog(ERROR, "null relpartbound for relation %u",
+			 RelationGetRelid(partRel));

In retrospect, I'm not sure why this piece of code is here at all; maybe
just remove the SycCacheGetAttr and Assert?

Regards,
Amit



Commits

  1. Simplify partitioned table creation vs. relcache