github.com/tuhaihe/gpbackup@v1.0.3/end_to_end/resources/test_rowcount_ddl.sql (about) 1 CREATE OR REPLACE FUNCTION 2 cnt_rows() 3 RETURNS TABLE(table_schema text, table_name text, seg_id int, row_count bigint) 4 LANGUAGE plpgsql AS 5 $func$ 6 DECLARE 7 schemaname text; 8 tablename text; 9 BEGIN 10 FOR schemaname, tablename IN 11 SELECT 12 tb.table_schema, 13 tb.table_name 14 FROM 15 information_schema.tables tb 16 WHERE 17 tb.table_schema not in ('pg_catalog', 'gp_toolkit', 'information_schema', 'pg_toast', 'pg_aoseg') 18 AND tb.table_type='BASE TABLE' 19 ORDER BY 20 tb.table_schema, 21 tb.table_name 22 LOOP 23 RETURN QUERY EXECUTE 24 format('SELECT cast(%L as text) as table_schema, cast(%L as text) as table_name, gp_segment_id as seg_id, count(1) as row_count FROM %I.%I group by gp_segment_id order by gp_segment_id;', 25 schemaname, tablename, schemaname, tablename); 26 END LOOP; 27 END 28 $func$;