rollback; begin; create extension if not exists btree_gin; create or replace function error(text) returns text language plpgsql as $$ begin raise exception 'break index build'; return $1; end; $$ immutable; drop table if exists u; create table u (c text); insert into u values ('foo'); commit; create index concurrently ubtree on u (error(c)); create index concurrently ugin on u using gin (error(c)); create index concurrently uhash on u using hash (error(c)); create index concurrently ubrin on u using brin (error(c)); \set utable '''ubtree''::regclass' \set useq '''ubtree''::regclass' \set VERBOSITY verbose begin; create or replace function error(text) returns text language sql as 'select $1' immutable; SET log_error_verbosity = verbose; SET log_min_messages = debug1; -- for amcheck --SET client_min_messages = debug1; create extension pg_visibility; create extension amcheck; create extension pgstattuple; create extension pg_surgery; create extension pg_prewarm; create extension pg_freespacemap; create extension pgrowlocks; SELECT * FROM pgrowlocks(:utable::text); SELECT brin_desummarize_range('ubrin',1); SELECT brin_summarize_new_values('ubrin'); SELECT brin_summarize_range('ubrin',1); SELECT bt_index_check('ubtree'); SELECT bt_index_check('ubtree',true); SELECT bt_index_parent_check('ubtree'); SELECT bt_index_parent_check('ubtree',true); SELECT bt_index_parent_check('ubtree',true,true); SELECT gin_clean_pending_list('ugin'); SELECT heap_force_freeze(:utable,array['(0,1)'::tid]); SELECT heap_force_kill(:utable,array['(0,1)'::tid]); SELECT nextval(:useq); SELECT currval(:useq); SELECT pg_check_frozen(:utable); SELECT pg_check_visible(:utable); SELECT pg_column_is_updatable(:utable,'1',true); --SELECT pg_extension_config_dump(:utable,'select 1'); SELECT pg_freespace(:utable); SELECT pg_freespace(:utable,1); SELECT pg_get_replica_identity_index(:utable); SELECT pg_index_column_has_property(:utable,1,'asc'); SELECT pg_indexes_size(:utable); SELECT pg_index_has_property('ubrin','asc'); --SELECT pg_nextoid(:utable,name,:utable); SELECT pg_partition_ancestors(:utable); SELECT pg_partition_root(:utable); SELECT pg_partition_tree(:utable); SELECT pg_prewarm(:utable); SELECT pg_relation_filenode(:utable); SELECT pg_relation_filepath(:utable); SELECT pg_relation_is_publishable(:utable); SELECT pg_relation_is_updatable(:utable,true); SELECT pg_relation_size(:utable); SELECT pg_relation_size(:utable,'main'); SELECT pg_relpages(:utable); SELECT pg_sequence_last_value(:useq); SELECT pgstatginindex('ugin'); SELECT pgstathashindex('uhash'); SELECT pgstatindex('ubtree'); SELECT pgstattuple_approx(:utable); SELECT pgstattuple(:utable); SELECT pg_table_size(:utable); SELECT pg_total_relation_size(:utable); SELECT pg_truncate_visibility_map(:utable); SELECT pg_visibility_map(:utable); SELECT pg_visibility_map(:utable,1); SELECT pg_visibility_map_summary(:utable); SELECT pg_visibility(:utable); SELECT pg_visibility(:utable,1); SELECT setval(:useq,1); SELECT setval(:useq,1,true); SELECT table_to_xml_and_xmlschema(:utable,true,true,'nsp'); SELECT table_to_xml(:utable,true,true,'nsp'); SELECT table_to_xmlschema(:utable,true,true,'nsp'); SELECT verify_heapam(:utable); rollback;