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.