This is an automated email from the ASF dual-hosted git repository.

chenjinbao1989 pushed a commit to branch cbdb-postgres-merge
in repository https://gitbox.apache.org/repos/asf/cloudberry.git

commit 4fd461c3c62d6ce1da84c75748575a6f37f40084
Author: Huansong Fu <[email protected]>
AuthorDate: Mon Mar 20 07:51:33 2023 -0700

    Generate gp_ view for desired pg_ system views
    
    For a selected list of PG system views (started with 'pg_'prefix ), we
    will create a corresponding 'gp_' view for each one in the list.
    Each 'gp_' view is basically a UNION ALL of the results of running the
    corresponding 'pg_' view on all segments (including the coordinator).
    
    Note that, these views do not aggregate the results. The aggregate
    version of the views will be named with a '_summary' appendix (such
    as 'gp_stat_all_tables_summary').
    
    To add a new 'pg_' view to this list, simply put the name in file
    'src/backend/catalog/system_views_gp.in'. This commit adds an initial
    list of views that we think make sense to have 'gp_' views.
    
    With this change, we also remove the existing definition of
    gp_stat_archiver view and let it be generated automatically.
    We also had gp_stat_replication but it carries additional column than
    pg_stat_replication so it cannot use the automatic way.
---
 src/backend/catalog/.gitignore         |  1 +
 src/backend/catalog/Makefile           |  8 ++++--
 src/backend/catalog/system_views.sql   |  6 +----
 src/backend/catalog/system_views_gp.in | 48 ++++++++++++++++++++++++++++++++++
 src/bin/initdb/initdb.c                |  4 +++
 5 files changed, 60 insertions(+), 7 deletions(-)

diff --git a/src/backend/catalog/.gitignore b/src/backend/catalog/.gitignore
index 6c4c6d228db..3912b022a03 100644
--- a/src/backend/catalog/.gitignore
+++ b/src/backend/catalog/.gitignore
@@ -8,3 +8,4 @@
 /pg_*_d.h
 /gp_*_d.h
 /bki-stamp
+/system_views_gp.sql
diff --git a/src/backend/catalog/Makefile b/src/backend/catalog/Makefile
index 666a861c6de..b45a3776e59 100644
--- a/src/backend/catalog/Makefile
+++ b/src/backend/catalog/Makefile
@@ -59,6 +59,9 @@ OBJS += pg_extprotocol.o \
           gp_matview_aux.o \
        pg_directory_table.o storage_directory_table.o
 
+GP_SYSVIEW_IN = system_views_gp.in
+GP_SYSVIEW_SQL = system_views_gp.sql
+
 CATALOG_JSON:= $(addprefix $(top_srcdir)/gpMgmt/bin/gppylib/data/, $(addsuffix 
.json,$(GP_MAJORVERSION)))
 
 include $(top_srcdir)/src/backend/common.mk
@@ -136,7 +139,7 @@ POSTGRES_BKI_DATA += $(addprefix 
$(top_srcdir)/src/include/catalog/,\
        $(top_builddir)/src/include/catalog/gp_version_at_initdb.dat
 
 
-all: distprep generated-header-symlinks
+all: distprep generated-header-symlinks $(GP_SYSVIEW_SQL)
 
 distprep: bki-stamp
 
@@ -200,6 +203,7 @@ ifeq ($(USE_INTERNAL_FTS_FOUND), false)
 endif
        $(INSTALL_DATA) $(srcdir)/system_functions.sql 
'$(DESTDIR)$(datadir)/system_functions.sql'
        $(INSTALL_DATA) $(srcdir)/system_views.sql 
'$(DESTDIR)$(datadir)/system_views.sql'
+       $(INSTALL_DATA) $(srcdir)/$(GP_SYSVIEW_SQL) 
'$(DESTDIR)$(datadir)/$(GP_SYSVIEW_SQL)'
        $(INSTALL_DATA) $(srcdir)/information_schema.sql 
'$(DESTDIR)$(datadir)/information_schema.sql'
        $(INSTALL_DATA) $(call vpathsearch,cdb_schema.sql) 
'$(DESTDIR)$(datadir)/cdb_init.d/cdb_schema.sql'
        $(INSTALL_DATA) $(srcdir)/sql_features.txt 
'$(DESTDIR)$(datadir)/sql_features.txt'
@@ -220,4 +224,4 @@ endif
 clean:
 
 maintainer-clean: clean
-       rm -f bki-stamp postgres.bki system_constraints.sql $(GENERATED_HEADERS)
+       rm -f bki-stamp postgres.bki system_constraints.sql 
$(GENERATED_HEADERS) $(GP_SYSVIEW_SQL)
diff --git a/src/backend/catalog/system_views.sql 
b/src/backend/catalog/system_views.sql
index 8858c3ebcd5..8dfb76c3682 100644
--- a/src/backend/catalog/system_views.sql
+++ b/src/backend/catalog/system_views.sql
@@ -1135,6 +1135,7 @@ $$
 $$
 LANGUAGE SQL EXECUTE ON ALL SEGMENTS;
 
+-- This view has an additional column than pg_stat_replication so cannot be 
generated using system_views_gp.in
 CREATE VIEW gp_stat_replication AS
     SELECT *, pg_catalog.gp_replication_error() AS sync_error
     FROM pg_catalog.gp_stat_get_master_replication() AS R
@@ -1879,11 +1880,6 @@ UNION ALL
   SELECT gp_segment_id, gp_get_suboverflowed_backends() FROM 
gp_dist_random('gp_id') order by 1;
 
 
-CREATE OR REPLACE VIEW gp_stat_archiver AS
-    SELECT -1 AS gp_segment_id, * FROM pg_stat_archiver
-    UNION
-    SELECT gp_execution_segment() AS gp_segment_id, * FROM 
gp_dist_random('pg_stat_archiver');
-
 CREATE FUNCTION gp_get_session_endpoints (OUT gp_segment_id int, OUT 
auth_token text,
                                                                          OUT 
cursorname text, OUT sessionid int, OUT hostname varchar(64),
                                                                          OUT 
port int, OUT username text, OUT state text,
diff --git a/src/backend/catalog/system_views_gp.in 
b/src/backend/catalog/system_views_gp.in
new file mode 100644
index 00000000000..5c0a8c2dc7e
--- /dev/null
+++ b/src/backend/catalog/system_views_gp.in
@@ -0,0 +1,48 @@
+# This file lists all the PG system views 'pg_%' that we would like to create 
an
+# MPP-aware view 'gp_%' out of. The generated 'gp_%' view definitions will be 
placed
+# in system_views_gp.sql, and initialized at the same time as system_views.sql.
+pg_backend_memory_contexts
+pg_config
+pg_cursors
+pg_file_settings
+pg_replication_origin_status
+pg_replication_slots
+pg_settings
+pg_stat_activity
+pg_stat_archiver
+pg_stat_bgwriter
+pg_stat_database
+pg_stat_database_conflicts
+pg_stat_gssapi
+pg_stat_operations
+pg_stat_progress_analyze
+pg_stat_progress_basebackup
+pg_stat_progress_cluster
+pg_stat_progress_copy
+pg_stat_progress_create_index
+pg_stat_progress_vacuum
+pg_stat_slru
+pg_stat_ssl
+pg_stat_subscription
+pg_stat_sys_indexes
+pg_stat_sys_tables
+pg_stat_user_functions
+pg_stat_user_indexes
+pg_stat_user_tables
+pg_stat_wal
+pg_stat_wal_receiver
+pg_stat_xact_all_tables
+pg_stat_xact_sys_tables
+pg_stat_xact_user_functions
+pg_stat_xact_user_tables
+pg_statio_all_indexes
+pg_statio_all_sequences
+pg_statio_all_tables
+pg_statio_sys_indexes
+pg_statio_sys_sequences
+pg_statio_sys_tables
+pg_statio_user_indexes
+pg_statio_user_sequences
+pg_statio_user_tables
+pg_stats
+pg_stats_ext
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index b6db630f38a..ca0e5bbcd97 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -192,6 +192,7 @@ static char *external_fts_files;
 #endif
 static char *system_functions_file;
 static char *system_views_file;
+static char *system_views_gp_file;
 static bool success = false;
 static bool made_new_pgdata = false;
 static bool found_existing_pgdata = false;
@@ -3035,6 +3036,7 @@ setup_data_file_paths(void)
        set_input(&system_constraints_file, "system_constraints.sql");
        set_input(&system_functions_file, "system_functions.sql");
        set_input(&system_views_file, "system_views.sql");
+       set_input(&system_views_gp_file, "system_views_gp.sql");
 
        set_input(&cdb_init_d_dir, "cdb_init.d");
 
@@ -3068,6 +3070,7 @@ setup_data_file_paths(void)
 #endif
        check_input(system_functions_file);
        check_input(system_views_file);
+       check_input(system_views_gp_file);
 }
 
 
@@ -3397,6 +3400,7 @@ initialize_data_directory(void)
         */
 
        setup_run_file(cmdfd, system_views_file);
+       setup_run_file(cmdfd, system_views_gp_file);
 
        setup_description(cmdfd);
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to