diff options
Diffstat (limited to 'contrib/pageinspect')
-rw-r--r-- | contrib/pageinspect/expected/page.out | 9 | ||||
-rw-r--r-- | contrib/pageinspect/heapfuncs.c | 6 | ||||
-rw-r--r-- | contrib/pageinspect/sql/page.sql | 5 |
3 files changed, 19 insertions, 1 deletions
diff --git a/contrib/pageinspect/expected/page.out b/contrib/pageinspect/expected/page.out index 8134eda1d7e..0e4a5e55ffb 100644 --- a/contrib/pageinspect/expected/page.out +++ b/contrib/pageinspect/expected/page.out @@ -236,3 +236,12 @@ SELECT page_checksum(decode(repeat('00', :block_size), 'hex'), 1); (1 row) +-- tests for sequences +create temporary sequence test_sequence; +select tuple_data_split('test_sequence'::regclass, t_data, t_infomask, t_infomask2, t_bits) + from heap_page_items(get_raw_page('test_sequence', 0)); + tuple_data_split +------------------------------------------------------- + {"\\x0100000000000000","\\x0000000000000000","\\x00"} +(1 row) + diff --git a/contrib/pageinspect/heapfuncs.c b/contrib/pageinspect/heapfuncs.c index f6760eb31e7..07c3cee5288 100644 --- a/contrib/pageinspect/heapfuncs.c +++ b/contrib/pageinspect/heapfuncs.c @@ -320,7 +320,11 @@ tuple_data_split_internal(Oid relid, char *tupdata, raw_attrs = initArrayResult(BYTEAOID, CurrentMemoryContext, false); nattrs = tupdesc->natts; - if (rel->rd_rel->relam != HEAP_TABLE_AM_OID) + /* + * Sequences always use heap AM, but they don't show that in the catalogs. + */ + if (rel->rd_rel->relkind != RELKIND_SEQUENCE && + rel->rd_rel->relam != HEAP_TABLE_AM_OID) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("only heap AM is supported"))); diff --git a/contrib/pageinspect/sql/page.sql b/contrib/pageinspect/sql/page.sql index b5c41cc8ac5..ebc6e71ce39 100644 --- a/contrib/pageinspect/sql/page.sql +++ b/contrib/pageinspect/sql/page.sql @@ -97,3 +97,8 @@ SHOW block_size \gset SELECT fsm_page_contents(decode(repeat('00', :block_size), 'hex')); SELECT page_header(decode(repeat('00', :block_size), 'hex')); SELECT page_checksum(decode(repeat('00', :block_size), 'hex'), 1); + +-- tests for sequences +create temporary sequence test_sequence; +select tuple_data_split('test_sequence'::regclass, t_data, t_infomask, t_infomask2, t_bits) + from heap_page_items(get_raw_page('test_sequence', 0)); |