Re: Add new COPY option REJECT_LIMIT
От | jian he |
---|---|
Тема | Re: Add new COPY option REJECT_LIMIT |
Дата | |
Msg-id | CACJufxEh5e_5BOmP7RAHcuV=e32FpzBMxJ8-W-OFXm-zkdY4yw@mail.gmail.com обсуждение исходный текст |
Ответ на | Add new COPY option REJECT_LIMIT (torikoshia <torikoshia@oss.nttdata.com>) |
Список | pgsql-hackers |
+/* + * Extract REJECT_LIMIT value from a DefElem. + */ +static int64 +defGetCopyRejectLimitOptions(DefElem *def) +{ + int64 reject_limit; + + if (def->arg == NULL) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("REJECT_LIMIT requires a positive integer"))); + + if (nodeTag(def->arg) == T_Integer) + { + reject_limit = defGetInt64(def); + if (reject_limit <= 0) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("REJECT_LIMIT (%lld) must be greater than zero", + (long long) reject_limit))); + } + else + { + char *sval = defGetString(def); + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("REJECT_LIMIT (%s) must be a positive integer", + sval))); + } + + return reject_limit; +} there will be an integer overflow issue? Can you try the following? static int64 defGetCopyRejectLimitOptions(DefElem *def) { int64 reject_limit; reject_limit = defGetInt64(def); if (reject_limit <= 0) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("REJECT_LIMIT (%lld) must be greater than zero", (long long) reject_limit))); } REJECT_LIMIT <replaceable class="parameter">integer</replaceable> i think, you want REJECT_LIMIT be bigint? so here it should be REJECT_LIMIT <replaceable class="parameter">bigint</replaceable>\ ?
В списке pgsql-hackers по дате отправления: