diff --git a/src/backend/access/gin/ginpostinglist.c b/src/backend/access/gin/ginpostinglist.c index 8b166c738c7..c614c646c2b 100644 --- a/src/backend/access/gin/ginpostinglist.c +++ b/src/backend/access/gin/ginpostinglist.c @@ -335,8 +335,17 @@ ginPostingListDecodeAllSegments(GinPostingList *segment, int len, int *ndecoded_ } /* copy the first item */ + /* + * Keep this commented out. + * See comments in itemptr_to_uint64(). + * + * FIXME: Correct like this in other files (e.g., ginpostinglist.c and gist.c) + * if we can reproduce the cases. + */ +#if 0 Assert(OffsetNumberIsValid(ItemPointerGetOffsetNumber(&segment->first))); - Assert(ndecoded == 0 || ginCompareItemPointers(&segment->first, &result[ndecoded - 1]) > 0); +#endif + Assert(ndecoded == 0 || ginCompareItemPointers(&segment->first, &result[ndecoded - 1]) > 0); result[ndecoded] = segment->first; ndecoded++; diff --git a/src/test/regress/expected/gin.out b/src/test/regress/expected/gin.out index 65730adcfe0..8454ee25bb8 100644 --- a/src/test/regress/expected/gin.out +++ b/src/test/regress/expected/gin.out @@ -310,3 +310,12 @@ select count(*) from t_gin_test_tbl where j @> '{}'::int[]; reset enable_seqscan; reset enable_bitmapscan; drop table t_gin_test_tbl; +-- +-- Github issue: https://github.com/apache/cloudberry/issues/1222 +-- +begin; +create table t_issue_1222(i int4[]) with (appendonly=true); +create index t_issue_1222_idx on t_issue_1222 using gin (i) + with (fastupdate = on, gin_pending_list_limit = 4096); +insert into t_issue_1222 select array[1, 2, g] from generate_series(1, 400000) g; +abort; diff --git a/src/test/regress/expected/gin_optimizer.out b/src/test/regress/expected/gin_optimizer.out index ef5c879df76..f7df2cf49e8 100644 --- a/src/test/regress/expected/gin_optimizer.out +++ b/src/test/regress/expected/gin_optimizer.out @@ -308,3 +308,12 @@ select count(*) from t_gin_test_tbl where j @> '{}'::int[]; reset enable_seqscan; reset enable_bitmapscan; drop table t_gin_test_tbl; +-- +-- Github issue: https://github.com/apache/cloudberry/issues/1222 +-- +begin; +create table t_issue_1222(i int4[]) with (appendonly=true); +create index t_issue_1222_idx on t_issue_1222 using gin (i) + with (fastupdate = on, gin_pending_list_limit = 4096); +insert into t_issue_1222 select array[1, 2, g] from generate_series(1, 400000) g; +abort; diff --git a/src/test/regress/sql/gin.sql b/src/test/regress/sql/gin.sql index db702e12adf..d52f19e2d36 100644 --- a/src/test/regress/sql/gin.sql +++ b/src/test/regress/sql/gin.sql @@ -172,3 +172,13 @@ reset enable_seqscan; reset enable_bitmapscan; drop table t_gin_test_tbl; + +-- +-- Github issue: https://github.com/apache/cloudberry/issues/1222 +-- +begin; +create table t_issue_1222(i int4[]) with (appendonly=true); +create index t_issue_1222_idx on t_issue_1222 using gin (i) + with (fastupdate = on, gin_pending_list_limit = 4096); +insert into t_issue_1222 select array[1, 2, g] from generate_series(1, 400000) g; +abort;