On Fri, 21 Oct 2022 at 17:32, Alvaro Herrera <alvhe...@alvh.no-ip.org> wrote:
> Hello
>
> I've had this patch sitting in a local branch for way too long.  It's a
> trivial thing but for some reason it bothered me: we let the partition 
> strategy flow into the backend as a string and only parse it into the
> catalog 1-char version quite late.
>
> This patch makes gram.y responsible for parsing it and passing it down
> as a value from a new enum, which looks more neat.  Because it's an
> enum, some "default:" cases can be removed in a couple of places.  I
> also added a new elog() in case the catalog contents becomes broken.

Does there an error about forget the LIST partition?

+/*
+ * Parse a user-supplied partition strategy string into parse node
+ * PartitionStrategy representation, or die trying.
+ */
+static PartitionStrategy
+parsePartitionStrategy(char *strategy)
+{
+       if (pg_strcasecmp(strategy, "range") == 0)       <-- it should be list
+               return PARTITION_STRATEGY_RANGE;         <-- 
PARTITION_STRATEGY_LIST
+       else if (pg_strcasecmp(strategy, "hash") == 0)
+               return PARTITION_STRATEGY_HASH;
+       else if (pg_strcasecmp(strategy, "range") == 0)
+               return PARTITION_STRATEGY_RANGE;
+       ereport(ERROR,
+                       (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+                        errmsg("unrecognized partitioning strategy \"%s\"",
+                                       strategy)));
+}
+


-- 
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.


Reply via email to