Enhanced TOAST O&M Management
Use gs_parse_page_bypath to parse the TOAST pointer information in the main table.
gaussdb=# SELECT ctid,next_chunk,chunk_seq FROM pg_toast.pg_toast_part_17559; ctid | next_chunk | chunk_seq -------+------------+----------- (0,1) | (0,0) | 1 (0,2) | (0,1) | 0 (0,3) | (0,0) | 1 (0,4) | (0,3) | 0 (4 rows) gaussdb=# SELECT gs_parse_page_bypath((SELECT * FROM pg_relation_filepath('test_toast')),0,'uheap',false); gs_parse_page_bypath ------------------------------------------------------------------ ${data_dir}/gs_log/dump/1663_13113_17603_0.page (1 row)
The parsing file 1663_13113_17603_0.page stores the TOAST pointer information as follows:
Toast_Pointer: column_index: 1 toast_relation_oid: 17608 -- OID of the out-of-line storage table ctid: (4, 1) -- Head pointer of the out-of-line storage data linked list bucket id: -1 -- Bucket ID information column_index: 2 toast_relation_oid: 17608 ctid: (2, 1) bucket id: -1
Query enhanced TOAST data. You can determine the integrity of the link structure based on the queried enhanced TOAST table data.
gaussdb=# SELECT ctid,next_chunk,chunk_seq FROM pg_toast.pg_toast_part_17559;
ctid | next_chunk | chunk_seq
-------+------------+-----------
(0,1) | (0,0) | 1
(0,2) | (0,1) | 0
(0,3) | (0,0) | 1
(0,4) | (0,3) | 0
(4 rows)
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.