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 80ddb45a60a..04fd9dee4bd 100644 --- a/contrib/pageinspect/expected/page.out +++ b/contrib/pageinspect/expected/page.out @@ -239,3 +239,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 0f0252558c5..0c2e639131c 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 5bff568d3b5..59784fc7cce 100644 --- a/contrib/pageinspect/sql/page.sql +++ b/contrib/pageinspect/sql/page.sql @@ -98,3 +98,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)); |