@@ -1752,51 +1752,101 @@ CREATE FUNCTION rum_page_opaque_info(
17521752AS ' MODULE_PATHNAME' , ' rum_page_opaque_info'
17531753LANGUAGE C STRICT PARALLEL SAFE;
17541754
1755- CREATE FUNCTION rum_leaf_data_page_items (
1756- IN rel_name text ,
1757- IN blk_num int4,
1758- OUT is_high_key bool,
1759- OUT tuple_id tid,
1760- OUT add_info_is_null bool,
1761- OUT add_info varchar )
1755+ CREATE OR REPLACE FUNCTION
1756+ rum_page_items_info(rel_name text , blk_num int4, page_type int4)
17621757RETURNS SETOF record
1763- AS ' MODULE_PATHNAME' , ' rum_leaf_data_page_items'
1764- LANGUAGE C STRICT PARALLEL SAFE;
1758+ AS ' MODULE_PATHNAME' , ' rum_page_items_info'
1759+ LANGUAGE C STRICT;
1760+
1761+ CREATE FUNCTION rum_leaf_data_page_items (
1762+ rel_name text ,
1763+ blk_num int4
1764+ )
1765+ RETURNS TABLE(
1766+ is_high_key bool,
1767+ tuple_id tid,
1768+ add_info_is_null bool,
1769+ add_info varchar
1770+ )
1771+ AS $$
1772+ SELECT *
1773+ FROM rum_page_items_info(rel_name, blk_num, 0 )
1774+ AS rum_page_items_info(
1775+ is_high_key bool,
1776+ tuple_id tid,
1777+ add_info_is_null bool,
1778+ add_info varchar
1779+ );
1780+ $$ LANGUAGE sql;
17651781
17661782CREATE FUNCTION rum_internal_data_page_items (
1767- IN rel_name text ,
1768- IN blk_num int4,
1769- OUT is_high_key bool,
1770- OUT block_number int4,
1771- OUT tuple_id tid,
1772- OUT add_info_is_null bool,
1773- OUT add_info varchar )
1774- RETURNS SETOF record
1775- AS ' MODULE_PATHNAME' , ' rum_internal_data_page_items'
1776- LANGUAGE C STRICT PARALLEL SAFE;
1783+ rel_name text ,
1784+ blk_num int4
1785+ )
1786+ RETURNS TABLE(
1787+ is_high_key bool,
1788+ block_number int4,
1789+ tuple_id tid,
1790+ add_info_is_null bool,
1791+ add_info varchar
1792+ )
1793+ AS $$
1794+ SELECT *
1795+ FROM rum_page_items_info(rel_name, blk_num, 1 )
1796+ AS rum_page_items_info(
1797+ is_high_key bool,
1798+ block_number int4,
1799+ tuple_id tid,
1800+ add_info_is_null bool,
1801+ add_info varchar
1802+ );
1803+ $$ LANGUAGE sql;
17771804
17781805CREATE FUNCTION rum_leaf_entry_page_items (
1779- IN rel_name text ,
1780- IN blk_num int4,
1781- OUT key varchar ,
1782- OUT attrnum int4,
1783- OUT category varchar ,
1784- OUT tuple_id tid,
1785- OUT add_info_is_null bool,
1786- OUT add_info varchar ,
1787- OUT is_postring_tree bool,
1788- OUT postring_tree_root int4)
1789- RETURNS SETOF record
1790- AS ' MODULE_PATHNAME' , ' rum_leaf_entry_page_items'
1791- LANGUAGE C STRICT PARALLEL SAFE;
1806+ rel_name text ,
1807+ blk_num int4
1808+ )
1809+ RETURNS TABLE(
1810+ key varchar ,
1811+ attrnum int4,
1812+ category varchar ,
1813+ tuple_id tid,
1814+ add_info_is_null bool,
1815+ add_info varchar ,
1816+ is_postring_tree bool,
1817+ postring_tree_root int4
1818+ )
1819+ AS $$
1820+ SELECT *
1821+ FROM rum_page_items_info(rel_name, blk_num, 2 )
1822+ AS rum_page_items_info(
1823+ key varchar ,
1824+ attrnum int4,
1825+ category varchar ,
1826+ tuple_id tid,
1827+ add_info_is_null bool,
1828+ add_info varchar ,
1829+ is_postring_tree bool,
1830+ postring_tree_root int4
1831+ );
1832+ $$ LANGUAGE sql;
17921833
17931834CREATE FUNCTION rum_internal_entry_page_items (
1794- IN rel_name text ,
1795- IN blk_num int4,
1796- OUT key varchar ,
1797- OUT attrnum int4,
1798- OUT category varchar ,
1799- OUT down_link int4)
1800- RETURNS SETOF record
1801- AS ' MODULE_PATHNAME' , ' rum_internal_entry_page_items'
1802- LANGUAGE C STRICT PARALLEL SAFE;
1835+ rel_name text ,
1836+ blk_num int4
1837+ )
1838+ RETURNS TABLE(
1839+ key varchar ,
1840+ attrnum int4,
1841+ category varchar ,
1842+ down_link int4)
1843+ AS $$
1844+ SELECT *
1845+ FROM rum_page_items_info(rel_name, blk_num, 3 )
1846+ AS rum_page_items_info(
1847+ key varchar ,
1848+ attrnum int4,
1849+ category varchar ,
1850+ down_link int4
1851+ );
1852+ $$ LANGUAGE sql;
0 commit comments