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$;