Re: parse partition strategy string in gram.y
От | Japin Li |
---|---|
Тема | Re: parse partition strategy string in gram.y |
Дата | |
Msg-id | MEYP282MB1669D218D1BFFE0F1A811A99B62D9@MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM обсуждение исходный текст |
Ответ на | parse partition strategy string in gram.y (Alvaro Herrera <alvherre@alvh.no-ip.org>) |
Ответы |
Re: parse partition strategy string in gram.y
|
Список | pgsql-hackers |
On Fri, 21 Oct 2022 at 17:32, Alvaro Herrera <alvherre@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.
В списке pgsql-hackers по дате отправления: