- 论坛徽章:
- 0
|
急问:
我在GP数据库做一个select的操作,提示如下错误:ERROR: invalid string enlargement request size: -4 (stringinfo.c:281)
对应的表是一个分区表,同时做了一个测试,新建一个相同的表结构(但是不带分区),导入数据,做select操作,是没有问题的
查了一下postgresql的source文件的stringinfo.c文件,发现是调用enlargeStringInfo(StringInfo str, int needed)这个函数的时候
needed传值变成了负值,各位高手,请问这是什么原因?如何解决?
下附的是函数enlargeStringInfo的具体信息
void
00253 enlargeStringInfo(StringInfo str, int needed)
00254 {
00255 int newlen;
00256
00257 /*
00258 * Guard against out-of-range "needed" values. Without this, we can get
00259 * an overflow or infinite loop in the following.
00260 */
00261 if (needed < 0) /* should not happen */
00262 elog(ERROR, "invalid string enlargement request size: %d", needed);
00263 if (((Size) needed) >= (MaxAllocSize - (Size) str->len))
00264 ereport(ERROR,
00265 (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
00266 errmsg("out of memory"),
00267 errdetail("Cannot enlarge string buffer containing %d bytes by %d more bytes.",
00268 str->len, needed)));
00269 |
|