{"schema_version":"1.0","snapshot_date":"2026-09-08","transitions":[{"from":"9.0","to":"9.1","added_relations":["pg_available_extension_versions","pg_available_extensions","pg_collation","pg_extension","pg_foreign_table","pg_seclabel","pg_seclabels","pg_stat_database_conflicts","pg_stat_replication","pg_stat_xact_all_tables","pg_stat_xact_sys_tables","pg_stat_xact_user_functions","pg_stat_xact_user_tables"],"removed_relations":[],"changed_relations":["pg_am","pg_amop","pg_attrdef","pg_attribute","pg_authid","pg_class","pg_constraint","pg_conversion","pg_enum","pg_foreign_data_wrapper","pg_foreign_server","pg_index","pg_locks","pg_pltemplate","pg_proc","pg_rewrite","pg_roles","pg_settings","pg_shadow","pg_stat_activity","pg_stat_all_tables","pg_stat_bgwriter","pg_stat_database","pg_stat_sys_tables","pg_stat_user_tables","pg_statistic","pg_timezone_names","pg_trigger","pg_type","pg_user"],"structurally_changed_relations":["pg_am","pg_amop","pg_attrdef","pg_attribute","pg_authid","pg_class","pg_constraint","pg_enum","pg_foreign_data_wrapper","pg_index","pg_proc","pg_rewrite","pg_roles","pg_shadow","pg_stat_activity","pg_stat_all_tables","pg_stat_bgwriter","pg_stat_database","pg_stat_sys_tables","pg_stat_user_tables","pg_trigger","pg_type","pg_user"],"added_columns":34,"removed_columns":3,"type_changes":9,"description_changes":19},{"from":"9.1","to":"9.2","added_relations":["pg_range","pg_shseclabel"],"removed_relations":[],"changed_relations":["pg_am","pg_attribute","pg_cast","pg_class","pg_constraint","pg_default_acl","pg_index","pg_locks","pg_opclass","pg_proc","pg_seclabel","pg_stat_activity","pg_stat_all_indexes","pg_stat_all_tables","pg_stat_bgwriter","pg_stat_database","pg_stat_database_conflicts","pg_stat_replication","pg_stat_sys_indexes","pg_stat_sys_tables","pg_stat_user_functions","pg_stat_user_indexes","pg_stat_user_tables","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_statistic","pg_stats","pg_tablespace","pg_type","pg_user","pg_user_mappings"],"structurally_changed_relations":["pg_am","pg_attribute","pg_class","pg_constraint","pg_locks","pg_proc","pg_stat_activity","pg_stat_bgwriter","pg_stat_database","pg_stat_replication","pg_stat_user_functions","pg_stat_xact_user_functions","pg_statistic","pg_stats","pg_tablespace","pg_type"],"added_columns":28,"removed_columns":4,"type_changes":4,"description_changes":69},{"from":"9.2","to":"9.3","added_relations":["pg_event_trigger","pg_matviews"],"removed_relations":[],"changed_relations":["pg_am","pg_amop","pg_amproc","pg_attrdef","pg_authid","pg_cast","pg_class","pg_collation","pg_constraint","pg_conversion","pg_database","pg_default_acl","pg_enum","pg_extension","pg_foreign_data_wrapper","pg_foreign_server","pg_index","pg_language","pg_largeobject_metadata","pg_namespace","pg_opclass","pg_operator","pg_opfamily","pg_proc","pg_rewrite","pg_seclabel","pg_shseclabel","pg_tablespace","pg_trigger","pg_ts_config","pg_ts_dict","pg_ts_parser","pg_ts_template","pg_type","pg_user_mapping"],"structurally_changed_relations":["pg_class","pg_database","pg_index"],"added_columns":4,"removed_columns":0,"type_changes":0,"description_changes":36},{"from":"9.3","to":"9.4","added_relations":["pg_replication_slots","pg_stat_archiver"],"removed_relations":[],"changed_relations":["pg_aggregate","pg_am","pg_amop","pg_class","pg_database","pg_index","pg_rewrite","pg_seclabel","pg_shseclabel","pg_stat_activity","pg_stat_all_indexes","pg_stat_all_tables","pg_stat_bgwriter","pg_stat_database","pg_stat_database_conflicts","pg_stat_replication","pg_stat_sys_tables","pg_stat_user_functions","pg_stat_user_tables","pg_statio_all_indexes","pg_statio_all_sequences","pg_statio_all_tables","pg_statio_sys_tables","pg_statio_user_tables","pg_trigger","pg_type"],"structurally_changed_relations":["pg_aggregate","pg_class","pg_index","pg_rewrite","pg_stat_activity","pg_stat_all_tables","pg_stat_replication","pg_stat_sys_tables","pg_stat_user_tables"],"added_columns":19,"removed_columns":2,"type_changes":4,"description_changes":10},{"from":"9.4","to":"9.5","added_relations":["pg_file_settings","pg_policies","pg_policy","pg_replication_origin","pg_replication_origin_status","pg_stat_ssl","pg_transform"],"removed_relations":[],"changed_relations":["pg_am","pg_attribute","pg_authid","pg_class","pg_description","pg_extension","pg_largeobject","pg_locks","pg_pltemplate","pg_proc","pg_replication_slots","pg_roles","pg_seclabel","pg_settings","pg_shadow","pg_shdescription","pg_shseclabel","pg_stat_activity","pg_stat_all_indexes","pg_stat_all_tables","pg_stat_archiver","pg_stat_bgwriter","pg_stat_database","pg_stat_database_conflicts","pg_stat_replication","pg_stat_sys_tables","pg_stat_user_functions","pg_stat_user_tables","pg_stat_xact_all_tables","pg_stat_xact_sys_tables","pg_stat_xact_user_tables","pg_statio_all_indexes","pg_statio_all_sequences","pg_statio_all_tables","pg_tables","pg_trigger","pg_type","pg_user"],"structurally_changed_relations":["pg_authid","pg_class","pg_description","pg_extension","pg_largeobject","pg_pltemplate","pg_proc","pg_replication_slots","pg_roles","pg_seclabel","pg_settings","pg_shadow","pg_shdescription","pg_shseclabel","pg_tables","pg_trigger","pg_user"],"added_columns":10,"removed_columns":4,"type_changes":0,"description_changes":12},{"from":"9.5","to":"9.6","added_relations":["pg_config","pg_init_privs","pg_stat_progress_vacuum","pg_stat_wal_receiver"],"removed_relations":[],"changed_relations":["pg_aggregate","pg_am","pg_authid","pg_collation","pg_database","pg_event_trigger","pg_extension","pg_file_settings","pg_language","pg_locks","pg_opclass","pg_operator","pg_opfamily","pg_prepared_statements","pg_proc","pg_replication_origin","pg_replication_origin_status","pg_replication_slots","pg_roles","pg_seclabel","pg_shseclabel","pg_stat_activity","pg_stat_all_indexes","pg_stat_all_tables","pg_stat_archiver","pg_stat_bgwriter","pg_stat_database","pg_stat_database_conflicts","pg_stat_replication","pg_stat_ssl","pg_stat_user_functions","pg_statio_all_indexes","pg_statio_all_sequences","pg_statio_all_tables","pg_timezone_names","pg_type"],"structurally_changed_relations":["pg_aggregate","pg_am","pg_proc","pg_replication_slots","pg_stat_activity"],"added_columns":9,"removed_columns":30,"type_changes":0,"description_changes":5},{"from":"9.6","to":"10","added_relations":["pg_hba_file_rules","pg_partitioned_table","pg_publication","pg_publication_rel","pg_publication_tables","pg_sequence","pg_sequences","pg_stat_subscription","pg_statistic_ext","pg_subscription","pg_subscription_rel"],"removed_relations":[],"changed_relations":["pg_aggregate","pg_am","pg_attribute","pg_authid","pg_cast","pg_class","pg_collation","pg_database","pg_default_acl","pg_event_trigger","pg_extension","pg_file_settings","pg_foreign_data_wrapper","pg_foreign_server","pg_foreign_table","pg_index","pg_language","pg_largeobject","pg_locks","pg_opclass","pg_operator","pg_opfamily","pg_pltemplate","pg_policies","pg_policy","pg_proc","pg_replication_origin","pg_replication_origin_status","pg_replication_slots","pg_rewrite","pg_seclabel","pg_settings","pg_shseclabel","pg_stat_activity","pg_stat_all_indexes","pg_stat_all_tables","pg_stat_archiver","pg_stat_bgwriter","pg_stat_database","pg_stat_database_conflicts","pg_stat_progress_vacuum","pg_stat_replication","pg_stat_ssl","pg_stat_user_functions","pg_stat_wal_receiver","pg_statio_all_indexes","pg_statio_all_sequences","pg_statio_all_tables","pg_statistic","pg_tablespace","pg_trigger","pg_type","pg_user_mapping","pg_user_mappings"],"structurally_changed_relations":["pg_attribute","pg_class","pg_collation","pg_policies","pg_policy","pg_replication_slots","pg_stat_activity","pg_stat_replication","pg_trigger"],"added_columns":18,"removed_columns":4,"type_changes":0,"description_changes":72},{"from":"10","to":"11","added_relations":[],"removed_relations":[],"changed_relations":["pg_aggregate","pg_am","pg_amproc","pg_attribute","pg_class","pg_constraint","pg_conversion","pg_database","pg_event_trigger","pg_extension","pg_index","pg_inherits","pg_language","pg_opclass","pg_operator","pg_opfamily","pg_partitioned_table","pg_proc","pg_publication","pg_publication_rel","pg_replication_origin","pg_replication_origin_status","pg_replication_slots","pg_seclabel","pg_shseclabel","pg_stat_activity","pg_stat_wal_receiver","pg_subscription","pg_type"],"structurally_changed_relations":["pg_aggregate","pg_attribute","pg_class","pg_constraint","pg_index","pg_partitioned_table","pg_proc","pg_publication","pg_stat_wal_receiver"],"added_columns":12,"removed_columns":3,"type_changes":0,"description_changes":20},{"from":"11","to":"12","added_relations":["pg_stat_gssapi","pg_stat_progress_cluster","pg_stat_progress_create_index","pg_statistic_ext_data","pg_stats_ext"],"removed_relations":[],"changed_relations":["pg_am","pg_amop","pg_amproc","pg_attrdef","pg_attribute","pg_authid","pg_cast","pg_class","pg_collation","pg_constraint","pg_conversion","pg_database","pg_default_acl","pg_enum","pg_event_trigger","pg_extension","pg_foreign_data_wrapper","pg_foreign_server","pg_init_privs","pg_language","pg_largeobject_metadata","pg_namespace","pg_opclass","pg_operator","pg_opfamily","pg_policy","pg_proc","pg_publication","pg_publication_rel","pg_replication_origin","pg_replication_origin_status","pg_replication_slots","pg_rewrite","pg_roles","pg_seclabel","pg_shadow","pg_shseclabel","pg_stat_activity","pg_stat_all_indexes","pg_stat_all_tables","pg_stat_archiver","pg_stat_bgwriter","pg_stat_database","pg_stat_database_conflicts","pg_stat_progress_vacuum","pg_stat_replication","pg_stat_ssl","pg_stat_subscription","pg_stat_user_functions","pg_stat_wal_receiver","pg_statio_all_indexes","pg_statio_all_sequences","pg_statio_all_tables","pg_statistic","pg_statistic_ext","pg_subscription","pg_tablespace","pg_transform","pg_trigger","pg_ts_config","pg_ts_dict","pg_ts_parser","pg_ts_template","pg_type","pg_user","pg_user_mapping"],"structurally_changed_relations":["pg_am","pg_amop","pg_amproc","pg_attrdef","pg_attribute","pg_authid","pg_cast","pg_class","pg_collation","pg_constraint","pg_conversion","pg_database","pg_default_acl","pg_enum","pg_event_trigger","pg_extension","pg_foreign_data_wrapper","pg_foreign_server","pg_language","pg_largeobject_metadata","pg_namespace","pg_opclass","pg_operator","pg_opfamily","pg_policy","pg_proc","pg_publication","pg_publication_rel","pg_rewrite","pg_shadow","pg_stat_database","pg_stat_replication","pg_stat_ssl","pg_statistic","pg_statistic_ext","pg_subscription","pg_tablespace","pg_transform","pg_trigger","pg_ts_config","pg_ts_dict","pg_ts_parser","pg_ts_template","pg_type","pg_user","pg_user_mapping"],"added_columns":14,"removed_columns":7,"type_changes":2,"description_changes":71},{"from":"12","to":"13","added_relations":["pg_shmem_allocations","pg_stat_progress_analyze","pg_stat_progress_basebackup","pg_stat_slru"],"removed_relations":["pg_pltemplate"],"changed_relations":["pg_authid","pg_available_extension_versions","pg_event_trigger","pg_inherits","pg_locks","pg_policy","pg_proc","pg_publication","pg_publication_rel","pg_replication_slots","pg_seclabel","pg_shadow","pg_shseclabel","pg_stat_activity","pg_stat_all_indexes","pg_stat_all_tables","pg_stat_archiver","pg_stat_bgwriter","pg_stat_database","pg_stat_database_conflicts","pg_stat_gssapi","pg_stat_progress_cluster","pg_stat_progress_create_index","pg_stat_progress_vacuum","pg_stat_replication","pg_stat_ssl","pg_stat_subscription","pg_stat_sys_tables","pg_stat_user_functions","pg_stat_user_tables","pg_stat_wal_receiver","pg_statio_all_indexes","pg_statio_all_sequences","pg_statio_all_tables","pg_statistic_ext","pg_subscription","pg_subscription_rel","pg_transform","pg_trigger","pg_type"],"structurally_changed_relations":["pg_available_extension_versions","pg_publication","pg_replication_slots","pg_stat_activity","pg_stat_all_tables","pg_stat_sys_tables","pg_stat_user_tables","pg_stat_wal_receiver","pg_statistic_ext","pg_subscription","pg_subscription_rel","pg_trigger"],"added_columns":12,"removed_columns":1,"type_changes":0,"description_changes":33},{"from":"13","to":"14","added_relations":["pg_backend_memory_contexts","pg_stat_progress_copy","pg_stat_replication_slots","pg_stat_wal","pg_stats_ext_exprs"],"removed_relations":[],"changed_relations":["pg_am","pg_attribute","pg_authid","pg_class","pg_collation","pg_constraint","pg_database","pg_default_acl","pg_depend","pg_event_trigger","pg_extension","pg_foreign_table","pg_inherits","pg_language","pg_locks","pg_opclass","pg_operator","pg_opfamily","pg_partitioned_table","pg_policy","pg_prepared_statements","pg_proc","pg_publication","pg_publication_rel","pg_range","pg_replication_origin","pg_replication_origin_status","pg_replication_slots","pg_roles","pg_seclabel","pg_sequence","pg_shadow","pg_shdepend","pg_shmem_allocations","pg_shseclabel","pg_stat_activity","pg_stat_database","pg_stat_database_conflicts","pg_stat_progress_analyze","pg_stat_progress_basebackup","pg_stat_progress_cluster","pg_stat_progress_create_index","pg_stat_progress_vacuum","pg_stat_ssl","pg_statistic","pg_statistic_ext","pg_statistic_ext_data","pg_stats","pg_stats_ext","pg_subscription","pg_subscription_rel","pg_transform","pg_trigger","pg_ts_parser","pg_ts_template","pg_type","pg_user","pg_user_mapping","pg_user_mappings"],"structurally_changed_relations":["pg_attribute","pg_inherits","pg_locks","pg_prepared_statements","pg_proc","pg_range","pg_replication_slots","pg_stat_activity","pg_stat_database","pg_stat_ssl","pg_statistic_ext","pg_statistic_ext_data","pg_stats_ext","pg_subscription","pg_type"],"added_columns":22,"removed_columns":1,"type_changes":0,"description_changes":91},{"from":"14","to":"15","added_relations":["pg_ident_file_mappings","pg_parameter_acl","pg_publication_namespace","pg_stat_recovery_prefetch","pg_stat_subscription_stats"],"removed_relations":[],"changed_relations":["pg_am","pg_class","pg_collation","pg_constraint","pg_conversion","pg_database","pg_depend","pg_index","pg_publication_rel","pg_publication_tables","pg_seclabel","pg_sequences","pg_settings","pg_shdepend","pg_shmem_allocations","pg_shseclabel","pg_stat_archiver","pg_stat_database","pg_stat_progress_analyze","pg_stat_progress_basebackup","pg_stat_progress_cluster","pg_stat_progress_create_index","pg_stat_progress_vacuum","pg_stat_subscription","pg_statistic","pg_statistic_ext_data","pg_stats","pg_stats_ext","pg_stats_ext_exprs","pg_subscription","pg_type"],"structurally_changed_relations":["pg_collation","pg_constraint","pg_database","pg_index","pg_publication_rel","pg_publication_tables","pg_statistic_ext_data","pg_stats_ext","pg_stats_ext_exprs","pg_subscription"],"added_columns":16,"removed_columns":1,"type_changes":4,"description_changes":27},{"from":"15","to":"16","added_relations":["pg_stat_io"],"removed_relations":[],"changed_relations":["pg_attribute","pg_auth_members","pg_collation","pg_constraint","pg_database","pg_hba_file_rules","pg_ident_file_mappings","pg_locks","pg_prepared_statements","pg_replication_slots","pg_shmem_allocations","pg_stat_activity","pg_stat_all_indexes","pg_stat_all_tables","pg_stat_database_conflicts","pg_stat_gssapi","pg_stat_progress_analyze","pg_stat_progress_basebackup","pg_stat_progress_cluster","pg_stat_progress_create_index","pg_stat_progress_vacuum","pg_stat_subscription","pg_stat_sys_indexes","pg_stat_sys_tables","pg_stat_user_indexes","pg_stat_user_tables","pg_stat_xact_all_tables","pg_stat_xact_sys_tables","pg_stat_xact_user_tables","pg_subscription"],"structurally_changed_relations":["pg_attribute","pg_auth_members","pg_collation","pg_constraint","pg_database","pg_hba_file_rules","pg_ident_file_mappings","pg_prepared_statements","pg_replication_slots","pg_stat_all_indexes","pg_stat_all_tables","pg_stat_database_conflicts","pg_stat_gssapi","pg_stat_subscription","pg_stat_sys_indexes","pg_stat_sys_tables","pg_stat_user_indexes","pg_stat_user_tables","pg_stat_xact_all_tables","pg_stat_xact_sys_tables","pg_stat_xact_user_tables","pg_subscription"],"added_columns":32,"removed_columns":0,"type_changes":5,"description_changes":52},{"from":"16","to":"17","added_relations":["pg_stat_checkpointer","pg_wait_events"],"removed_relations":[],"changed_relations":["pg_am","pg_attribute","pg_authid","pg_class","pg_collation","pg_constraint","pg_database","pg_event_trigger","pg_extension","pg_foreign_data_wrapper","pg_foreign_server","pg_init_privs","pg_language","pg_largeobject_metadata","pg_locks","pg_namespace","pg_opclass","pg_operator","pg_opfamily","pg_parameter_acl","pg_proc","pg_publication","pg_publication_rel","pg_replication_origin","pg_replication_origin_status","pg_replication_slots","pg_roles","pg_seclabel","pg_shadow","pg_shmem_allocations","pg_shseclabel","pg_stat_activity","pg_stat_bgwriter","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_subscription","pg_stat_wal","pg_statistic_ext","pg_stats","pg_subscription","pg_tablespace","pg_type","pg_user"],"structurally_changed_relations":["pg_attribute","pg_collation","pg_database","pg_replication_slots","pg_stat_bgwriter","pg_stat_progress_copy","pg_stat_progress_vacuum","pg_stat_subscription","pg_statistic_ext","pg_stats","pg_subscription"],"added_columns":18,"removed_columns":11,"type_changes":1,"description_changes":47},{"from":"17","to":"18","added_relations":["pg_aios","pg_shmem_allocations_numa"],"removed_relations":[],"changed_relations":["pg_am","pg_attrdef","pg_attribute","pg_backend_memory_contexts","pg_class","pg_constraint","pg_default_acl","pg_locks","pg_proc","pg_publication","pg_publication_rel","pg_replication_slots","pg_seclabel","pg_shmem_allocations","pg_shseclabel","pg_stat_activity","pg_stat_all_tables","pg_stat_checkpointer","pg_stat_database","pg_stat_io","pg_stat_progress_analyze","pg_stat_progress_vacuum","pg_stat_subscription_stats","pg_stat_sys_tables","pg_stat_user_tables","pg_stat_wal","pg_subscription","pg_timezone_abbrevs","pg_type"],"structurally_changed_relations":["pg_attribute","pg_backend_memory_contexts","pg_class","pg_constraint","pg_publication","pg_replication_slots","pg_stat_all_tables","pg_stat_checkpointer","pg_stat_database","pg_stat_io","pg_stat_progress_analyze","pg_stat_progress_vacuum","pg_stat_subscription_stats","pg_stat_sys_tables","pg_stat_user_tables","pg_stat_wal"],"added_columns":35,"removed_columns":7,"type_changes":0,"description_changes":33},{"from":"18","to":"19","added_relations":["pg_dsm_registry_allocations","pg_propgraph_element","pg_propgraph_element_label","pg_propgraph_label","pg_propgraph_label_property","pg_propgraph_property","pg_publication_sequences","pg_stat_autovacuum_scores","pg_stat_lock","pg_stat_progress_data_checksums","pg_stat_progress_repack","pg_stat_recovery"],"removed_relations":[],"changed_relations":["pg_aggregate","pg_authid","pg_available_extension_versions","pg_available_extensions","pg_class","pg_database","pg_foreign_data_wrapper","pg_foreign_server","pg_init_privs","pg_language","pg_largeobject_metadata","pg_namespace","pg_parameter_acl","pg_proc","pg_publication","pg_publication_rel","pg_range","pg_replication_slots","pg_roles","pg_seclabel","pg_shadow","pg_shseclabel","pg_stat_all_indexes","pg_stat_all_tables","pg_stat_database","pg_stat_database_conflicts","pg_stat_io","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_replication","pg_stat_replication_slots","pg_stat_subscription","pg_stat_subscription_stats","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_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","pg_stats_ext_exprs","pg_subscription","pg_subscription_rel","pg_tablespace","pg_type","pg_user"],"structurally_changed_relations":["pg_available_extension_versions","pg_available_extensions","pg_foreign_data_wrapper","pg_publication","pg_publication_rel","pg_range","pg_replication_slots","pg_stat_all_indexes","pg_stat_all_tables","pg_stat_database_conflicts","pg_stat_progress_analyze","pg_stat_progress_basebackup","pg_stat_progress_vacuum","pg_stat_replication_slots","pg_stat_subscription_stats","pg_stat_sys_indexes","pg_stat_sys_tables","pg_stat_user_functions","pg_stat_user_indexes","pg_stat_user_tables","pg_stat_wal","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","pg_stats_ext_exprs","pg_subscription"],"added_columns":53,"removed_columns":1,"type_changes":0,"description_changes":47}],"relations":[{"name":"pg_aggregate","changes":[{"from":"9.3","to":"9.4","status":"changed","added_columns":[{"name":"aggkind","type":"\"char\"","description":"Aggregate kind: n for \"normal\" aggregates, o for \"ordered-set\" aggregates, or h for \"hypothetical-set\" aggregates","documented_type":"char","hidden":false,"type_oid":18,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggnumdirectargs","type":"smallint","description":"Number of direct (non-aggregated) arguments of an ordered-set or hypothetical-set aggregate, counting a variadic array as one argument. If equal to pronargs, the aggregate must be variadic and the variadic array describes the aggregated arguments as well as the final direct arguments. Always zero for normal aggregates.","documented_type":"int2","hidden":false,"type_oid":21,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggmtransfn","type":"regproc","description":"Forward transition function for moving-aggregate mode (zero if none)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggminvtransfn","type":"regproc","description":"Inverse transition function for moving-aggregate mode (zero if none)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggmfinalfn","type":"regproc","description":"Final function for moving-aggregate mode (zero if none)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggfinalextra","type":"boolean","description":"True to pass extra dummy arguments to aggfinalfn","documented_type":"bool","hidden":false,"type_oid":16,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggmfinalextra","type":"boolean","description":"True to pass extra dummy arguments to aggmfinalfn","documented_type":"bool","hidden":false,"type_oid":16,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggtransspace","type":"integer","description":"Approximate average size (in bytes) of the transition state data, or zero to use a default estimate","documented_type":"int4","hidden":false,"type_oid":23,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggmtranstype","type":"oid","description":"Data type of the aggregate function's internal transition (state) data for moving-aggregate mode (zero if none)","references":"pg_type.oid","hidden":false,"type_oid":26,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggmtransspace","type":"integer","description":"Approximate average size (in bytes) of the transition state data for moving-aggregate mode, or zero to use a default estimate","documented_type":"int4","hidden":false,"type_oid":23,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggminitval","type":"text","description":"The initial value of the transition state for moving-aggregate mode. This is a text field containing the initial value in its external string representation. If this field is null, the transition state value starts out null.","hidden":false,"type_oid":25,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[{"name":"aggcombinefn","type":"regproc","description":"Combine function (zero if none)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggserialfn","type":"regproc","description":"Serialization function (zero if none)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggdeserialfn","type":"regproc","description":"Deserialization function (zero if none)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"aggkind","from":"Aggregate kind: n for \"normal\" aggregates, o for \"ordered-set\" aggregates, or h for \"hypothetical-set\" aggregates","to":"Aggregate kind: n for “normal” aggregates, o for “ordered-set” aggregates, or h for “hypothetical-set” aggregates"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[{"name":"aggfinalmodify","type":"\"char\"","description":"Whether aggfinalfn modifies the transition state value: r if it is read-only, s if the aggtransfn cannot be applied after the aggfinalfn, or w if it writes on the value","documented_type":"char","hidden":false,"type_oid":18,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aggmfinalmodify","type":"\"char\"","description":"Like aggfinalmodify, but for the aggmfinalfn","documented_type":"char","hidden":false,"type_oid":18,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"aggtransspace","from":"Approximate average size (in bytes) of the transition state data, or zero to use a default estimate","to":"Approximate average size (in bytes) of the transition state data. A positive value provides an estimate; zero means to use a default estimate. A negative value indicates the state data can grow unboundedly in size, such as when the aggregate accumulates input rows (e.g., array_agg, string_agg)."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_aios","changes":[{"from":"17","to":"18","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of the server process that is issuing this I/O.","documented_type":"int4","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"io_id","type":"integer","description":"Identifier of the I/O handle. Handles are reused once the I/O completed (or if the handle is released before I/O is started). On reuse pg_aios.io_generation is incremented.","documented_type":"int4","hidden":false,"type_oid":23,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"io_generation","type":"bigint","description":"Generation of the I/O handle.","documented_type":"int8","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"state","type":"text","description":"State of the I/O handle:","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"operation","type":"text","description":"Operation performed using the I/O handle:","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"off","type":"bigint","description":"Offset of the I/O operation.","documented_type":"int8","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"length","type":"bigint","description":"Length of the I/O operation.","documented_type":"int8","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"target","type":"text","description":"What kind of object is the I/O targeting:","hidden":false,"type_oid":25,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"handle_data_len","type":"smallint","description":"Length of the data associated with the I/O operation. For I/O to/from shared_buffers and temp_buffers, this indicates the number of buffers the I/O is operating on.","documented_type":"int2","hidden":false,"type_oid":21,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"raw_result","type":"integer","description":"Low-level result of the I/O operation, or NULL if the operation has not yet completed.","documented_type":"int4","hidden":false,"type_oid":23,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"result","type":"text","description":"High-level result of the I/O operation:","hidden":false,"type_oid":25,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"target_desc","type":"text","description":"Description of what the I/O operation is targeting.","hidden":false,"type_oid":25,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"f_sync","type":"boolean","description":"Flag indicating whether the I/O is executed synchronously.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"f_localmem","type":"boolean","description":"Flag indicating whether the I/O references process local memory.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"f_buffered","type":"boolean","description":"Flag indicating whether the I/O is buffered I/O.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_am","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"amcanorderbyop","type":"boolean","description":"Does the access method support ordered scans sorted by the result of an operator on the indexed column?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"ampredlocks","type":"boolean","description":"Does an index of this type manage fine-grained predicate locks?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"ambuildempty","type":"regproc","description":"\"Build empty index\" function","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":24,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[{"name":"amindexnulls","type":"boolean","description":"Does the access method support null index entries?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[],"description_changes":[{"name":"ambeginscan","from":"\"Start new scan\" function","to":"\"Prepare for index scan\" function"},{"name":"amcanorder","from":"Does the access method support ordered scans?","to":"Does the access method support ordered scans sorted by the indexed column's value?"},{"name":"amendscan","from":"\"End this scan\" function","to":"\"Clean up after index scan\" function"},{"name":"amrescan","from":"\"Restart this scan\" function","to":"\"(Re)start index scan\" function"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"amsearcharray","type":"boolean","description":"Does the access method support ScalarArrayOpExpr searches?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amcanreturn","type":"regproc","description":"Function to check whether index supports index-only scans, or zero if none","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":28,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"amcanreturn","from":"Function to check whether index supports index-only scans, or zero if none","to":"Function to check whether an index column supports index-only scans. Can be zero if index-only scans are never supported."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[{"name":"amhandler","type":"regproc","description":"OID of a handler function that is responsible for supplying information about the access method","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amtype","type":"\"char\"","description":"Currently always i to indicate an index access method; other values may be allowed in future","documented_type":"char","hidden":false,"type_oid":18,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[{"name":"amstrategies","type":"smallint","description":"Number of operator strategies for this access method, or zero if access method does not have a fixed set of operator strategies","documented_type":"int2","hidden":false,"type_oid":21,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amsupport","type":"smallint","description":"Number of support routines for this access method","documented_type":"int2","hidden":false,"type_oid":21,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amcanorder","type":"boolean","description":"Does the access method support ordered scans sorted by the indexed column's value?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amcanorderbyop","type":"boolean","description":"Does the access method support ordered scans sorted by the result of an operator on the indexed column?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amcanbackward","type":"boolean","description":"Does the access method support backward scanning?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amcanunique","type":"boolean","description":"Does the access method support unique indexes?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amcanmulticol","type":"boolean","description":"Does the access method support multicolumn indexes?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amoptionalkey","type":"boolean","description":"Does the access method support a scan without any constraint for the first index column?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amsearcharray","type":"boolean","description":"Does the access method support ScalarArrayOpExpr searches?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amsearchnulls","type":"boolean","description":"Does the access method support IS NULL/NOT NULL searches?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amstorage","type":"boolean","description":"Can index storage data type differ from column data type?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amclusterable","type":"boolean","description":"Can an index of this type be clustered on?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"ampredlocks","type":"boolean","description":"Does an index of this type manage fine-grained predicate locks?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amkeytype","type":"oid","description":"Type of data stored in index, or zero if not a fixed type","references":"pg_type.oid","hidden":false,"type_oid":26,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"aminsert","type":"regproc","description":"\"Insert this tuple\" function","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"ambeginscan","type":"regproc","description":"\"Prepare for index scan\" function","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amgettuple","type":"regproc","description":"\"Next valid tuple\" function, or zero if none","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":18,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amgetbitmap","type":"regproc","description":"\"Fetch all valid tuples\" function, or zero if none","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":19,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amrescan","type":"regproc","description":"\"(Re)start index scan\" function","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amendscan","type":"regproc","description":"\"Clean up after index scan\" function","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":21,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"ammarkpos","type":"regproc","description":"\"Mark current scan position\" function","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":22,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amrestrpos","type":"regproc","description":"\"Restore marked scan position\" function","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":23,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"ambuild","type":"regproc","description":"\"Build new index\" function","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":24,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"ambuildempty","type":"regproc","description":"\"Build empty index\" function","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":25,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"ambulkdelete","type":"regproc","description":"Bulk-delete function","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":26,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amvacuumcleanup","type":"regproc","description":"Post-VACUUM cleanup function","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":27,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amcanreturn","type":"regproc","description":"Function to check whether an index column supports index-only scans. Can be zero if index-only scans are never supported.","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":28,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amcostestimate","type":"regproc","description":"Function to estimate cost of an index scan","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":29,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amoptions","type":"regproc","description":"Function to parse and validate reloptions for an index","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":30,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"amtype","from":"Currently always i to indicate an index access method; other values may be allowed in future","to":"t = table (including materialized views), i = index."},{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_amop","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"amoppurpose","type":"\"char\"","description":"Operator purpose, either s for search or o for ordering","documented_type":"char","hidden":false,"type_oid":18,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"amopsortfamily","type":"oid","description":"The btree operator family this entry sorts according to, if an ordering operator; zero if a search operator","references":"pg_opfamily.oid","hidden":false,"type_oid":26,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"amopsortfamily","from":"The btree operator family this entry sorts according to, if an ordering operator; zero if a search operator","to":"The B-tree operator family this entry sorts according to, if an ordering operator; zero if a search operator"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_amproc","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"amproc","from":"OID of the procedure","to":"OID of the function"},{"name":"amprocnum","from":"Support procedure number","to":"Support function number"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_attrdef","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[{"name":"adbin","from":"text","to":"pg_node_tree"}],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[{"name":"adsrc","type":"text","description":"A human-readable representation of the default value","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[{"name":"adbin","from":"The internal representation of the column default value","to":"The column default value, in nodeToString() representation. Use pg_get_expr(adbin, adrelid) to convert it to an SQL expression."},{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"adbin","attribute":"not_null","from":false,"to":true},{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"adbin","from":"The column default value, in nodeToString() representation. Use pg_get_expr(adbin, adrelid) to convert it to an SQL expression.","to":"The column default or generation expression, in nodeToString() representation. Use pg_get_expr(adbin, adrelid) to convert it to an SQL expression."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_attribute","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"attcollation","type":"oid","description":"The defined collation of the column, or zero if the column is not of a collatable data type.","references":"pg_collation.oid","hidden":false,"type_oid":26,"attnum":18,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"attfdwoptions","type":"text[]","description":"Attribute-level foreign data wrapper options, as \"keyword=value\" strings","hidden":false,"type_oid":1009,"attnum":21,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"attnotnull","from":"This represents a not-null constraint. It is possible to change this column to enable or disable the constraint.","to":"This represents a not-null constraint."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[{"name":"attidentity","type":"\"char\"","description":"If a zero byte (''), then not an identity column. Otherwise, a = generated always, d = generated by default.","documented_type":"char","hidden":false,"type_oid":18,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"attfdwoptions","from":"Attribute-level foreign data wrapper options, as \"keyword=value\" strings","to":"Attribute-level foreign data wrapper options, as “keyword=value” strings"},{"name":"attndims","from":"Number of dimensions, if the column is an array type; otherwise 0. (Presently, the number of dimensions of an array is not enforced, so any nonzero value effectively means \"it's an array\".)","to":"Number of dimensions, if the column is an array type; otherwise 0. (Presently, the number of dimensions of an array is not enforced, so any nonzero value effectively means “it's an array”.)"},{"name":"attoptions","from":"Attribute-level options, as \"keyword=value\" strings","to":"Attribute-level options, as “keyword=value” strings"},{"name":"attstattarget","from":"attstattarget controls the level of detail of statistics accumulated for this column by ANALYZE. A zero value indicates that no statistics should be collected. A negative value says to use the system default statistics target. The exact meaning of positive values is data type-dependent. For scalar data types, attstattarget is both the target number of \"most common values\" to collect, and the target number of histogram bins to create.","to":"attstattarget controls the level of detail of statistics accumulated for this column by ANALYZE. A zero value indicates that no statistics should be collected. A negative value says to use the system default statistics target. The exact meaning of positive values is data type-dependent. For scalar data types, attstattarget is both the target number of “most common values” to collect, and the target number of histogram bins to create."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"10","to":"11","status":"changed","added_columns":[{"name":"atthasmissing","type":"boolean","description":"This column has a value which is used where the column is entirely missing from the row, as happens when a column is added with a non-volatile DEFAULT value after the row is created. The actual value used is stored in the attmissingval column.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"attmissingval","type":"anyarray","description":"This column has a one element array containing the value used when the column is entirely missing from the row, as happens when the column is added with a non-volatile DEFAULT value after the row is created. The value is only used when atthasmissing is true. If there is no value the column is null.","hidden":false,"type_oid":2277,"attnum":24,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[{"name":"attgenerated","type":"\"char\"","description":"If a zero byte (''), then not a generated column. Otherwise, s = stored. (Other values might be added in the future.)","documented_type":"char","hidden":false,"type_oid":18,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"atthasdef","from":"This column has a default value, in which case there will be a corresponding entry in the pg_attrdef catalog that actually defines the value.","to":"This column has a default expression or generation expression, in which case there will be a corresponding entry in the pg_attrdef catalog that actually defines the expression. (Check attgenerated to determine whether this is a default or a generation expression.)"},{"name":"attnum","from":"The number of the column. Ordinary columns are numbered from 1 up. System columns, such as oid, have (arbitrary) negative numbers.","to":"The number of the column. Ordinary columns are numbered from 1 up. System columns, such as ctid, have (arbitrary) negative numbers."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"attcompression","type":"\"char\"","description":"The current compression method of the column. Typically this is '\\0' to specify use of the current default setting (see default_toast_compression). Otherwise, 'p' selects pglz compression, while 'l' selects LZ4 compression. However, this field is ignored whenever attstorage does not allow compression.","documented_type":"char","hidden":false,"type_oid":18,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"attcollation","from":"The defined collation of the column, or zero if the column is not of a collatable data type.","to":"The defined collation of the column, or zero if the column is not of a collatable data type"},{"name":"atttypid","from":"The data type of this column","to":"The data type of this column (zero for a dropped column)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":true,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[{"name":"attinhcount","from":"integer","to":"smallint"},{"name":"attndims","from":"integer","to":"smallint"},{"name":"attstattarget","from":"integer","to":"smallint"}],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":true,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"attstattarget","from":"attstattarget controls the level of detail of statistics accumulated for this column by ANALYZE. A zero value indicates that no statistics should be collected. A negative value says to use the system default statistics target. The exact meaning of positive values is data type-dependent. For scalar data types, attstattarget is both the target number of “most common values” to collect, and the target number of histogram bins to create.","to":"attstattarget controls the level of detail of statistics accumulated for this column by ANALYZE. A zero value indicates that no statistics should be collected. A null value says to use the system default statistics target. The exact meaning of positive values is data type-dependent. For scalar data types, attstattarget is both the target number of “most common values” to collect, and the target number of histogram bins to create."}],"reference_changes":[],"attribute_changes":[{"name":"attstattarget","attribute":"not_null","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":true,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[{"name":"attcacheoff","type":"integer","description":"Always -1 in storage, but when loaded into a row descriptor in memory this might be updated to cache the offset of the attribute within the row","documented_type":"int4","hidden":false,"type_oid":23,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[],"description_changes":[{"name":"attgenerated","from":"If a zero byte (''), then not a generated column. Otherwise, s = stored. (Other values might be added in the future.)","to":"If a zero byte (''), then not a generated column. Otherwise, s = stored, v = virtual. A stored generated column is physically stored like a normal column. A virtual generated column is physically stored as a null value, with the actual value being computed at run time."},{"name":"attnotnull","from":"This represents a not-null constraint.","to":"This column has a (possibly invalid) not-null constraint."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_auth_members","changes":[{"from":"15","to":"16","status":"changed","added_columns":[{"name":"oid","type":"oid","description":"Row identifier","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"inherit_option","type":"boolean","description":"True if the member automatically inherits the privileges of the granted role","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"set_option","type":"boolean","description":"True if the member can SET ROLE to the granted role","documented_type":"bool","hidden":false,"type_oid":16,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_authid","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"rolreplication","type":"boolean","description":"Role is a replication role. That is, this role can initiate streaming replication (see Section 25.2.5) and set/unset the system backup mode using pg_start_backup and pg_stop_backup","documented_type":"bool","hidden":false,"type_oid":16,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolpassword","from":"Password (possibly encrypted); null if none. If the password is encrypted, this column will contain the string md5 followed by a 32-character hexadecimal MD5 hash. The MD5 hash will be of the user's password concatenated to their username (for example, if user joe has password xyzzy, PostgreSQL will store the md5 hash of xyzzyjoe).","to":"Password (possibly encrypted); null if none. If the password is encrypted, this column will begin with the string md5 followed by a 32-character hexadecimal MD5 hash. The MD5 hash will be of the user's password concatenated to their user name. For example, if user joe has password xyzzy, PostgreSQL will store the md5 hash of xyzzyjoe. A password that does not follow that format is assumed to be unencrypted."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[{"name":"rolbypassrls","type":"boolean","description":"Role bypasses every row level security policy, see Section 5.7 for more information.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[{"name":"rolcatupdate","type":"boolean","description":"Role can update system catalogs directly. (Even a superuser cannot do this unless this column is true)","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[],"description_changes":[{"name":"rolcanlogin","from":"Role can log in. That is, this role can be given as the initial session authorization identifier","to":"Role can log in. That is, this role can be given as the initial session authorization identifier."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolreplication","from":"Role is a replication role. That is, this role can initiate streaming replication (see Section 25.2.5) and set/unset the system backup mode using pg_start_backup and pg_stop_backup","to":"Role is a replication role. A replication role can initiate replication connections and create and drop replication slots."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolpassword","from":"Password (possibly encrypted); null if none. If the password is encrypted, this column will begin with the string md5 followed by a 32-character hexadecimal MD5 hash. The MD5 hash will be of the user's password concatenated to their user name. For example, if user joe has password xyzzy, PostgreSQL will store the md5 hash of xyzzyjoe. A password that does not follow that format is assumed to be unencrypted.","to":"Password (possibly encrypted); null if none. The format depends on the form of encryption used."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"},{"name":"rolbypassrls","from":"Role bypasses every row level security policy, see Section 5.7 for more information.","to":"Role bypasses every row level security policy, see Section 5.8 for more information."}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolpassword","from":"Password (possibly encrypted); null if none. The format depends on the form of encryption used.","to":"Encrypted password; null if none. The format depends on the form of encryption used."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolbypassrls","from":"Role bypasses every row level security policy, see Section 5.8 for more information.","to":"Role bypasses every row-level security policy, see Section 5.8 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolbypassrls","from":"Role bypasses every row-level security policy, see Section 5.8 for more information.","to":"Role bypasses every row-level security policy, see Section 5.9 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolbypassrls","from":"Role bypasses every row-level security policy, see Section 5.9 for more information.","to":"Role bypasses every row-level security policy, see Section 5.10 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_available_extension_versions","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"name","type":"name","description":"Extension name","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"version","type":"text","description":"Version name","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"installed","type":"boolean","description":"True if this version of this extension is currently installed","documented_type":"bool","hidden":false,"type_oid":16,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"superuser","type":"boolean","description":"True if only superusers are allowed to install this extension","documented_type":"bool","hidden":false,"type_oid":16,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relocatable","type":"boolean","description":"True if extension can be relocated to another schema","documented_type":"bool","hidden":false,"type_oid":16,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"schema","type":"name","description":"Name of the schema that the extension must be installed into, or NULL if partially or fully relocatable","hidden":false,"type_oid":19,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"requires","type":"name[]","description":"Names of prerequisite extensions, or NULL if none","hidden":false,"type_oid":1003,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"comment","type":"text","description":"Comment string from the extension's control file","hidden":false,"type_oid":25,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[{"name":"trusted","type":"boolean","description":"True if the extension can be installed by non-superusers with appropriate privileges","documented_type":"bool","hidden":false,"type_oid":16,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"superuser","from":"True if only superusers are allowed to install this extension","to":"True if only superusers are allowed to install this extension (but see trusted)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"location","type":"text","description":"The location where the extension is installed. If it is in the standard system location, then the value will be $system, while if it is found in the path specified by the extension_control_path GUC then the full path will be shown. Only superusers can see this information.","hidden":false,"type_oid":25,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_available_extensions","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"name","type":"name","description":"Extension name","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"default_version","type":"text","description":"Name of default version, or NULL if none is specified","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"installed_version","type":"text","description":"Currently installed version of the extension, or NULL if not installed","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"comment","type":"text","description":"Comment string from the extension's control file","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"location","type":"text","description":"The location where the extension is installed. If it is in the standard system location, then the value will be $system, while if it is found in the path specified by the extension_control_path GUC then the full path will be shown. Only superusers can see this information.","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_backend_memory_contexts","changes":[{"from":"13","to":"14","status":"added","added_columns":[{"name":"name","type":"text","description":"Name of the memory context","hidden":false,"type_oid":25,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"ident","type":"text","description":"Identification information of the memory context. This field is truncated at 1024 bytes","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"parent","type":"text","description":"Name of the parent of this memory context","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"level","type":"integer","description":"Distance from TopMemoryContext in context tree","documented_type":"int4","hidden":false,"type_oid":23,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_bytes","type":"bigint","description":"Total bytes allocated for this memory context","documented_type":"int8","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_nblocks","type":"bigint","description":"Total number of blocks allocated for this memory context","documented_type":"int8","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"free_bytes","type":"bigint","description":"Free space in bytes","documented_type":"int8","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"free_chunks","type":"bigint","description":"Total number of free chunks","documented_type":"int8","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"used_bytes","type":"bigint","description":"Used space in bytes","documented_type":"int8","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"type","type":"text","description":"Type of the memory context","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"path","type":"integer[]","description":"Array of transient numerical identifiers to describe the memory context hierarchy. The first element is for TopMemoryContext, subsequent elements contain intermediate parents and the final element contains the identifier for the current context.","documented_type":"int4[]","hidden":false,"type_oid":1007,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"parent","type":"text","description":"Name of the parent of this memory context","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[{"name":"level","from":"Distance from TopMemoryContext in context tree","to":"The 1-based level of the context in the memory context hierarchy. The level of a context also shows the position of that context in the path column."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_cast","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_class","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"relpersistence","type":"\"char\"","description":"p = permanent table, u = unlogged table, t = temporary table","documented_type":"char","hidden":false,"type_oid":18,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[{"name":"relistemp","type":"boolean","description":"True if this table is a temporary relation. If so, only the creating session can safely access its contents.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"relhasexclusion","type":"boolean","description":"For a table, true if the table has (or once had) any exclusion constraints; for an index, true if the index supports an exclusion constraint","documented_type":"bool","hidden":false,"type_oid":16,"attnum":21,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[],"description_changes":[{"name":"relkind","from":"r = ordinary table, i = index, S = sequence, v = view, c = composite type, t = TOAST table","to":"r = ordinary table, i = index, S = sequence, v = view, c = composite type, t = TOAST table, f = foreign table"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"relallvisible","type":"integer","description":"Number of pages that are marked all-visible in the table's visibility map. This is only an estimate used by the planner. It is updated by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX.","documented_type":"int4","hidden":false,"type_oid":23,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[{"name":"relispopulated","type":"boolean","description":"True if relation is populated (this is true for all relations other than some materialized views)","documented_type":"bool","hidden":false,"type_oid":16,"attnum":25,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"relminmxid","type":"xid","description":"All multixact IDs before this one have been replaced by a transaction ID in this table. This is used to track whether the table needs to be vacuumed in order to prevent multixact ID wraparound or to allow pg_multixact to be shrunk. Zero (InvalidMultiXactId) if the relation is not a table.","hidden":false,"type_oid":28,"attnum":27,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"},{"name":"relkind","from":"r = ordinary table, i = index, S = sequence, v = view, c = composite type, t = TOAST table, f = foreign table","to":"r = ordinary table, i = index, S = sequence, v = view, m = materialized view, c = composite type, t = TOAST table, f = foreign table"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.3","to":"9.4","status":"changed","added_columns":[{"name":"relreplident","type":"\"char\"","description":"Columns used to form \"replica identity\" for rows: d = default (primary key, if any), n = nothing, f = all columns i = index with indisreplident set, or default","documented_type":"char","hidden":false,"type_oid":18,"attnum":25,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[{"name":"reltoastidxid","type":"oid","description":"For a TOAST table, the OID of its index. 0 if not a TOAST table.","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[{"name":"relrowsecurity","type":"boolean","description":"True if table has row level security enabled; see pg_policy catalog","documented_type":"bool","hidden":false,"type_oid":16,"attnum":24,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"relforcerowsecurity","type":"boolean","description":"True if row level security (when enabled) will also apply to table owner; see pg_policy catalog","documented_type":"bool","hidden":false,"type_oid":16,"attnum":25,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"relreplident","from":"Columns used to form \"replica identity\" for rows: d = default (primary key, if any), n = nothing, f = all columns i = index with indisreplident set, or default","to":"Columns used to form \"replica identity\" for rows: d = default (primary key, if any), n = nothing, f = all columns, i = index with indisreplident set (same as nothing if the index used has been dropped)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[{"name":"relispartition","type":"boolean","description":"True if table is a partition","documented_type":"bool","hidden":false,"type_oid":16,"attnum":28,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"relpartbound","type":"pg_node_tree","description":"If table is a partition (see relispartition), internal representation of the partition bound","hidden":false,"type_oid":194,"attnum":33,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"relfilenode","from":"Name of the on-disk file of this relation; zero means this is a \"mapped\" relation whose disk file name is determined by low-level state","to":"Name of the on-disk file of this relation; zero means this is a “mapped” relation whose disk file name is determined by low-level state"},{"name":"relfrozenxid","from":"All transaction IDs before this one have been replaced with a permanent (\"frozen\") transaction ID in this table. This is used to track whether the table needs to be vacuumed in order to prevent transaction ID wraparound or to allow pg_clog to be shrunk. Zero (InvalidTransactionId) if the relation is not a table.","to":"All transaction IDs before this one have been replaced with a permanent (“frozen”) transaction ID in this table. This is used to track whether the table needs to be vacuumed in order to prevent transaction ID wraparound or to allow pg_xact to be shrunk. Zero (InvalidTransactionId) if the relation is not a table."},{"name":"relkind","from":"r = ordinary table, i = index, S = sequence, v = view, m = materialized view, c = composite type, t = TOAST table, f = foreign table","to":"r = ordinary table, i = index, S = sequence, t = TOAST table, v = view, m = materialized view, c = composite type, f = foreign table, p = partitioned table"},{"name":"reloptions","from":"Access-method-specific options, as \"keyword=value\" strings","to":"Access-method-specific options, as “keyword=value” strings"},{"name":"relreplident","from":"Columns used to form \"replica identity\" for rows: d = default (primary key, if any), n = nothing, f = all columns, i = index with indisreplident set (same as nothing if the index used has been dropped)","to":"Columns used to form “replica identity” for rows: d = default (primary key, if any), n = nothing, f = all columns, i = index with indisreplident set (same as nothing if the index used has been dropped)"},{"name":"reltoastrelid","from":"OID of the TOAST table associated with this table, 0 if none. The TOAST table stores large attributes \"out of line\" in a secondary table.","to":"OID of the TOAST table associated with this table, 0 if none. The TOAST table stores large attributes “out of line” in a secondary table."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"10","to":"11","status":"changed","added_columns":[{"name":"relrewrite","type":"oid","description":"For new relations being written during a DDL operation that requires a table rewrite, this contains the OID of the original relation; otherwise 0. That state is only visible internally; this field should never contain anything other than 0 for a user-visible relation.","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":28,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[{"name":"relhaspkey","type":"boolean","description":"True if the table has (or once had) a primary key","documented_type":"bool","hidden":false,"type_oid":16,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[],"description_changes":[{"name":"relispartition","from":"True if table is a partition","to":"True if table or index is a partition"},{"name":"relkind","from":"r = ordinary table, i = index, S = sequence, t = TOAST table, v = view, m = materialized view, c = composite type, f = foreign table, p = partitioned table","to":"r = ordinary table, i = index, S = sequence, t = TOAST table, v = view, m = materialized view, c = composite type, f = foreign table, p = partitioned table, I = partitioned index"},{"name":"reltuples","from":"Number of rows in the table. This is only an estimate used by the planner. It is updated by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX.","to":"Number of live rows in the table. This is only an estimate used by the planner. It is updated by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[{"name":"relhasoids","type":"boolean","description":"True if we generate an OID for each row of the relation","documented_type":"bool","hidden":false,"type_oid":16,"attnum":19,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"},{"name":"relacl","from":"Access privileges; see GRANT and REVOKE for details","to":"Access privileges; see Section 5.7 for details"},{"name":"relam","from":"If this is an index, the access method used (B-tree, hash, etc.)","to":"If this is a table or an index, the access method used (heap, B-tree, hash, etc.)"},{"name":"relhassubclass","from":"True if table has (or once had) any inheritance children","to":"True if table or index has (or once had) any inheritance children"},{"name":"reltablespace","from":"The tablespace in which this relation is stored. If zero, the database's default tablespace is implied. (Not meaningful if the relation has no on-disk file.)","to":"The tablespace in which this relation is stored. If zero, the database's default tablespace is implied. Not meaningful if the relation has no on-disk file, except for partitioned tables, where this is the tablespace in which partitions will be created when one is not specified in the creation command."}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"relam","from":"If this is a table or an index, the access method used (heap, B-tree, hash, etc.)","to":"If this is a table or an index, the access method used (heap, B-tree, hash, etc.); otherwise zero (zero occurs for sequences, as well as relations without storage, such as views)"},{"name":"relforcerowsecurity","from":"True if row level security (when enabled) will also apply to table owner; see pg_policy catalog","to":"True if row-level security (when enabled) will also apply to table owner; see pg_policy catalog"},{"name":"reloftype","from":"For typed tables, the OID of the underlying composite type, zero for all other relations","to":"For typed tables, the OID of the underlying composite type; zero for all other relations"},{"name":"relrewrite","from":"For new relations being written during a DDL operation that requires a table rewrite, this contains the OID of the original relation; otherwise 0. That state is only visible internally; this field should never contain anything other than 0 for a user-visible relation.","to":"For new relations being written during a DDL operation that requires a table rewrite, this contains the OID of the original relation; otherwise zero. That state is only visible internally; this field should never contain anything other than zero for a user-visible relation."},{"name":"relrowsecurity","from":"True if table has row level security enabled; see pg_policy catalog","to":"True if table has row-level security enabled; see pg_policy catalog"},{"name":"reltoastrelid","from":"OID of the TOAST table associated with this table, 0 if none. The TOAST table stores large attributes “out of line” in a secondary table.","to":"OID of the TOAST table associated with this table, zero if none. The TOAST table stores large attributes “out of line” in a secondary table."},{"name":"reltuples","from":"Number of live rows in the table. This is only an estimate used by the planner. It is updated by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX.","to":"Number of live rows in the table. This is only an estimate used by the planner. It is updated by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX. If the table has never yet been vacuumed or analyzed, reltuples contains -1 indicating that the row count is unknown."},{"name":"reltype","from":"The OID of the data type that corresponds to this table's row type, if any (zero for indexes, which have no pg_type entry)","to":"The OID of the data type that corresponds to this table's row type, if any; zero for indexes, sequences, and toast tables, which have no pg_type entry"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"relhassubclass","from":"True if table or index has (or once had) any inheritance children","to":"True if table or index has (or once had) any inheritance children or partitions"},{"name":"relpersistence","from":"p = permanent table, u = unlogged table, t = temporary table","to":"p = permanent table/sequence, u = unlogged table/sequence, t = temporary table/sequence"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"relacl","from":"Access privileges; see Section 5.7 for details","to":"Access privileges; see Section 5.8 for details"},{"name":"relam","from":"If this is a table or an index, the access method used (heap, B-tree, hash, etc.); otherwise zero (zero occurs for sequences, as well as relations without storage, such as views)","to":"The access method used to access this table or index. Not meaningful if the relation is a sequence or has no on-disk file, except for partitioned tables, where, if set, it takes precedence over default_table_access_method when determining the access method to use for partitions created when one is not specified in the creation command."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"relallfrozen","type":"integer","description":"Number of pages that are marked all-frozen in the table's visibility map. This is only an estimate used for triggering autovacuums. It can also be used along with relallvisible for scheduling manual vacuums and tuning vacuum's freezing behavior. It is updated by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX.","documented_type":"int4","hidden":false,"type_oid":23,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"relacl","from":"Access privileges; see Section 5.8 for details","to":"Access privileges; see Section 5.9 for details"},{"name":"relkind","from":"r = ordinary table, i = index, S = sequence, t = TOAST table, v = view, m = materialized view, c = composite type, f = foreign table, p = partitioned table, I = partitioned index","to":"r = ordinary table, i = index, S = sequence, t = TOAST table, v = view, m = materialized view, c = composite type, f = foreign table, p = partitioned table, I = partitioned index, g = property graph"},{"name":"reltype","from":"The OID of the data type that corresponds to this table's row type, if any; zero for indexes, sequences, and toast tables, which have no pg_type entry","to":"The OID of the data type that corresponds to this table's row type, if any; zero for indexes, sequences, and TOAST tables, which have no pg_type entry"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_collation","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier (hidden system attribute; explicitly select oid).","schema_note":"The documentation omits this OID attribute; verified from the release-tag CATALOG declaration.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL9_1_24/src/include/catalog/pg_collation.h","hidden":true,"type_oid":26,"attnum":-2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"collname","type":"name","description":"Collation name (unique per namespace and encoding)","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"collnamespace","type":"oid","description":"The OID of the namespace that contains this collation","references":"pg_namespace.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"collowner","type":"oid","description":"Owner of the collation","references":"pg_authid.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"collencoding","type":"integer","description":"Encoding in which the collation is applicable, or -1 if it works for any encoding","documented_type":"int4","hidden":false,"type_oid":23,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"collcollate","type":"name","description":"LC_COLLATE for this collation object","hidden":false,"type_oid":19,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"collctype","type":"name","description":"LC_CTYPE for this collation object","hidden":false,"type_oid":19,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[{"name":"collprovider","type":"\"char\"","description":"Provider of the collation: d = database default, c = libc, i = icu","documented_type":"char","hidden":false,"type_oid":18,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"collversion","type":"text","description":"Provider-specific version of the collation. This is recorded when the collation is created and then checked when it is used, to detect changes in the collation definition that could lead to data corruption.","hidden":false,"type_oid":25,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[{"name":"collisdeterministic","type":"boolean","description":"Is the collation deterministic?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[{"name":"colliculocale","type":"text","description":"ICU locale ID for this collation object","hidden":false,"type_oid":25,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[{"name":"collcollate","from":"name","to":"text"},{"name":"collctype","from":"name","to":"text"}],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"collcollate","attribute":"not_null","from":true,"to":false},{"name":"collctype","attribute":"not_null","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"collicurules","type":"text","description":"ICU collation rules for this collation object","hidden":false,"type_oid":25,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[{"name":"colllocale","type":"text","description":"Collation provider locale name for this collation object. If the provider is libc, colllocale is NULL; collcollate and collctype are used instead.","hidden":false,"type_oid":25,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"colliculocale","type":"text","description":"ICU locale ID for this collation object","hidden":false,"type_oid":25,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[{"name":"collcollate","from":"LC_COLLATE for this collation object","to":"LC_COLLATE for this collation object. If the provider is not libc, collcollate is NULL and colllocale is used instead."},{"name":"collctype","from":"LC_CTYPE for this collation object","to":"LC_CTYPE for this collation object. If the provider is not libc, collctype is NULL and colllocale is used instead."},{"name":"collprovider","from":"Provider of the collation: d = database default, c = libc, i = icu","to":"Provider of the collation: d = database default, b = builtin, c = libc, i = icu"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true}]},{"name":"pg_config","changes":[{"from":"9.5","to":"9.6","status":"added","added_columns":[{"name":"name","type":"text","description":"The parameter name","hidden":false,"type_oid":25,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"setting","type":"text","description":"The parameter value","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_constraint","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"convalidated","type":"boolean","description":"Has the constraint been validated? Currently, can only be false for foreign keys","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[{"name":"conbin","from":"text","to":"pg_node_tree"}],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"connoinherit","type":"boolean","description":"This constraint is defined locally for the relation. It is a non-inheritable constraint.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"convalidated","from":"Has the constraint been validated? Currently, can only be false for foreign keys","to":"Has the constraint been validated? Currently, can only be false for foreign keys and CHECK constraints"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"confmatchtype","from":"Foreign key match type: f = full, p = partial, u = simple (unspecified)","to":"Foreign key match type: f = full, p = partial, s = simple"},{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[{"name":"conparentid","type":"oid","description":"The corresponding constraint in the parent partitioned table, if this is a constraint in a partition; else 0","references":"pg_constraint.oid","hidden":false,"type_oid":26,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[{"name":"consrc","type":"text","description":"If a check constraint, a human-readable representation of the expression","hidden":false,"type_oid":25,"attnum":25,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[{"name":"conbin","from":"If a check constraint, an internal representation of the expression","to":"If a check constraint, an internal representation of the expression. (It's recommended to use pg_get_constraintdef() to extract the definition of a check constraint.)"},{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"confrelid","from":"If a foreign key, the referenced table; else 0","to":"If a foreign key, the referenced table; else zero"},{"name":"conindid","from":"The index supporting this constraint, if it's a unique, primary key, foreign key, or exclusion constraint; else 0","to":"The index supporting this constraint, if it's a unique, primary key, foreign key, or exclusion constraint; else zero"},{"name":"conparentid","from":"The corresponding constraint in the parent partitioned table, if this is a constraint in a partition; else 0","to":"The corresponding constraint of the parent partitioned table, if this is a constraint on a partition; else zero"},{"name":"conrelid","from":"The table this constraint is on; 0 if not a table constraint","to":"The table this constraint is on; zero if not a table constraint"},{"name":"contypid","from":"The domain this constraint is on; 0 if not a domain constraint","to":"The domain this constraint is on; zero if not a domain constraint"},{"name":"convalidated","from":"Has the constraint been validated? Currently, can only be false for foreign keys and CHECK constraints","to":"Has the constraint been validated? Currently, can be false only for foreign keys and CHECK constraints"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[{"name":"confdelsetcols","type":"smallint[]","description":"If a foreign key with a SET NULL or SET DEFAULT delete action, the columns that will be updated. If null, all of the referencing columns will be updated.","references":"pg_attribute.attnum","documented_type":"int2[]","hidden":false,"type_oid":1005,"attnum":24,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[{"name":"coninhcount","from":"integer","to":"smallint"}],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"contype","from":"c = check constraint, f = foreign key constraint, p = primary key constraint, u = unique constraint, t = constraint trigger, x = exclusion constraint","to":"c = check constraint, f = foreign key constraint, n = not-null constraint (domains only), p = primary key constraint, u = unique constraint, t = constraint trigger, x = exclusion constraint"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"conenforced","type":"boolean","description":"Is the constraint enforced?","documented_type":"bool","hidden":false,"type_oid":16,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"conperiod","type":"boolean","description":"This constraint is defined with WITHOUT OVERLAPS (for primary keys and unique constraints) or PERIOD (for foreign keys).","documented_type":"bool","hidden":false,"type_oid":16,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"conexclop","from":"If an exclusion constraint, list of the per-column exclusion operators","to":"If an exclusion constraint or WITHOUT OVERLAPS primary key/unique constraint, list of the per-column exclusion operators."},{"name":"contype","from":"c = check constraint, f = foreign key constraint, n = not-null constraint (domains only), p = primary key constraint, u = unique constraint, t = constraint trigger, x = exclusion constraint","to":"c = check constraint, f = foreign key constraint, n = not-null constraint, p = primary key constraint, u = unique constraint, t = constraint trigger, x = exclusion constraint"},{"name":"convalidated","from":"Has the constraint been validated? Currently, can be false only for foreign keys and CHECK constraints","to":"Has the constraint been validated?"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true}]},{"name":"pg_conversion","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"conproc","from":"Conversion procedure","to":"Conversion function"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"conforencoding","from":"Source encoding ID","to":"Source encoding ID (pg_encoding_to_char() can translate this number to the encoding name)"},{"name":"contoencoding","from":"Destination encoding ID","to":"Destination encoding ID (pg_encoding_to_char() can translate this number to the encoding name)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_cursors","changes":[]},{"name":"pg_database","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[{"name":"datminmxid","type":"xid","description":"All multixact IDs before this one have been replaced with a transaction ID in this database. This is used to track whether the database needs to be vacuumed in order to prevent multixact ID wraparound or to allow pg_multixact to be shrunk. It is the minimum of the per-table pg_class.relminmxid values.","hidden":false,"type_oid":28,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"datistemplate","from":"If true then this database can be used in the TEMPLATE clause of CREATE DATABASE to create a new database as a clone of this one","to":"If true, then this database can be cloned by any user with CREATEDB privileges; if false, then only superusers or the owner of the database can clone it."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"datfrozenxid","from":"All transaction IDs before this one have been replaced with a permanent (\"frozen\") transaction ID in this database. This is used to track whether the database needs to be vacuumed in order to prevent transaction ID wraparound or to allow pg_clog to be shrunk. It is the minimum of the per-table pg_class.relfrozenxid values.","to":"All transaction IDs before this one have been replaced with a permanent (“frozen”) transaction ID in this database. This is used to track whether the database needs to be vacuumed in order to prevent transaction ID wraparound or to allow pg_xact to be shrunk. It is the minimum of the per-table pg_class.relfrozenxid values."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"datconnlimit","from":"Sets maximum number of concurrent connections that can be made to this database. -1 means no limit.","to":"Sets maximum number of concurrent connections that can be made to this database. -1 means no limit, -2 indicates the database is invalid."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"datacl","from":"Access privileges; see GRANT and REVOKE for details","to":"Access privileges; see Section 5.7 for details"},{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[{"name":"datlocprovider","type":"\"char\"","description":"Locale provider for this database: c = libc, i = icu","documented_type":"char","hidden":false,"type_oid":18,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"daticulocale","type":"text","description":"ICU locale ID for this database","hidden":false,"type_oid":25,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datcollversion","type":"text","description":"Provider-specific version of the collation. This is recorded when the database is created and then checked when it is used, to detect changes in the collation definition that could lead to data corruption.","hidden":false,"type_oid":25,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"datlastsysoid","type":"oid","description":"Last system OID in the database; useful particularly to pg_dump","hidden":false,"type_oid":26,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[{"name":"datcollate","from":"name","to":"text"},{"name":"datctype","from":"name","to":"text"}],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":true,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"daticurules","type":"text","description":"ICU collation rules for this database","hidden":false,"type_oid":25,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[{"name":"dathasloginevt","type":"boolean","description":"Indicates that there are login event triggers defined for this database. This flag is used to avoid extra lookups on the pg_event_trigger table during each backend startup. This flag is used internally by PostgreSQL and should not be manually altered or read for monitoring purposes.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"datlocale","type":"text","description":"Collation provider locale name for this database. If the provider is libc, datlocale is NULL; datcollate and datctype are used instead.","hidden":false,"type_oid":25,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"daticulocale","type":"text","description":"ICU locale ID for this database","hidden":false,"type_oid":25,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[{"name":"datacl","from":"Access privileges; see Section 5.7 for details","to":"Access privileges; see Section 5.8 for details"},{"name":"datlocprovider","from":"Locale provider for this database: c = libc, i = icu","to":"Locale provider for this database: b = builtin, c = libc, i = icu"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"datacl","from":"Access privileges; see Section 5.8 for details","to":"Access privileges; see Section 5.9 for details"},{"name":"datcollate","from":"LC_COLLATE for this database","to":"LC_COLLATE for this database (ignored unless datlocprovider is c)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_db_role_setting","changes":[]},{"name":"pg_default_acl","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"defaclobjtype","from":"Type of object this entry is for: r = relation (table, view), S = sequence, f = function","to":"Type of object this entry is for: r = relation (table, view), S = sequence, f = function, T = type"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"defaclobjtype","from":"Type of object this entry is for: r = relation (table, view), S = sequence, f = function, T = type","to":"Type of object this entry is for: r = relation (table, view), S = sequence, f = function, T = type, n = schema"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"defaclacl","attribute":"not_null","from":false,"to":true},{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"defaclnamespace","from":"The OID of the namespace associated with this entry, or 0 if none","to":"The OID of the namespace associated with this entry, or zero if none"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"defaclobjtype","from":"Type of object this entry is for: r = relation (table, view), S = sequence, f = function, T = type, n = schema","to":"Type of object this entry is for: r = relation (table, view), S = sequence, f = function, T = type, n = schema, L = large object"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_depend","changes":[{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"classid","from":"The OID of the system catalog the dependent object is in","to":"The OID of the system catalog the dependent object is in, or zero for a DEPENDENCY_PIN entry"},{"name":"objid","from":"The OID of the specific dependent object","to":"The OID of the specific dependent object, or zero for a DEPENDENCY_PIN entry"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"classid","from":"The OID of the system catalog the dependent object is in, or zero for a DEPENDENCY_PIN entry","to":"The OID of the system catalog the dependent object is in"},{"name":"objid","from":"The OID of the specific dependent object, or zero for a DEPENDENCY_PIN entry","to":"The OID of the specific dependent object"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_description","changes":[{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"description","attribute":"not_null","from":false,"to":true}],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_dsm_registry_allocations","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"name","type":"text","description":"The name of the allocation in the DSM registry.","hidden":false,"type_oid":25,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"type","type":"text","description":"The type of allocation. Possible values are segment, area, and hash, which correspond to dynamic shared memory segments, areas, and hash tables, respectively.","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"size","type":"bigint","description":"Size of the allocation in bytes. NULL for entries that failed initialization.","documented_type":"int8","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_enum","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"enumsortorder","type":"real","description":"The sort position of this enum value within its enum type","documented_type":"float4","hidden":false,"type_oid":700,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_event_trigger","changes":[{"from":"9.2","to":"9.3","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier (hidden system attribute; explicitly select oid).","schema_note":"The documentation omits this OID attribute; verified from the release-tag CATALOG declaration.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL9_3_25/src/include/catalog/pg_event_trigger.h","hidden":true,"type_oid":26,"attnum":-2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"evtname","type":"name","description":"Trigger name (must be unique)","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"evtevent","type":"name","description":"Identifies the event for which this trigger fires","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"evtowner","type":"oid","description":"Owner of the event trigger","references":"pg_authid.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"evtfoid","type":"oid","description":"The function to be called","references":"pg_proc.oid","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"evtenabled","type":"\"char\"","description":"Controls in which session_replication_role modes the event trigger fires. O = trigger fires in \"origin\" and \"local\" modes, D = trigger is disabled, R = trigger fires in \"replica\" mode, A = trigger fires always.","documented_type":"char","hidden":false,"type_oid":18,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"evttags","type":"text[]","description":"Command tags for which this trigger will fire. If NULL, the firing of this trigger is not restricted on the basis of the command tag.","hidden":false,"type_oid":1009,"attnum":6,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"evtenabled","from":"Controls in which session_replication_role modes the event trigger fires. O = trigger fires in \"origin\" and \"local\" modes, D = trigger is disabled, R = trigger fires in \"replica\" mode, A = trigger fires always.","to":"Controls in which session_replication_role modes the event trigger fires. O = trigger fires in “origin” and “local” modes, D = trigger is disabled, R = trigger fires in “replica” mode, A = trigger fires always."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier."}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier.","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_extension","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier (hidden system attribute; explicitly select oid).","schema_note":"The documentation omits this OID attribute; verified from the release-tag CATALOG declaration.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL9_1_24/src/include/catalog/pg_extension.h","hidden":true,"type_oid":26,"attnum":-2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"extname","type":"name","description":"Name of the extension","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"extowner","type":"oid","description":"Owner of the extension","references":"pg_authid.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"extnamespace","type":"oid","description":"Schema containing the extension's exported objects","references":"pg_namespace.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"extrelocatable","type":"boolean","description":"True if extension can be relocated to another schema","documented_type":"bool","hidden":false,"type_oid":16,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"extversion","type":"text","description":"Version name for the extension","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"extconfig","type":"oid[]","description":"Array of regclass OIDs for the extension's configuration table(s), or NULL if none","references":"pg_class.oid","hidden":false,"type_oid":1028,"attnum":6,"type_modifier":-1,"array_dimensions":1,"not_null":false},{"name":"extcondition","type":"text[]","description":"Array of WHERE-clause filter conditions for the extension's configuration table(s), or NULL if none","hidden":false,"type_oid":1009,"attnum":7,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"extversion","attribute":"not_null","from":false,"to":true}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_file_settings","changes":[{"from":"9.4","to":"9.5","status":"added","added_columns":[{"name":"sourcefile","type":"text","description":"Full path name of the configuration file","hidden":false,"type_oid":25,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sourceline","type":"integer","description":"Line number within the configuration file where the entry appears","hidden":false,"type_oid":23,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"seqno","type":"integer","description":"Order in which the entries are processed (1..n)","hidden":false,"type_oid":23,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"name","type":"text","description":"Configuration parameter name","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"setting","type":"text","description":"Value to be assigned to the parameter","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"applied","type":"boolean","description":"True if the value can be applied successfully","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"error","type":"text","description":"If not null, an error message indicating why this entry could not be applied","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_foreign_data_wrapper","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"fdwhandler","type":"oid","description":"References a handler function that is responsible for supplying execution routines for the foreign-data wrapper. Zero if no handler is provided","references":"pg_proc.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"fdwvalidator","from":"References a validator function that is responsible for checking the validity of the generic options given to the foreign-data wrapper, as well as to foreign servers and user mappings using the foreign-data wrapper. Zero if no validator is provided.","to":"References a validator function that is responsible for checking the validity of the options given to the foreign-data wrapper, as well as options for foreign servers and user mappings using the foreign-data wrapper. Zero if no validator is provided"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"fdwoptions","from":"Foreign-data wrapper specific options, as \"keyword=value\" strings","to":"Foreign-data wrapper specific options, as “keyword=value” strings"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"fdwacl","from":"Access privileges; see GRANT and REVOKE for details","to":"Access privileges; see Section 5.7 for details"},{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"fdwacl","from":"Access privileges; see Section 5.7 for details","to":"Access privileges; see Section 5.8 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"fdwconnection","type":"oid","description":"References a connection function that is responsible for creating a connection string for a subscription when the subscription uses a server based on this foreign-data wrapper. Zero if this foreign-data wrapper does not support subscription connections.","references":"pg_proc.oid","hidden":false,"type_oid":26,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"fdwacl","from":"Access privileges; see Section 5.8 for details","to":"Access privileges; see Section 5.9 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_foreign_server","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"srvfdw","from":"The OID of the foreign-data wrapper of this foreign server","to":"OID of the foreign-data wrapper of this foreign server"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"srvoptions","from":"Foreign server specific options, as \"keyword=value\" strings","to":"Foreign server specific options, as “keyword=value” strings"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"},{"name":"srvacl","from":"Access privileges; see GRANT and REVOKE for details","to":"Access privileges; see Section 5.7 for details"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"srvacl","from":"Access privileges; see Section 5.7 for details","to":"Access privileges; see Section 5.8 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"srvacl","from":"Access privileges; see Section 5.8 for details","to":"Access privileges; see Section 5.9 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_foreign_table","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"ftrelid","type":"oid","description":"OID of the pg_class entry for this foreign table","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"ftserver","type":"oid","description":"OID of the foreign server for this foreign table","references":"pg_foreign_server.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"ftoptions","type":"text[]","description":"Foreign table options, as \"keyword=value\" strings","hidden":false,"type_oid":1009,"attnum":3,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"ftoptions","from":"Foreign table options, as \"keyword=value\" strings","to":"Foreign table options, as “keyword=value” strings"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"ftrelid","from":"OID of the pg_class entry for this foreign table","to":"The OID of the pg_class entry for this foreign table"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_group","changes":[]},{"name":"pg_hba_file_rules","changes":[{"from":"9.6","to":"10","status":"added","added_columns":[{"name":"line_number","type":"integer","description":"Line number of this rule in pg_hba.conf","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"type","type":"text","description":"Type of connection","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"database","type":"text[]","description":"List of database name(s) to which this rule applies","hidden":false,"type_oid":1009,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"user_name","type":"text[]","description":"List of user and group name(s) to which this rule applies","hidden":false,"type_oid":1009,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"address","type":"text","description":"Host name or IP address, or one of all, samehost, or samenet, or null for local connections","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"netmask","type":"text","description":"IP address mask, or null if not applicable","hidden":false,"type_oid":25,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"auth_method","type":"text","description":"Authentication method","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"options","type":"text[]","description":"Options specified for authentication method, if any","hidden":false,"type_oid":1009,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"error","type":"text","description":"If not null, an error message indicating why this line could not be processed","hidden":false,"type_oid":25,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"rule_number","type":"integer","description":"Number of this rule, if valid, otherwise NULL. This indicates the order in which each rule is considered until a match is found during authentication.","documented_type":"int4","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"file_name","type":"text","description":"Name of the file containing this rule","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"line_number","from":"Line number of this rule in pg_hba.conf","to":"Line number of this rule in file_name"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_ident_file_mappings","changes":[{"from":"14","to":"15","status":"added","added_columns":[{"name":"line_number","type":"integer","description":"Line number of this map in pg_ident.conf","documented_type":"int4","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"map_name","type":"text","description":"Name of the map","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sys_name","type":"text","description":"Detected user name of the client","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"pg_username","type":"text","description":"Requested PostgreSQL user name","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"error","type":"text","description":"If not NULL, an error message indicating why this line could not be processed","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"map_number","type":"integer","description":"Number of this map, in priority order, if valid, otherwise NULL","documented_type":"int4","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"file_name","type":"text","description":"Name of the file containing this map","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"line_number","from":"Line number of this map in pg_ident.conf","to":"Line number of this map in file_name"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_index","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"indisexclusion","type":"boolean","description":"If true, this index supports an exclusion constraint","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"indcollation","type":"oidvector","description":"For each column in the index key, this contains the OID of the collation to use for the index.","references":"pg_collation.oid","hidden":false,"type_oid":30,"attnum":13,"type_modifier":-1,"array_dimensions":1,"not_null":true}],"removed_columns":[],"type_changes":[{"name":"indexprs","from":"text","to":"pg_node_tree"},{"name":"indpred","from":"text","to":"pg_node_tree"}],"description_changes":[{"name":"indimmediate","from":"If true, the uniqueness check is enforced immediately on insertion (indisunique should always be true when this is true)","to":"If true, the uniqueness check is enforced immediately on insertion (irrelevant if indisunique is not true)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"indisvalid","from":"If true, the index is currently valid for queries. False means the index is possibly incomplete: it must still be modified by INSERT/UPDATE operations, but it cannot safely be used for queries. If it is unique, the uniqueness property is not true either.","to":"If both this flag and indisready are true, the index is currently valid for queries. False means the index is possibly incomplete: it must still be modified by INSERT/UPDATE operations, but it cannot safely be used for queries. If it is unique, the uniqueness property is not guaranteed true either."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.2","to":"9.3","status":"changed","added_columns":[{"name":"indislive","type":"boolean","description":"If false, the index is in process of being dropped, and should be ignored for all purposes (including HOT-safety decisions)","documented_type":"bool","hidden":false,"type_oid":16,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"indisvalid","from":"If both this flag and indisready are true, the index is currently valid for queries. False means the index is possibly incomplete: it must still be modified by INSERT/UPDATE operations, but it cannot safely be used for queries. If it is unique, the uniqueness property is not guaranteed true either.","to":"If true, the index is currently valid for queries. False means the index is possibly incomplete: it must still be modified by INSERT/UPDATE operations, but it cannot safely be used for queries. If it is unique, the uniqueness property is not guaranteed true either."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.3","to":"9.4","status":"changed","added_columns":[{"name":"indisreplident","type":"boolean","description":"If true this index has been chosen as \"replica identity\" using ALTER TABLE ... REPLICA IDENTITY USING INDEX ...","documented_type":"bool","hidden":false,"type_oid":16,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"indcollation","from":"For each column in the index key, this contains the OID of the collation to use for the index.","to":"For each column in the index key, this contains the OID of the collation to use for the index, or zero if the column is not of a collatable data type."},{"name":"indisreplident","from":"If true this index has been chosen as \"replica identity\" using ALTER TABLE ... REPLICA IDENTITY USING INDEX ...","to":"If true this index has been chosen as “replica identity” using ALTER TABLE ... REPLICA IDENTITY USING INDEX ..."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[{"name":"indnkeyatts","type":"smallint","description":"The number of key columns in the index, not counting any included columns, which are merely stored and do not participate in the index semantics","documented_type":"int2","hidden":false,"type_oid":21,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"indclass","from":"For each column in the index key, this contains the OID of the operator class to use. See pg_opclass for details.","to":"For each column in the index key (indnkeyatts values), this contains the OID of the operator class to use. See pg_opclass for details."},{"name":"indcollation","from":"For each column in the index key, this contains the OID of the collation to use for the index, or zero if the column is not of a collatable data type.","to":"For each column in the index key (indnkeyatts values), this contains the OID of the collation to use for the index, or zero if the column is not of a collatable data type."},{"name":"indkey","from":"This is an array of indnatts values that indicate which table columns this index indexes. For example a value of 1 3 would mean that the first and the third table columns make up the index key. A zero in this array indicates that the corresponding index attribute is an expression over the table columns, rather than a simple column reference.","to":"This is an array of indnatts values that indicate which table columns this index indexes. For example a value of 1 3 would mean that the first and the third table columns make up the index entries. Key columns come before non-key (included) columns. A zero in this array indicates that the corresponding index attribute is an expression over the table columns, rather than a simple column reference."},{"name":"indnatts","from":"The number of columns in the index (duplicates pg_class.relnatts)","to":"The total number of columns in the index (duplicates pg_class.relnatts); this number includes both key and included attributes"},{"name":"indoption","from":"This is an array of indnatts values that store per-column flag bits. The meaning of the bits is defined by the index's access method.","to":"This is an array of indnkeyatts values that store per-column flag bits. The meaning of the bits is defined by the index's access method."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"14","to":"15","status":"changed","added_columns":[{"name":"indnullsnotdistinct","type":"boolean","description":"This value is only used for unique indexes. If false, this unique index will consider null values distinct (so the index can contain multiple null values in a column, the default PostgreSQL behavior). If it is true, it will consider null values to be equal (so the index can only contain one null value in a column).","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"indkey","from":"This is an array of indnatts values that indicate which table columns this index indexes. For example a value of 1 3 would mean that the first and the third table columns make up the index entries. Key columns come before non-key (included) columns. A zero in this array indicates that the corresponding index attribute is an expression over the table columns, rather than a simple column reference.","to":"This is an array of indnatts values that indicate which table columns this index indexes. For example, a value of 1 3 would mean that the first and the third table columns make up the index entries. Key columns come before non-key (included) columns. A zero in this array indicates that the corresponding index attribute is an expression over the table columns, rather than a simple column reference."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_indexes","changes":[]},{"name":"pg_inherits","changes":[{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"inhparent","from":"The OID of the parent table","to":"The OID of the parent table or index"},{"name":"inhrelid","from":"The OID of the child table","to":"The OID of the child table or index"},{"name":"inhseqno","from":"If there is more than one direct parent for a child table (multiple inheritance), this number tells the order in which the inherited columns are to be arranged. The count starts at 1.","to":"If there is more than one direct parent for a child table (multiple inheritance), this number tells the order in which the inherited columns are to be arranged. The count starts at 1. Indexes can not have multiple inheritance, since they can only inherit when using declarative partitioning."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"inhseqno","from":"If there is more than one direct parent for a child table (multiple inheritance), this number tells the order in which the inherited columns are to be arranged. The count starts at 1. Indexes can not have multiple inheritance, since they can only inherit when using declarative partitioning.","to":"If there is more than one direct parent for a child table (multiple inheritance), this number tells the order in which the inherited columns are to be arranged. The count starts at 1. Indexes cannot have multiple inheritance, since they can only inherit when using declarative partitioning."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"inhdetachpending","type":"boolean","description":"true for a partition that is in the process of being detached; false otherwise.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_init_privs","changes":[{"from":"9.5","to":"9.6","status":"added","added_columns":[{"name":"objoid","type":"oid","description":"The OID of the specific object","references":"any OID column","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"classoid","type":"oid","description":"The OID of the system catalog the object is in","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"objsubid","type":"integer","description":"For a table column, this is the column number (the objoid and classoid refer to the table itself). For all other object types, this column is zero.","documented_type":"int4","hidden":false,"type_oid":23,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"privtype","type":"\"char\"","description":"A code defining the type of initial privilege of this object; see text","documented_type":"char","hidden":false,"type_oid":18,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"initprivs","type":"aclitem[]","description":"The initial access privileges; see GRANT and REVOKE for details","hidden":false,"type_oid":1034,"attnum":5,"type_modifier":-1,"array_dimensions":1,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"initprivs","from":"The initial access privileges; see GRANT and REVOKE for details","to":"The initial access privileges; see Section 5.7 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"initprivs","from":"The initial access privileges; see Section 5.7 for details","to":"The initial access privileges; see Section 5.8 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"initprivs","from":"The initial access privileges; see Section 5.8 for details","to":"The initial access privileges; see Section 5.9 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_language","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"laninline","from":"This references a function that is responsible for executing \"inline\" anonymous code blocks (DO blocks). Zero if inline blocks are not supported.","to":"This references a function that is responsible for executing “inline” anonymous code blocks (DO blocks). Zero if inline blocks are not supported."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"lanacl","from":"Access privileges; see GRANT and REVOKE for details","to":"Access privileges; see Section 5.7 for details"},{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"lanplcallfoid","from":"For noninternal languages this references the language handler, which is a special function that is responsible for executing all functions that are written in the particular language","to":"For noninternal languages this references the language handler, which is a special function that is responsible for executing all functions that are written in the particular language. Zero for internal languages."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"lanacl","from":"Access privileges; see Section 5.7 for details","to":"Access privileges; see Section 5.8 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"lanacl","from":"Access privileges; see Section 5.8 for details","to":"Access privileges; see Section 5.9 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_largeobject","changes":[{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"data","attribute":"not_null","from":false,"to":true}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_largeobject_metadata","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"lomacl","from":"Access privileges; see GRANT and REVOKE for details","to":"Access privileges; see Section 5.7 for details"},{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"lomacl","from":"Access privileges; see Section 5.7 for details","to":"Access privileges; see Section 5.8 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"lomacl","from":"Access privileges; see Section 5.8 for details","to":"Access privileges; see Section 5.9 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_locks","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"mode","from":"Name of the lock mode held or desired by this process (see Section 13.3.1)","to":"Name of the lock mode held or desired by this process (see Section 13.3.1 and Section 13.2.3)"},{"name":"objsubid","from":"For a table column, this is the column number (the classid and objid refer to the table itself). For all other object types, this column is zero. Null if the object is not a general database object","to":"Column number targeted by the lock (the classid and objid refer to the table itself), or zero if the target is some other general database object, or null if the target is not a general database object"},{"name":"pid","from":"Process ID of the server process holding or awaiting this lock. Null if the lock is held by a prepared transaction.","to":"Process ID of the server process holding or awaiting this lock, or null if the lock is held by a prepared transaction"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"fastpath","type":"boolean","description":"True if lock was taken via fast path, false if taken via main lock table","hidden":false,"type_oid":16,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"classid","from":"OID of the system catalog containing the object, or null if the object is not a general database object","to":"OID of the system catalog containing the lock target, or null if the target is not a general database object"},{"name":"database","from":"OID of the database in which the object exists, or zero if the object is a shared object, or null if the object is a transaction ID","to":"OID of the database in which the lock target exists, or zero if the target is a shared object, or null if the target is a transaction ID"},{"name":"objid","from":"OID of the object within its system catalog, or null if the object is not a general database object","to":"OID of the lock target within its system catalog, or null if the target is not a general database object"},{"name":"page","from":"Page number within the relation, or null if the object is not a tuple or relation page","to":"Page number targeted by the lock within the relation, or null if the target is not a relation page or tuple"},{"name":"relation","from":"OID of the relation, or null if the object is not a relation or part of a relation","to":"OID of the relation targeted by the lock, or null if the target is not a relation or part of a relation"},{"name":"transactionid","from":"ID of a transaction, or null if the object is not a transaction ID","to":"ID of the transaction targeted by the lock, or null if the target is not a transaction ID"},{"name":"tuple","from":"Tuple number within the page, or null if the object is not a tuple","to":"Tuple number targeted by the lock within the page, or null if the target is not a tuple"},{"name":"virtualxid","from":"Virtual ID of a transaction, or null if the object is not a virtual transaction ID","to":"Virtual ID of the transaction targeted by the lock, or null if the target is not a virtual transaction ID"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"locktype","from":"Type of the lockable object: relation, extend, page, tuple, transactionid, virtualxid, object, userlock, or advisory","to":"Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, object, userlock, or advisory"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"locktype","from":"Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, object, userlock, or advisory","to":"Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, or advisory. (See also Table 27.11.)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"waitstart","type":"timestamp with time zone","description":"Time when the server process started waiting for this lock, or null if the lock is held. Note that this can be null for a very short period of time after the wait started even though granted is false.","documented_type":"timestamptz","hidden":false,"type_oid":1184,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"locktype","from":"Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, or advisory. (See also Table 27.11.)","to":"Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, or advisory. (See also Table 28.11.)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"locktype","from":"Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, or advisory. (See also Table 28.11.)","to":"Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, advisory, or applytransaction. (See also Table 28.11.)"},{"name":"transactionid","from":"ID of the transaction targeted by the lock, or null if the target is not a transaction ID","to":"ID of the transaction targeted by the lock, or null if the target is not a transaction ID; Chapter 74"},{"name":"virtualxid","from":"Virtual ID of the transaction targeted by the lock, or null if the target is not a virtual transaction ID","to":"Virtual ID of the transaction targeted by the lock, or null if the target is not a virtual transaction ID; see Chapter 74"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"locktype","from":"Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, advisory, or applytransaction. (See also Table 28.11.)","to":"Type of the lockable object: relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, advisory, or applytransaction. (See also Table 27.11.)"},{"name":"transactionid","from":"ID of the transaction targeted by the lock, or null if the target is not a transaction ID; Chapter 74","to":"ID of the transaction targeted by the lock, or null if the target is not a transaction ID; Chapter 66"},{"name":"virtualxid","from":"Virtual ID of the transaction targeted by the lock, or null if the target is not a virtual transaction ID; see Chapter 74","to":"Virtual ID of the transaction targeted by the lock, or null if the target is not a virtual transaction ID; see Chapter 66"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"transactionid","from":"ID of the transaction targeted by the lock, or null if the target is not a transaction ID; Chapter 66","to":"ID of the transaction targeted by the lock, or null if the target is not a transaction ID; Chapter 67"},{"name":"virtualxid","from":"Virtual ID of the transaction targeted by the lock, or null if the target is not a virtual transaction ID; see Chapter 66","to":"Virtual ID of the transaction targeted by the lock, or null if the target is not a virtual transaction ID; see Chapter 67"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_matviews","changes":[{"from":"9.2","to":"9.3","status":"added","added_columns":[{"name":"schemaname","type":"name","description":"Name of schema containing materialized view","references":"pg_namespace.nspname","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"matviewname","type":"name","description":"Name of materialized view","references":"pg_class.relname","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"matviewowner","type":"name","description":"Name of materialized view's owner","references":"pg_authid.rolname","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tablespace","type":"name","description":"Name of tablespace containing materialized view (null if default for database)","references":"pg_tablespace.spcname","hidden":false,"type_oid":19,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"hasindexes","type":"boolean","description":"True if materialized view has (or recently had) any indexes","hidden":false,"type_oid":16,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"ispopulated","type":"boolean","description":"True if materialized view is currently populated","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"definition","type":"text","description":"Materialized view definition (a reconstructed SELECT query)","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_namespace","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"nspacl","from":"Access privileges; see GRANT and REVOKE for details","to":"Access privileges; see Section 5.7 for details"},{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"nspacl","from":"Access privileges; see Section 5.7 for details","to":"Access privileges; see Section 5.8 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"nspacl","from":"Access privileges; see Section 5.8 for details","to":"Access privileges; see Section 5.9 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_opclass","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_operator","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oprkind","from":"b = infix (\"both\"), l = prefix (\"left\"), r = postfix (\"right\")","to":"b = infix (“both”), l = prefix (“left”), r = postfix (“right”)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oprcode","from":"Function that implements this operator","to":"Function that implements this operator (zero for a not-yet-defined “shell” operator)"},{"name":"oprcom","from":"Commutator of this operator, if any","to":"Commutator of this operator (zero if none)"},{"name":"oprjoin","from":"Join selectivity estimation function for this operator","to":"Join selectivity estimation function for this operator (zero if none)"},{"name":"oprkind","from":"b = infix (“both”), l = prefix (“left”), r = postfix (“right”)","to":"b = infix operator (“both”), or l = prefix operator (“left”)"},{"name":"oprleft","from":"Type of the left operand","to":"Type of the left operand (zero for a prefix operator)"},{"name":"oprnegate","from":"Negator of this operator, if any","to":"Negator of this operator (zero if none)"},{"name":"oprrest","from":"Restriction selectivity estimation function for this operator","to":"Restriction selectivity estimation function for this operator (zero if none)"},{"name":"oprresult","from":"Type of the result","to":"Type of the result (zero for a not-yet-defined “shell” operator)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_opfamily","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_parameter_acl","changes":[{"from":"14","to":"15","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"parname","type":"text","description":"The name of a configuration parameter for which privileges are granted","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"paracl","type":"aclitem[]","description":"Access privileges; see Section 5.7 for details","hidden":false,"type_oid":1034,"attnum":3,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"paracl","from":"Access privileges; see Section 5.7 for details","to":"Access privileges; see Section 5.8 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"paracl","from":"Access privileges; see Section 5.8 for details","to":"Access privileges; see Section 5.9 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_partitioned_table","changes":[{"from":"9.6","to":"10","status":"added","added_columns":[{"name":"partrelid","type":"oid","description":"The OID of the pg_class entry for this partitioned table","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"partstrat","type":"\"char\"","description":"Partitioning strategy; l = list partitioned table, r = range partitioned table","documented_type":"char","hidden":false,"type_oid":18,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"partnatts","type":"smallint","description":"The number of columns in partition key","documented_type":"int2","hidden":false,"type_oid":21,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"partattrs","type":"int2vector","description":"This is an array of partnatts values that indicate which table columns are part of the partition key. For example, a value of 1 3 would mean that the first and the third table columns make up the partition key. A zero in this array indicates that the corresponding partition key column is an expression, rather than a simple column reference.","references":"pg_attribute.attnum","hidden":false,"type_oid":22,"attnum":4,"type_modifier":-1,"array_dimensions":1,"not_null":true},{"name":"partclass","type":"oidvector","description":"For each column in the partition key, this contains the OID of the operator class to use. See pg_opclass for details.","references":"pg_opclass.oid","hidden":false,"type_oid":30,"attnum":5,"type_modifier":-1,"array_dimensions":1,"not_null":true},{"name":"partcollation","type":"oidvector","description":"For each column in the partition key, this contains the OID of the collation to use for partitioning, or zero if the column is not of a collatable data type.","references":"pg_collation.oid","hidden":false,"type_oid":30,"attnum":6,"type_modifier":-1,"array_dimensions":1,"not_null":true,"documented_references":"pg_opclass.oid","reference_note":"The catalog header identifies user-specified partition-key collations; these are collation OIDs, not operator-class OIDs.","reference_source_url":"https://raw.githubusercontent.com/postgres/postgres/REL_10_23/src/include/catalog/pg_partitioned_table.h"},{"name":"partexprs","type":"pg_node_tree","description":"Expression trees (in nodeToString() representation) for partition key columns that are not simple column references. This is a list with one element for each zero entry in partattrs. Null if all partition key columns are simple references.","hidden":false,"type_oid":194,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"10","to":"11","status":"changed","added_columns":[{"name":"partdefid","type":"oid","description":"The OID of the pg_class entry for the default partition of this partitioned table, or zero if this partitioned table does not have a default partition.","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"partstrat","from":"Partitioning strategy; l = list partitioned table, r = range partitioned table","to":"Partitioning strategy; h = hash partitioned table, l = list partitioned table, r = range partitioned table"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"partdefid","from":"The OID of the pg_class entry for the default partition of this partitioned table, or zero if this partitioned table does not have a default partition.","to":"The OID of the pg_class entry for the default partition of this partitioned table, or zero if this partitioned table does not have a default partition"},{"name":"partnatts","from":"The number of columns in partition key","to":"The number of columns in the partition key"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_pltemplate","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"tmplacl","from":"Access privileges for template (not yet used)","to":"Access privileges for template (not actually used)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"tmplhandler","attribute":"not_null","from":false,"to":true},{"name":"tmpllibrary","attribute":"not_null","from":false,"to":true}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"removed","added_columns":[],"removed_columns":[{"name":"tmplname","type":"name","description":"Name of the language this template is for","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"tmpltrusted","type":"boolean","description":"True if language is considered trusted","hidden":false,"type_oid":16,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"tmpldbacreate","type":"boolean","description":"True if language may be created by a database owner","hidden":false,"type_oid":16,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"tmplhandler","type":"text","description":"Name of call handler function","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"tmplinline","type":"text","description":"Name of anonymous-block handler function, or null if none","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tmplvalidator","type":"text","description":"Name of validator function, or null if none","hidden":false,"type_oid":25,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tmpllibrary","type":"text","description":"Path of shared library that implements language","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"tmplacl","type":"aclitem[]","description":"Access privileges for template (not actually used)","hidden":false,"type_oid":1034,"attnum":8,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_policies","changes":[{"from":"9.4","to":"9.5","status":"added","added_columns":[{"name":"schemaname","type":"name","description":"Name of schema containing table policy is on","references":"pg_namespace.nspname","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tablename","type":"name","description":"Name of table policy is on","references":"pg_class.relname","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"policyname","type":"name","description":"Name of policy","references":"pg_policy.polname","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"roles","type":"name[]","description":"The roles to which this policy applies","hidden":false,"type_oid":1003,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"cmd","type":"text","description":"The command type to which the policy is applied","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"qual","type":"text","description":"The expression added to the security barrier qualifications for queries that this policy applies to","hidden":false,"type_oid":25,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"with_check","type":"text","description":"The expression added to the WITH CHECK qualifications for queries that attempt to add rows to this table","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[{"name":"permissive","type":"text","description":"Is the policy permissive or restrictive?","documented_name":"polpermissive","schema_note":"The documentation misspells this view output. The release SQL definition and runtime both name it permissive.","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_policy","changes":[{"from":"9.4","to":"9.5","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier (hidden system attribute; explicitly select oid).","schema_note":"The documentation omits this OID attribute; verified from the release-tag CATALOG declaration.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL9_5_25/src/include/catalog/pg_policy.h","hidden":true,"type_oid":26,"attnum":-2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"polname","type":"name","description":"The name of the policy","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"polrelid","type":"oid","description":"The table to which the policy applies","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"polcmd","type":"\"char\"","description":"The command type to which the policy is applied: r for SELECT, a for INSERT, w for UPDATE, d for DELETE, or * for all","documented_type":"char","hidden":false,"type_oid":18,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"polroles","type":"oid[]","description":"The roles to which the policy is applied","references":"pg_authid.oid","hidden":false,"type_oid":1028,"attnum":4,"type_modifier":-1,"array_dimensions":1,"not_null":false},{"name":"polqual","type":"pg_node_tree","description":"The expression tree to be added to the security barrier qualifications for queries that use the table","hidden":false,"type_oid":194,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"polwithcheck","type":"pg_node_tree","description":"The expression tree to be added to the WITH CHECK qualifications for queries that attempt to add rows to the table","hidden":false,"type_oid":194,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[{"name":"polpermissive","type":"boolean","description":"Is the policy permissive or restrictive?","hidden":false,"type_oid":16,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier."}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false},{"name":"polroles","attribute":"not_null","from":false,"to":true}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier.","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"polroles","from":"The roles to which the policy is applied","to":"The roles to which the policy is applied; zero means PUBLIC (and normally appears alone in the array)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_prepared_statements","changes":[{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"from_sql","from":"true if the prepared statement was created via the PREPARE SQL statement; false if the statement was prepared via the frontend/backend protocol","to":"true if the prepared statement was created via the PREPARE SQL command; false if the statement was prepared via the frontend/backend protocol"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"generic_plans","type":"bigint","description":"Number of times generic plan was chosen","documented_type":"int8","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"custom_plans","type":"bigint","description":"Number of times custom plan was chosen","documented_type":"int8","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"result_types","type":"regtype[]","description":"The types of the columns returned by the prepared statement in the form of an array of regtype. The OID corresponding to an element of this array can be obtained by casting the regtype value to oid. If the prepared statement does not provide a result (e.g., a DML statement), then this field will be null.","hidden":false,"type_oid":2211,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_prepared_xacts","changes":[]},{"name":"pg_proc","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[{"name":"proargdefaults","from":"text","to":"pg_node_tree"}],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"protransform","type":"regproc","description":"Calls to this function can be simplified by this other function (see Section 35.9.11)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"proleakproof","type":"boolean","description":"The function has no side effects. No information about the arguments is conveyed except via the return value. Any function that might throw an error depending on the values of its arguments is not leak-proof.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[{"name":"protrftypes","type":"oid[]","description":"Data type OIDs for which to apply transforms.","hidden":false,"type_oid":1028,"attnum":24,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"prosrc","attribute":"not_null","from":false,"to":true}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[{"name":"proparallel","type":"\"char\"","description":"proparallel tells whether the function can be safely run in parallel mode. It is s for functions which are safe to run in parallel mode without restriction. It is r for functions which can be run in parallel mode, but their execution is restricted to the parallel group leader; parallel worker processes cannot invoke these functions. It is u for functions which are unsafe in parallel mode; the presence of such a function forces a serial execution plan.","documented_type":"char","hidden":false,"type_oid":18,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"protransform","from":"Calls to this function can be simplified by this other function (see Section 35.9.11)","to":"Calls to this function can be simplified by this other function (see Section 36.9.11)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"proisstrict","from":"Function returns null if any call argument is null. In that case the function won't actually be called at all. Functions that are not \"strict\" must be prepared to handle null inputs.","to":"Function returns null if any call argument is null. In that case the function won't actually be called at all. Functions that are not “strict” must be prepared to handle null inputs."},{"name":"prosecdef","from":"Function is a security definer (i.e., a \"setuid\" function)","to":"Function is a security definer (i.e., a “setuid” function)"},{"name":"protransform","from":"Calls to this function can be simplified by this other function (see Section 36.9.11)","to":"Calls to this function can be simplified by this other function (see Section 37.9.10)"},{"name":"provolatile","from":"provolatile tells whether the function's result depends only on its input arguments, or is affected by outside factors. It is i for \"immutable\" functions, which always deliver the same result for the same inputs. It is s for \"stable\" functions, whose results (for fixed inputs) do not change within a scan. It is v for \"volatile\" functions, whose results might change at any time. (Use v also for functions with side-effects, so that calls to them cannot get optimized away.)","to":"provolatile tells whether the function's result depends only on its input arguments, or is affected by outside factors. It is i for “immutable” functions, which always deliver the same result for the same inputs. It is s for “stable” functions, whose results (for fixed inputs) do not change within a scan. It is v for “volatile” functions, whose results might change at any time. (Use v also for functions with side-effects, so that calls to them cannot get optimized away.)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[{"name":"prokind","type":"\"char\"","description":"f for a normal function, p for a procedure, a for an aggregate function, or w for a window function","documented_type":"char","hidden":false,"type_oid":18,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[{"name":"proisagg","type":"boolean","description":"Function is an aggregate function","documented_type":"bool","hidden":false,"type_oid":16,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"proiswindow","type":"boolean","description":"Function is a window function","documented_type":"bool","hidden":false,"type_oid":16,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[],"description_changes":[{"name":"protransform","from":"Calls to this function can be simplified by this other function (see Section 37.9.10)","to":"Calls to this function can be simplified by this other function (see Section 38.10.10)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[{"name":"prosupport","type":"regproc","description":"Optional planner support function for this function (see Section 37.11)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[{"name":"protransform","type":"regproc","description":"Calls to this function can be simplified by this other function (see Section 38.10.10)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"},{"name":"proacl","from":"Access privileges; see GRANT and REVOKE for details","to":"Access privileges; see Section 5.7 for details"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"proallargtypes","from":"An array with the data types of the function arguments. This includes all arguments (including OUT and INOUT arguments); however, if all the arguments are IN arguments, this field will be null. Note that subscripting is 1-based, whereas for historical reasons proargtypes is subscripted from 0.","to":"An array of the data types of the function arguments. This includes all arguments (including OUT and INOUT arguments); however, if all the arguments are IN arguments, this field will be null. Note that subscripting is 1-based, whereas for historical reasons proargtypes is subscripted from 0."},{"name":"proargmodes","from":"An array with the modes of the function arguments, encoded as i for IN arguments, o for OUT arguments, b for INOUT arguments, v for VARIADIC arguments, t for TABLE arguments. If all the arguments are IN arguments, this field will be null. Note that subscripts correspond to positions of proallargtypes not proargtypes.","to":"An array of the modes of the function arguments, encoded as i for IN arguments, o for OUT arguments, b for INOUT arguments, v for VARIADIC arguments, t for TABLE arguments. If all the arguments are IN arguments, this field will be null. Note that subscripts correspond to positions of proallargtypes not proargtypes."},{"name":"proargnames","from":"An array with the names of the function arguments. Arguments without a name are set to empty strings in the array. If none of the arguments have a name, this field will be null. Note that subscripts correspond to positions of proallargtypes not proargtypes.","to":"An array of the names of the function arguments. Arguments without a name are set to empty strings in the array. If none of the arguments have a name, this field will be null. Note that subscripts correspond to positions of proallargtypes not proargtypes."},{"name":"proargtypes","from":"An array with the data types of the function arguments. This includes only input arguments (including INOUT and VARIADIC arguments), and thus represents the call signature of the function.","to":"An array of the data types of the function arguments. This includes only input arguments (including INOUT and VARIADIC arguments), and thus represents the call signature of the function."},{"name":"protrftypes","from":"Data type OIDs for which to apply transforms.","to":"An array of the argument/result data type(s) for which to apply transforms (from the function's TRANSFORM clause). Null if none."}],"reference_changes":[{"name":"protrftypes","from":"","to":"pg_type.oid"}],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"prosqlbody","type":"pg_node_tree","description":"Pre-parsed SQL function body. This is used for SQL-language functions when the body is given in SQL-standard notation rather than as a string literal. It's null in other cases.","hidden":false,"type_oid":194,"attnum":28,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"prosupport","from":"Optional planner support function for this function (see Section 37.11)","to":"Planner support function for this function (see Section 38.11), or zero if none"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"proacl","from":"Access privileges; see Section 5.7 for details","to":"Access privileges; see Section 5.8 for details"},{"name":"prosupport","from":"Planner support function for this function (see Section 38.11), or zero if none","to":"Planner support function for this function (see Section 36.11), or zero if none"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"proleakproof","from":"The function has no side effects. No information about the arguments is conveyed except via the return value. Any function that might throw an error depending on the values of its arguments is not leak-proof.","to":"The function has no side effects. No information about the arguments is conveyed except via the return value. Any function that might throw an error depending on the values of its arguments is not leakproof."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"proacl","from":"Access privileges; see Section 5.8 for details","to":"Access privileges; see Section 5.9 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_propgraph_element","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgepgid","type":"oid","description":"Reference to the property graph that this element belongs to","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgerelid","type":"oid","description":"Reference to the table that contains the data for this property graph element","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgealias","type":"name","description":"The alias of the element. This is a unique identifier for the element within the graph. It is set when the property graph is defined and defaults to the name of the underlying element table.","hidden":false,"type_oid":19,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgekind","type":"\"char\"","description":"v for a vertex, e for an edge","documented_type":"char","hidden":false,"type_oid":18,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgesrcvertexid","type":"oid","description":"For an edge, a link to the source vertex. (Zero for a vertex.)","references":"pg_propgraph_element.oid","hidden":false,"type_oid":26,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgedestvertexid","type":"oid","description":"For an edge, a link to the destination vertex. (Zero for a vertex.)","references":"pg_propgraph_element.oid","hidden":false,"type_oid":26,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgekey","type":"smallint[]","description":"An array of column numbers in the table referenced by pgerelid that defines the key to use for this element table. (This defaults to the primary key when the property graph is created.)","references":"pg_attribute.attnum","documented_type":"int2[]","hidden":false,"type_oid":1005,"attnum":8,"type_modifier":-1,"array_dimensions":1,"not_null":true},{"name":"pgesrckey","type":"smallint[]","description":"For an edge, an array of column numbers in the table referenced by pgerelid that defines the source key to use for this element table. (Null for a vertex.) The combination of pgesrckey and pgesrcref creates the link between the edge and the source vertex.","references":"pg_attribute.attnum","documented_type":"int2[]","hidden":false,"type_oid":1005,"attnum":9,"type_modifier":-1,"array_dimensions":1,"not_null":false},{"name":"pgesrcref","type":"smallint[]","description":"For an edge, an array of column numbers in the table reached via pgesrcvertexid. (Null for a vertex.) The combination of pgesrckey and pgesrcref creates the link between the edge and the source vertex.","references":"pg_attribute.attnum","documented_type":"int2[]","hidden":false,"type_oid":1005,"attnum":10,"type_modifier":-1,"array_dimensions":1,"not_null":false},{"name":"pgesrceqop","type":"oid[]","description":"For an edge, an array of equality operators for pgesrcref = pgesrckey comparison. (Null for a vertex.)","references":"pg_operator.oid","hidden":false,"type_oid":1028,"attnum":11,"type_modifier":-1,"array_dimensions":1,"not_null":false},{"name":"pgedestkey","type":"smallint[]","description":"For an edge, an array of column numbers in the table referenced by pgerelid that defines the destination key to use for this element table. (Null for a vertex.) The combination of pgedestkey and pgedestref creates the link between the edge and the destination vertex.","references":"pg_attribute.attnum","documented_type":"int2[]","hidden":false,"type_oid":1005,"attnum":12,"type_modifier":-1,"array_dimensions":1,"not_null":false},{"name":"pgedestref","type":"smallint[]","description":"For an edge, an array of column numbers in the table reached via pgedestvertexid. (Null for a vertex.) The combination of pgedestkey and pgedestref creates the link between the edge and the destination vertex.","references":"pg_attribute.attnum","documented_type":"int2[]","hidden":false,"type_oid":1005,"attnum":13,"type_modifier":-1,"array_dimensions":1,"not_null":false},{"name":"pgedesteqop","type":"oid[]","description":"For an edge, an array of equality operators for pgedestref = pgedestkey comparison. (Null for a vertex.)","references":"pg_operator.oid","hidden":false,"type_oid":1028,"attnum":14,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_propgraph_element_label","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgellabelid","type":"oid","description":"Reference to the label","references":"pg_propgraph_label.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgelelid","type":"oid","description":"Reference to the element","references":"pg_propgraph_element.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_propgraph_label","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pglpgid","type":"oid","description":"Reference to the property graph that this label belongs to","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgllabel","type":"name","description":"The name of the label. This is unique among the labels in a graph.","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_propgraph_label_property","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"plppropid","type":"oid","description":"Reference to the property","references":"pg_propgraph_property.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"plpellabelid","type":"oid","description":"Reference to the label (indirectly via pg_propgraph_element_label, which then links to pg_propgraph_label)","references":"pg_propgraph_element_label.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"plpexpr","type":"pg_node_tree","description":"Expression tree (in nodeToString() representation) for the property's definition. The expression references the table reached via pg_propgraph_element_label and pg_propgraph_element.","hidden":false,"type_oid":194,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_propgraph_property","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgppgid","type":"oid","description":"Reference to the property graph that this property belongs to","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgpname","type":"name","description":"The name of the property. This is unique among the properties in a graph.","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgptypid","type":"oid","description":"The data type of this property. (This is required to be fixed for a given property in a property graph, even if the property is defined multiple times in different elements and labels.)","references":"pg_type.oid","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgptypmod","type":"integer","description":"typmod to be applied to the data type of this property. (This is required to be fixed for a given property in a property graph, even if the property is defined multiple times in different elements and labels.)","documented_type":"int4","hidden":false,"type_oid":23,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pgpcollation","type":"oid","description":"The defined collation of this property, or zero if the property is not of a collatable data type. (This is required to be fixed for a given property in a property graph, even if the property is defined multiple times in different elements and labels.)","references":"pg_collation.oid","hidden":false,"type_oid":26,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_publication","changes":[{"from":"9.6","to":"10","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier (hidden attribute; must be explicitly selected)","hidden":true,"type_oid":26,"attnum":-2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pubname","type":"name","description":"Name of the publication","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pubowner","type":"oid","description":"Owner of the publication","references":"pg_authid.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"puballtables","type":"boolean","description":"If true, this publication automatically includes all tables in the database, including any that will be created in the future.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pubinsert","type":"boolean","description":"If true, INSERT operations are replicated for tables in the publication.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pubupdate","type":"boolean","description":"If true, UPDATE operations are replicated for tables in the publication.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pubdelete","type":"boolean","description":"If true, DELETE operations are replicated for tables in the publication.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"10","to":"11","status":"changed","added_columns":[{"name":"pubtruncate","type":"boolean","description":"If true, TRUNCATE operations are replicated for tables in the publication.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[{"name":"pubviaroot","type":"boolean","description":"If true, operations on a leaf partition are replicated using the identity and schema of its topmost partitioned ancestor mentioned in the publication instead of its own.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"pubgencols","type":"\"char\"","description":"Controls how to handle generated column replication when there is no publication column list: n = generated columns in the tables associated with the publication should not be replicated, s = stored generated columns in the tables associated with the publication should be replicated.","documented_type":"char","hidden":false,"type_oid":18,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"puballsequences","type":"boolean","description":"If true, this publication automatically includes all sequences in the database, including any that will be created in the future.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_publication_namespace","changes":[{"from":"14","to":"15","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pnpubid","type":"oid","description":"Reference to publication","references":"pg_publication.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"pnnspid","type":"oid","description":"Reference to schema","references":"pg_namespace.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_publication_rel","changes":[{"from":"9.6","to":"10","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier (hidden system attribute; explicitly select oid).","schema_note":"The documentation omits this OID attribute; verified from the release-tag CATALOG declaration.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL_10_23/src/include/catalog/pg_publication_rel.h","hidden":true,"type_oid":26,"attnum":-2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"prpubid","type":"oid","description":"Reference to publication","references":"pg_publication.oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"prrelid","type":"oid","description":"Reference to relation","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier."}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier.","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[{"name":"prqual","type":"pg_node_tree","description":"Expression tree (in nodeToString() representation) for the relation's publication qualifying condition. Null if there is no publication qualifying condition.","hidden":false,"type_oid":194,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"prattrs","type":"int2vector","description":"This is an array of values that indicates which table columns are part of the publication. For example, a value of 1 3 would mean that the first and the third table columns are published. A null value indicates that all columns are published.","references":"pg_attribute.attnum","hidden":false,"type_oid":22,"attnum":5,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"prexcept","type":"boolean","description":"True if the table is excluded from the publication. See EXCEPT.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"prrelid","from":"Reference to relation","to":"Reference to table"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true}]},{"name":"pg_publication_sequences","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"pubname","type":"name","description":"Name of publication","references":"pg_publication.pubname","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"schemaname","type":"name","description":"Name of schema containing sequence","references":"pg_namespace.nspname","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sequencename","type":"name","description":"Name of sequence","references":"pg_class.relname","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_publication_tables","changes":[{"from":"9.6","to":"10","status":"added","added_columns":[{"name":"pubname","type":"name","description":"Name of publication","references":"pg_publication.pubname","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"schemaname","type":"name","description":"Name of schema containing table","references":"pg_namespace.nspname","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tablename","type":"name","description":"Name of table","references":"pg_class.relname","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"14","to":"15","status":"changed","added_columns":[{"name":"attnames","type":"name[]","description":"Names of table columns included in the publication. This contains all the columns of the table when the user didn't specify the column list for the table.","references":"pg_attribute.attname","hidden":false,"type_oid":1003,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"rowfilter","type":"text","description":"Expression for the table's publication qualifying condition","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true}]},{"name":"pg_range","changes":[{"from":"9.1","to":"9.2","status":"added","added_columns":[{"name":"rngtypid","type":"oid","description":"OID of the range type","references":"pg_type.oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"rngsubtype","type":"oid","description":"OID of the element type (subtype) of this range type","references":"pg_type.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"rngcollation","type":"oid","description":"OID of the collation used for range comparisons, or 0 if none","references":"pg_collation.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"rngsubopc","type":"oid","description":"OID of the subtype's operator class used for range comparisons","references":"pg_opclass.oid","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"rngcanonical","type":"regproc","description":"OID of the function to convert a range value into canonical form, or 0 if none","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"rngsubdiff","type":"regproc","description":"OID of the function to return the difference between two element values as double precision, or 0 if none","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"rngmultitypid","type":"oid","description":"OID of the multirange type for this range type","references":"pg_type.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rngcanonical","from":"OID of the function to convert a range value into canonical form, or 0 if none","to":"OID of the function to convert a range value into canonical form, or zero if none"},{"name":"rngcollation","from":"OID of the collation used for range comparisons, or 0 if none","to":"OID of the collation used for range comparisons, or zero if none"},{"name":"rngsubdiff","from":"OID of the function to return the difference between two element values as double precision, or 0 if none","to":"OID of the function to return the difference between two element values as double precision, or zero if none"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"rngconstruct2","type":"regproc","description":"OID of the 2-argument range constructor function (lower and upper)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"rngconstruct3","type":"regproc","description":"OID of the 3-argument range constructor function (lower, upper, and flags)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"rngmltconstruct0","type":"regproc","description":"OID of the 0-argument multirange constructor function (constructs empty range)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"rngmltconstruct1","type":"regproc","description":"OID of the 1-argument multirange constructor function (constructs multirange from single range, also used as cast function)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"rngmltconstruct2","type":"regproc","description":"OID of the 2-argument multirange constructor function (constructs multirange from array of ranges)","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_replication_origin","changes":[{"from":"9.4","to":"9.5","status":"added","added_columns":[{"name":"roident","type":"oid","description":"A unique, cluster-wide identifier for the replication origin. Should never leave the system.","documented_type":"Oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"roname","type":"text","description":"The external, user defined, name of a replication origin.","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_replication_origin_status","changes":[{"from":"9.4","to":"9.5","status":"added","added_columns":[{"name":"local_id","type":"oid","description":"internal node identifier","references":"pg_replication_origin.roident","documented_type":"Oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"external_id","type":"text","description":"external node identifier","references":"pg_replication_origin.roname","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"remote_lsn","type":"pg_lsn","description":"The origin node's LSN up to which data has been replicated.","hidden":false,"type_oid":3220,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"local_lsn","type":"pg_lsn","description":"This node's LSN at which remote_lsn has been replicated. Used to flush commit records before persisting data to disk when using asynchronous commits.","hidden":false,"type_oid":3220,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_replication_slots","changes":[{"from":"9.3","to":"9.4","status":"added","added_columns":[{"name":"slot_name","type":"name","description":"A unique, cluster-wide identifier for the replication slot","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"plugin","type":"name","description":"The base name of the shared object containing the output plugin this logical slot is using, or null for physical slots.","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"slot_type","type":"text","description":"The slot type - physical or logical","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datoid","type":"oid","description":"The OID of the database this slot is associated with, or null. Only logical slots have an associated database.","references":"pg_database.oid","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"database","type":"name","description":"The name of the database this slot is associated with, or null. Only logical slots have an associated database.","references":"pg_database.datname","documented_type":"text","schema_note":"SQL type calibrated against format_type in a fresh instance of the exact release; original documentation spelling is retained.","hidden":false,"type_oid":19,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"active","type":"boolean","description":"True if this slot is currently actively being used","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"xmin","type":"xid","description":"The oldest transaction that this slot needs the database to retain. VACUUM cannot remove tuples deleted by any later transaction.","hidden":false,"type_oid":28,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"catalog_xmin","type":"xid","description":"The oldest transaction affecting the system catalogs that this slot needs the database to retain. VACUUM cannot remove catalog tuples deleted by any later transaction.","hidden":false,"type_oid":28,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"restart_lsn","type":"pg_lsn","description":"The address (LSN) of oldest WAL which still might be required by the consumer of this slot and thus won't be automatically removed during checkpoints.","hidden":false,"type_oid":3220,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[{"name":"active_pid","type":"integer","description":"The process ID of the session using this slot if the slot is currently actively being used. NULL if inactive.","hidden":false,"type_oid":23,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[{"name":"confirmed_flush_lsn","type":"pg_lsn","description":"The address (LSN) up to which the logical slot's consumer has confirmed receiving data. Data older than this is not available anymore. NULL for physical slots.","hidden":false,"type_oid":3220,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[{"name":"temporary","type":"boolean","description":"True if this is a temporary replication slot. Temporary slots are not saved to disk and are automatically dropped on error or when the session has finished.","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"restart_lsn","from":"The address (LSN) of oldest WAL which still might be required by the consumer of this slot and thus won't be automatically removed during checkpoints.","to":"The address (LSN) of oldest WAL which still might be required by the consumer of this slot and thus won't be automatically removed during checkpoints. NULL if the LSN of this slot has never been reserved."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[{"name":"wal_status","type":"text","description":"Availability of WAL files claimed by this slot. Possible values are: The last two states are seen only when max_slot_wal_keep_size is non-negative.","hidden":false,"type_oid":25,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"safe_wal_size","type":"bigint","description":"The number of bytes that can be written to WAL such that this slot is not in danger of getting in state \"lost\". It is NULL for lost slots, as well as if max_slot_wal_keep_size is -1.","documented_type":"int8","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"restart_lsn","from":"The address (LSN) of oldest WAL which still might be required by the consumer of this slot and thus won't be automatically removed during checkpoints. NULL if the LSN of this slot has never been reserved.","to":"The address (LSN) of oldest WAL which still might be required by the consumer of this slot and thus won't be automatically removed during checkpoints unless this LSN gets behind more than max_slot_wal_keep_size from the current LSN. NULL if the LSN of this slot has never been reserved."},{"name":"slot_type","from":"The slot type - physical or logical","to":"The slot type: physical or logical"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"two_phase","type":"boolean","description":"True if the slot is enabled for decoding prepared transactions. Always false for physical slots.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"conflicting","type":"boolean","description":"True if this logical slot conflicted with recovery (and so is now invalidated). Always NULL for physical slots.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"confirmed_flush_lsn","from":"The address (LSN) up to which the logical slot's consumer has confirmed receiving data. Data older than this is not available anymore. NULL for physical slots.","to":"The address (LSN) up to which the logical slot's consumer has confirmed receiving data. Data corresponding to the transactions committed before this LSN is not available anymore. NULL for physical slots."},{"name":"wal_status","from":"Availability of WAL files claimed by this slot. Possible values are: The last two states are seen only when max_slot_wal_keep_size is non-negative.","to":"Availability of WAL files claimed by this slot. Possible values are:"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[{"name":"inactive_since","type":"timestamp with time zone","description":"The time when the slot became inactive. NULL if the slot is currently being streamed. Note that for slots on the standby that are being synced from a primary server (whose synced field is true), the inactive_since indicates the time when slot synchronization (see Section 47.2.3) was most recently stopped. NULL if the slot has always been synchronized. On standby, this is useful for slots that are being synced from a primary server (whose synced field is true) so they know when the slot stopped being synchronized.","documented_type":"timestamptz","hidden":false,"type_oid":1184,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"invalidation_reason","type":"text","description":"The reason for the slot's invalidation. It is set for both logical and physical slots. NULL if the slot is not invalidated. Possible values are:","hidden":false,"type_oid":25,"attnum":18,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"failover","type":"boolean","description":"True if this is a logical slot enabled to be synced to the standbys so that logical replication can be resumed from the new primary after failover. Always false for physical slots.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":19,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"synced","type":"boolean","description":"True if this is a logical slot that was synced from a primary server. On a hot standby, the slots with the synced column marked as true can neither be used for logical decoding nor dropped manually. The value of this column has no meaning on the primary server; the column value on the primary is default false for all slots but may (if leftover from a promoted standby) also be true.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"active","from":"True if this slot is currently actively being used","to":"True if this slot is currently being streamed"},{"name":"active_pid","from":"The process ID of the session using this slot if the slot is currently actively being used. NULL if inactive.","to":"The process ID of the session streaming data for this slot. NULL if inactive."},{"name":"conflicting","from":"True if this logical slot conflicted with recovery (and so is now invalidated). Always NULL for physical slots.","to":"True if this logical slot conflicted with recovery (and so is now invalidated). When this column is true, check invalidation_reason column for the conflict reason. Always NULL for physical slots."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"two_phase_at","type":"pg_lsn","description":"The address (LSN) from which the decoding of prepared transactions is enabled. NULL for logical slots where two_phase is false and for physical slots.","hidden":false,"type_oid":3220,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"inactive_since","from":"The time when the slot became inactive. NULL if the slot is currently being streamed. Note that for slots on the standby that are being synced from a primary server (whose synced field is true), the inactive_since indicates the time when slot synchronization (see Section 47.2.3) was most recently stopped. NULL if the slot has always been synchronized. On standby, this is useful for slots that are being synced from a primary server (whose synced field is true) so they know when the slot stopped being synchronized.","to":"The time when the slot became inactive. NULL if the slot is currently being streamed. If the slot becomes invalid, this value will never be updated. For standby slots that are being synced from a primary server (whose synced field is true), the inactive_since indicates the time when slot synchronization (see Section 47.2.3) was most recently stopped. NULL if the slot has always been synchronized. This helps standby slots track when synchronization was interrupted."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"slotsync_skip_reason","type":"text","description":"The reason for the last slot synchronization skip. Slot synchronization occurs only on standby servers and thus this column has no meaning on the primary server. It is relevant mainly for logical slots on standby servers whose synced field is true. It is NULL if slot synchronization is successful. Possible values are:","hidden":false,"type_oid":25,"attnum":22,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_rewrite","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[{"name":"ev_action","from":"text","to":"pg_node_tree"},{"name":"ev_qual","from":"text","to":"pg_node_tree"}],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[{"name":"ev_attr","type":"smallint","description":"The column this rule is for (currently, always -1 to indicate the whole table)","documented_type":"int2","hidden":false,"type_oid":21,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"ev_enabled","from":"Controls in which session_replication_role modes the rule fires. O = rule fires in \"origin\" and \"local\" modes, D = rule is disabled, R = rule fires in \"replica\" mode, A = rule fires always.","to":"Controls in which session_replication_role modes the rule fires. O = rule fires in “origin” and “local” modes, D = rule is disabled, R = rule fires in “replica” mode, A = rule fires always."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"ev_action","attribute":"not_null","from":false,"to":true},{"name":"ev_qual","attribute":"not_null","from":false,"to":true},{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_roles","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"rolreplication","type":"boolean","description":"Role is a replication role. That is, this role can initiate streaming replication (see Section 25.2.5) and set/unset the system backup mode using pg_start_backup and pg_stop_backup","documented_type":"bool","hidden":false,"type_oid":16,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[{"name":"rolbypassrls","type":"boolean","description":"Role bypasses every row level security policy, see Section 5.7 for more information.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"rolcatupdate","type":"boolean","description":"Role can update system catalogs directly. (Even a superuser cannot do this unless this column is true)","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolreplication","from":"Role is a replication role. That is, this role can initiate streaming replication (see Section 25.2.5) and set/unset the system backup mode using pg_start_backup and pg_stop_backup","to":"Role is a replication role. A replication role can initiate replication connections and create and drop replication slots."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolbypassrls","from":"Role bypasses every row level security policy, see Section 5.7 for more information.","to":"Role bypasses every row level security policy, see Section 5.8 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolbypassrls","from":"Role bypasses every row level security policy, see Section 5.8 for more information.","to":"Role bypasses every row-level security policy, see Section 5.8 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolbypassrls","from":"Role bypasses every row-level security policy, see Section 5.8 for more information.","to":"Role bypasses every row-level security policy, see Section 5.9 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"rolbypassrls","from":"Role bypasses every row-level security policy, see Section 5.9 for more information.","to":"Role bypasses every row-level security policy, see Section 5.10 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_rules","changes":[]},{"name":"pg_seclabel","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"objoid","type":"oid","description":"The OID of the object this security label pertains to","references":"any OID column","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"classoid","type":"oid","description":"The OID of the system catalog this object appears in","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"objsubid","type":"integer","description":"For a security label on a table column, this is the column number (the objoid and classoid refer to the table itself). For all other object types, this column is zero.","documented_type":"int4","hidden":false,"type_oid":23,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"provider","type":"text","description":"The label provider associated with this label.","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"label","type":"text","description":"The security label applied to this object.","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"label","attribute":"not_null","from":false,"to":true},{"name":"provider","attribute":"not_null","from":false,"to":true}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_seclabels","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"objoid","type":"oid","description":"The OID of the object this security label pertains to","references":"any OID column","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"classoid","type":"oid","description":"The OID of the system catalog this object appears in","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"objsubid","type":"integer","description":"For a security label on a table column, this is the column number (the objoid and classoid refer to the table itself). For all other object types, this column is zero.","documented_type":"int4","hidden":false,"type_oid":23,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"objtype","type":"text","description":"The type of object to which this label applies, as text.","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"objnamespace","type":"oid","description":"The OID of the namespace for this object, if applicable; otherwise NULL.","references":"pg_namespace.oid","hidden":false,"type_oid":26,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"objname","type":"text","description":"The name of the object to which this label applies, as text.","hidden":false,"type_oid":25,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"provider","type":"text","description":"The label provider associated with this label.","references":"pg_seclabel.provider","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"label","type":"text","description":"The security label applied to this object.","references":"pg_seclabel.label","hidden":false,"type_oid":25,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_sequence","changes":[{"from":"9.6","to":"10","status":"added","added_columns":[{"name":"seqrelid","type":"oid","description":"The OID of the pg_class entry for this sequence","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"seqtypid","type":"oid","description":"Data type of the sequence","references":"pg_type.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"seqstart","type":"bigint","description":"Start value of the sequence","documented_type":"int8","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"seqincrement","type":"bigint","description":"Increment value of the sequence","documented_type":"int8","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"seqmax","type":"bigint","description":"Maximum value of the sequence","documented_type":"int8","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"seqmin","type":"bigint","description":"Minimum value of the sequence","documented_type":"int8","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"seqcache","type":"bigint","description":"Cache size of the sequence","documented_type":"int8","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"seqcycle","type":"boolean","description":"Whether the sequence cycles","documented_type":"bool","hidden":false,"type_oid":16,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_sequences","changes":[{"from":"9.6","to":"10","status":"added","added_columns":[{"name":"schemaname","type":"name","description":"Name of schema containing sequence","references":"pg_namespace.nspname","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sequencename","type":"name","description":"Name of sequence","references":"pg_class.relname","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sequenceowner","type":"name","description":"Name of sequence's owner","references":"pg_authid.rolname","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"data_type","type":"regtype","description":"Data type of the sequence","references":"pg_type.oid","hidden":false,"type_oid":2206,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"start_value","type":"bigint","description":"Start value of the sequence","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"min_value","type":"bigint","description":"Minimum value of the sequence","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"max_value","type":"bigint","description":"Maximum value of the sequence","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"increment_by","type":"bigint","description":"Increment value of the sequence","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"cycle","type":"boolean","description":"Whether the sequence cycles","hidden":false,"type_oid":16,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"cache_size","type":"bigint","description":"Cache size of the sequence","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_value","type":"bigint","description":"The last sequence value written to disk. If caching is used, this value can be greater than the last value handed out from the sequence. Null if the sequence has not been read from yet. Also, if the current user does not have USAGE or SELECT privilege on the sequence, the value is null.","hidden":false,"type_oid":20,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"last_value","from":"The last sequence value written to disk. If caching is used, this value can be greater than the last value handed out from the sequence. Null if the sequence has not been read from yet. Also, if the current user does not have USAGE or SELECT privilege on the sequence, the value is null.","to":"The last sequence value written to disk. If caching is used, this value can be greater than the last value handed out from the sequence."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_settings","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"context","from":"Context required to set the parameter's value","to":"Context required to set the parameter's value (see below)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[{"name":"pending_restart","type":"boolean","description":"true if the value has been changed in the configuration file but needs a restart; or false otherwise.","hidden":false,"type_oid":16,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"sourcefile","from":"Configuration file the current value was set in (null for values set from sources other than configuration files, or when examined by a non-superuser); helpful when using include directives in configuration files","to":"Configuration file the current value was set in (null for values set from sources other than configuration files, or when examined by a user who is neither a superuser or a member of pg_read_all_settings); helpful when using include directives in configuration files"},{"name":"sourceline","from":"Line number within the configuration file the current value was set at (null for values set from sources other than configuration files, or when examined by a non-superuser)","to":"Line number within the configuration file the current value was set at (null for values set from sources other than configuration files, or when examined by a user who is neither a superuser or a member of pg_read_all_settings)."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"sourcefile","from":"Configuration file the current value was set in (null for values set from sources other than configuration files, or when examined by a user who is neither a superuser or a member of pg_read_all_settings); helpful when using include directives in configuration files","to":"Configuration file the current value was set in (null for values set from sources other than configuration files, or when examined by a user who neither is a superuser nor has privileges of pg_read_all_settings); helpful when using include directives in configuration files"},{"name":"sourceline","from":"Line number within the configuration file the current value was set at (null for values set from sources other than configuration files, or when examined by a user who is neither a superuser or a member of pg_read_all_settings).","to":"Line number within the configuration file the current value was set at (null for values set from sources other than configuration files, or when examined by a user who neither is a superuser nor has privileges of pg_read_all_settings)."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_shadow","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"userepl","description":"User can initiate streaming replication and put the system in and out of backup mode.","description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/view-pg-shadow.html","method":"later_documentation_exact_column_name","note":"Explanation from later documentation; existence and SQL type verified in this version by fresh initdb."},"schema_note":"The version documentation omits this field; restored from its exact-release runtime catalog.","type":"boolean","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[{"name":"usebypassrls","type":"boolean","description":"User bypasses every row level security policy, see Section 5.7 for more information.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"usecatupd","type":"boolean","description":"User can update system catalogs. (Even a superuser cannot do this unless this column is true.)","documented_type":"bool","hidden":false,"type_oid":16,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[{"name":"valuntil","from":"abstime","to":"timestamp with time zone"}],"description_changes":[{"name":"usebypassrls","from":"User bypasses every row level security policy, see Section 5.7 for more information.","to":"User bypasses every row level security policy, see Section 5.8 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"passwd","from":"Password (possibly encrypted); null if none. See pg_authid for details of how encrypted passwords are stored.","to":"Encrypted password; null if none. See pg_authid for details of how encrypted passwords are stored."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"usebypassrls","from":"User bypasses every row level security policy, see Section 5.8 for more information.","to":"User bypasses every row-level security policy, see Section 5.8 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"usebypassrls","from":"User bypasses every row-level security policy, see Section 5.8 for more information.","to":"User bypasses every row-level security policy, see Section 5.9 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"usebypassrls","from":"User bypasses every row-level security policy, see Section 5.9 for more information.","to":"User bypasses every row-level security policy, see Section 5.10 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_shdepend","changes":[{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"classid","from":"The OID of the system catalog the dependent object is in","to":"The OID of the system catalog the dependent object is in, or zero for a SHARED_DEPENDENCY_PIN entry"},{"name":"dbid","from":"The OID of the database the dependent object is in, or zero for a shared object","to":"The OID of the database the dependent object is in, or zero for a shared object or a SHARED_DEPENDENCY_PIN entry"},{"name":"objid","from":"The OID of the specific dependent object","to":"The OID of the specific dependent object, or zero for a SHARED_DEPENDENCY_PIN entry"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"classid","from":"The OID of the system catalog the dependent object is in, or zero for a SHARED_DEPENDENCY_PIN entry","to":"The OID of the system catalog the dependent object is in"},{"name":"dbid","from":"The OID of the database the dependent object is in, or zero for a shared object or a SHARED_DEPENDENCY_PIN entry","to":"The OID of the database the dependent object is in, or zero for a shared object"},{"name":"objid","from":"The OID of the specific dependent object, or zero for a SHARED_DEPENDENCY_PIN entry","to":"The OID of the specific dependent object"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_shdescription","changes":[{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"description","attribute":"not_null","from":false,"to":true}],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_shmem_allocations","changes":[{"from":"12","to":"13","status":"added","added_columns":[{"name":"name","type":"text","description":"The name of the shared memory allocation. NULL for unused memory and <anonymous> for anonymous allocations.","hidden":false,"type_oid":25,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"off","type":"bigint","description":"The offset at which the allocation starts. NULL for anonymous allocations, since details related to them are not known.","documented_type":"int8","hidden":false,"type_oid":20,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"size","type":"bigint","description":"Size of the allocation","documented_type":"int8","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"allocated_size","type":"bigint","description":"Size of the allocation including padding. For anonymous allocations, no information about padding is available, so the size and allocated_size columns will always be equal. Padding is not meaningful for free memory, so the columns will be equal in that case also.","documented_type":"int8","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"allocated_size","from":"Size of the allocation including padding. For anonymous allocations, no information about padding is available, so the size and allocated_size columns will always be equal. Padding is not meaningful for free memory, so the columns will be equal in that case also.","to":"Size of the allocation in bytes including padding. For anonymous allocations, no information about padding is available, so the size and allocated_size columns will always be equal. Padding is not meaningful for free memory, so the columns will be equal in that case also."},{"name":"size","from":"Size of the allocation","to":"Size of the allocation in bytes"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_shmem_allocations_numa","changes":[{"from":"17","to":"18","status":"added","added_columns":[{"name":"name","type":"text","description":"The name of the shared memory allocation.","hidden":false,"type_oid":25,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"numa_node","type":"integer","description":"ID of NUMA node","documented_type":"int4","hidden":false,"type_oid":23,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"size","type":"bigint","description":"Size of the allocation on this particular NUMA memory node in bytes","documented_type":"int8","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_shseclabel","changes":[{"from":"9.1","to":"9.2","status":"added","added_columns":[{"name":"objoid","type":"oid","description":"The OID of the object this security label pertains to","references":"any OID column","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"classoid","type":"oid","description":"The OID of the system catalog this object appears in","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"provider","type":"text","description":"The label provider associated with this label.","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"label","type":"text","description":"The security label applied to this object.","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"label","attribute":"not_null","from":false,"to":true},{"name":"provider","attribute":"not_null","from":false,"to":true}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_activity","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"client_hostname","type":"text","type_oid":25,"description":"Host name of the connected client, as reported by a reverse DNS lookup of client_addr . This field will only be non-null for IP connections, and only when log_hostname is enabled.","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L489","type_evidence":{"expression":"S.client_hostname","method":"sql_projection_and_function_signatures","function":"pg_stat_get_activity","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2547"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"pid","type":"integer","description":"Process ID of this backend","hidden":false,"type_oid":23,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"state_change","type":"timestamp with time zone","description":"Time when the state was last changed","hidden":false,"type_oid":1184,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"state","type":"text","description":"Current overall state of this backend. Possible values are: active: The backend is executing a query. idle: The backend is waiting for a new client command. idle in transaction: The backend is in a transaction, but is not currently executing a query. idle in transaction (aborted): This state is similar to idle in transaction, except one of the statements in the transaction caused an error. fastpath function call: The backend is executing a fast-path function. disabled: This state is reported if track_activities is disabled in this backend.","hidden":false,"type_oid":25,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"query","type":"text","description":"Text of this backend's most recent query. If state is active this field shows the currently executing query. In all other states, it shows the last query that was executed.","hidden":false,"type_oid":25,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"procpid","type":"integer","type_oid":23,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L489","type_evidence":{"expression":"S.procpid","method":"sql_projection_and_function_signatures","function":"pg_stat_get_activity","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2547"},"hidden":false,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"current_query","type":"text","type_oid":25,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L489","type_evidence":{"expression":"S.current_query","method":"sql_projection_and_function_signatures","function":"pg_stat_get_activity","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2547"},"hidden":false,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[{"name":"client_hostname","from":"Host name of the connected client, as reported by a reverse DNS lookup of client_addr . This field will only be non-null for IP connections, and only when log_hostname is enabled.","to":"Host name of the connected client, as reported by a reverse DNS lookup of client_addr. This field will only be non-null for IP connections, and only when log_hostname is enabled."},{"name":"query_start","from":"Time when the currently active query was started, or if state is not active , when the last query was started","to":"Time when the currently active query was started, or if state is not active, when the last query was started"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.3","to":"9.4","status":"changed","added_columns":[{"name":"backend_xid","type":"xid","description":"Top-level transaction identifier of this backend, if any.","hidden":false,"type_oid":28,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"backend_xmin","type":"xid","description":"The current backend's xmin horizon.","hidden":false,"type_oid":28,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[{"name":"wait_event_type","type":"text","description":"The type of event for which the backend is waiting, if any; otherwise NULL. Possible values are: LWLockNamed: The backend is waiting for a specific named lightweight lock. Each such lock protects a particular data structure in shared memory. wait_event will contain the name of the lightweight lock. LWLockTranche: The backend is waiting for one of a group of related lightweight locks. All locks in the group perform a similar function; wait_event will identify the general purpose of locks in that group. Lock: The backend is waiting for a heavyweight lock. Heavyweight locks, also known as lock manager locks or simply locks, primarily protect SQL-visible objects such as tables. However, they are also used to ensure mutual exclusion for certain internal operations such as relation extension. wait_event will identify the type of lock awaited. BufferPin: The server process is waiting to access to a data buffer during a period when no other process can be examining that buffer. Buffer pin waits can be protracted if another process holds an open cursor which last read data from the buffer in question.","hidden":false,"type_oid":25,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wait_event","type":"text","description":"Wait event name if backend is currently waiting, otherwise NULL. See Table 28-4 for details.","hidden":false,"type_oid":25,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"waiting","type":"boolean","description":"True if this backend is currently waiting on a lock","hidden":false,"type_oid":16,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[{"name":"backend_type","type":"text","description":"Type of current backend. Possible types are autovacuum launcher, autovacuum worker, background worker, background writer, client backend, checkpointer, startup, walreceiver, walsender and walwriter.","hidden":false,"type_oid":25,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"backend_start","from":"Time when this process was started, i.e., when the client connected to the server","to":"Time when this process was started. For client backends, this is the time the client connected to the server."},{"name":"query","from":"Text of this backend's most recent query. If state is active this field shows the currently executing query. In all other states, it shows the last query that was executed.","to":"Text of this backend's most recent query. If state is active this field shows the currently executing query. In all other states, it shows the last query that was executed. By default the query text is truncated at 1024 bytes; this value can be changed via the parameter track_activity_query_size."},{"name":"wait_event","from":"Wait event name if backend is currently waiting, otherwise NULL. See Table 28-4 for details.","to":"Wait event name if backend is currently waiting, otherwise NULL. See Table 28.4 for details."},{"name":"wait_event_type","from":"The type of event for which the backend is waiting, if any; otherwise NULL. Possible values are: LWLockNamed: The backend is waiting for a specific named lightweight lock. Each such lock protects a particular data structure in shared memory. wait_event will contain the name of the lightweight lock. LWLockTranche: The backend is waiting for one of a group of related lightweight locks. All locks in the group perform a similar function; wait_event will identify the general purpose of locks in that group. Lock: The backend is waiting for a heavyweight lock. Heavyweight locks, also known as lock manager locks or simply locks, primarily protect SQL-visible objects such as tables. However, they are also used to ensure mutual exclusion for certain internal operations such as relation extension. wait_event will identify the type of lock awaited. BufferPin: The server process is waiting to access to a data buffer during a period when no other process can be examining that buffer. Buffer pin waits can be protracted if another process holds an open cursor which last read data from the buffer in question.","to":"The type of event for which the backend is waiting, if any; otherwise NULL. Possible values are: LWLock: The backend is waiting for a lightweight lock. Each such lock protects a particular data structure in shared memory. wait_event will contain a name identifying the purpose of the lightweight lock. (Some locks have specific names; others are part of a group of locks each with a similar purpose.) Lock: The backend is waiting for a heavyweight lock. Heavyweight locks, also known as lock manager locks or simply locks, primarily protect SQL-visible objects such as tables. However, they are also used to ensure mutual exclusion for certain internal operations such as relation extension. wait_event will identify the type of lock awaited. BufferPin: The server process is waiting to access to a data buffer during a period when no other process can be examining that buffer. Buffer pin waits can be protracted if another process holds an open cursor which last read data from the buffer in question. Activity: The server process is idle. This is used by system processes waiting for activity in their main processing loop. wait_event will identify the specific wait point. Extension: The server process is waiting for activity in an extension module. This category is useful for modules to track custom waiting points. Client: The server process is waiting for some activity on a socket from user applications, and that the server expects something to happen that is independent from its internal processes. wait_event will identify the specific wait point. IPC: The server process is waiting for some activity from another process in the server. wait_event will identify the specific wait point. Timeout: The server process is waiting for a timeout to expire. wait_event will identify the specific wait point. IO: The server process is waiting for a IO to complete. wait_event will identify the specific wait point."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"backend_type","from":"Type of current backend. Possible types are autovacuum launcher, autovacuum worker, background worker, background writer, client backend, checkpointer, startup, walreceiver, walsender and walwriter.","to":"Type of current backend. Possible types are autovacuum launcher, autovacuum worker, logical replication launcher, logical replication worker, parallel worker, background writer, client backend, checkpointer, startup, walreceiver, walsender and walwriter. In addition, background workers registered by extensions may have additional types."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"wait_event","from":"Wait event name if backend is currently waiting, otherwise NULL. See Table 28.4 for details.","to":"Wait event name if backend is currently waiting, otherwise NULL. See Table 27.4 for details."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[{"name":"leader_pid","type":"integer","description":"Process ID of the parallel group leader, if this process is a parallel query worker. NULL if this process is a parallel group leader or does not participate in parallel query.","hidden":false,"type_oid":23,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"client_port","from":"TCP port number that the client is using for communication with this backend, or -1 if a Unix socket is used","to":"TCP port number that the client is using for communication with this backend, or -1 if a Unix socket is used. If this field is null, it indicates that this is an internal server process."},{"name":"state","from":"Current overall state of this backend. Possible values are: active: The backend is executing a query. idle: The backend is waiting for a new client command. idle in transaction: The backend is in a transaction, but is not currently executing a query. idle in transaction (aborted): This state is similar to idle in transaction, except one of the statements in the transaction caused an error. fastpath function call: The backend is executing a fast-path function. disabled: This state is reported if track_activities is disabled in this backend.","to":"Current overall state of this backend. Possible values are:"},{"name":"wait_event","from":"Wait event name if backend is currently waiting, otherwise NULL. See Table 27.4 for details.","to":"Wait event name if backend is currently waiting, otherwise NULL. See Table 27.5 through Table 27.13."},{"name":"wait_event_type","from":"The type of event for which the backend is waiting, if any; otherwise NULL. Possible values are: LWLock: The backend is waiting for a lightweight lock. Each such lock protects a particular data structure in shared memory. wait_event will contain a name identifying the purpose of the lightweight lock. (Some locks have specific names; others are part of a group of locks each with a similar purpose.) Lock: The backend is waiting for a heavyweight lock. Heavyweight locks, also known as lock manager locks or simply locks, primarily protect SQL-visible objects such as tables. However, they are also used to ensure mutual exclusion for certain internal operations such as relation extension. wait_event will identify the type of lock awaited. BufferPin: The server process is waiting to access to a data buffer during a period when no other process can be examining that buffer. Buffer pin waits can be protracted if another process holds an open cursor which last read data from the buffer in question. Activity: The server process is idle. This is used by system processes waiting for activity in their main processing loop. wait_event will identify the specific wait point. Extension: The server process is waiting for activity in an extension module. This category is useful for modules to track custom waiting points. Client: The server process is waiting for some activity on a socket from user applications, and that the server expects something to happen that is independent from its internal processes. wait_event will identify the specific wait point. IPC: The server process is waiting for some activity from another process in the server. wait_event will identify the specific wait point. Timeout: The server process is waiting for a timeout to expire. wait_event will identify the specific wait point. IO: The server process is waiting for a IO to complete. wait_event will identify the specific wait point.","to":"The type of event for which the backend is waiting, if any; otherwise NULL. See Table 27.4."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"query_id","type":"bigint","description":"Identifier of this backend's most recent query. If state is active this field shows the identifier of the currently executing query. In all other states, it shows the identifier of last query that was executed. Query identifiers are not computed by default so this field will be null unless compute_query_id parameter is enabled or a third-party module that computes query identifiers is configured.","hidden":false,"type_oid":20,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"backend_type","from":"Type of current backend. Possible types are autovacuum launcher, autovacuum worker, logical replication launcher, logical replication worker, parallel worker, background writer, client backend, checkpointer, startup, walreceiver, walsender and walwriter. In addition, background workers registered by extensions may have additional types.","to":"Type of current backend. Possible types are autovacuum launcher, autovacuum worker, logical replication launcher, logical replication worker, parallel worker, background writer, client backend, checkpointer, archiver, startup, walreceiver, walsender and walwriter. In addition, background workers registered by extensions may have additional types."},{"name":"wait_event","from":"Wait event name if backend is currently waiting, otherwise NULL. See Table 27.5 through Table 27.13.","to":"Wait event name if backend is currently waiting, otherwise NULL. See Table 28.5 through Table 28.13."},{"name":"wait_event_type","from":"The type of event for which the backend is waiting, if any; otherwise NULL. See Table 27.4.","to":"The type of event for which the backend is waiting, if any; otherwise NULL. See Table 28.4."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"backend_type","from":"Type of current backend. Possible types are autovacuum launcher, autovacuum worker, logical replication launcher, logical replication worker, parallel worker, background writer, client backend, checkpointer, archiver, startup, walreceiver, walsender and walwriter. In addition, background workers registered by extensions may have additional types.","to":"Type of current backend. Possible types are autovacuum launcher, autovacuum worker, logical replication launcher, logical replication worker, parallel worker, background writer, client backend, checkpointer, archiver, standalone backend, startup, walreceiver, walsender and walwriter. In addition, background workers registered by extensions may have additional types."},{"name":"backend_xid","from":"Top-level transaction identifier of this backend, if any.","to":"Top-level transaction identifier of this backend, if any; see Section 74.1."},{"name":"leader_pid","from":"Process ID of the parallel group leader, if this process is a parallel query worker. NULL if this process is a parallel group leader or does not participate in parallel query.","to":"Process ID of the parallel group leader if this process is a parallel query worker, or process ID of the leader apply worker if this process is a parallel apply worker. NULL indicates that this process is a parallel group leader or leader apply worker, or does not participate in any parallel operation."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"backend_type","from":"Type of current backend. Possible types are autovacuum launcher, autovacuum worker, logical replication launcher, logical replication worker, parallel worker, background writer, client backend, checkpointer, archiver, standalone backend, startup, walreceiver, walsender and walwriter. In addition, background workers registered by extensions may have additional types.","to":"Type of current backend. Possible types are autovacuum launcher, autovacuum worker, logical replication launcher, logical replication worker, parallel worker, background writer, client backend, checkpointer, archiver, standalone backend, startup, walreceiver, walsender, walwriter and walsummarizer. In addition, background workers registered by extensions may have additional types."},{"name":"backend_xid","from":"Top-level transaction identifier of this backend, if any; see Section 74.1.","to":"Top-level transaction identifier of this backend, if any; see Section 66.1."},{"name":"wait_event","from":"Wait event name if backend is currently waiting, otherwise NULL. See Table 28.5 through Table 28.13.","to":"Wait event name if backend is currently waiting, otherwise NULL. See Table 27.5 through Table 27.13."},{"name":"wait_event_type","from":"The type of event for which the backend is waiting, if any; otherwise NULL. See Table 28.4.","to":"The type of event for which the backend is waiting, if any; otherwise NULL. See Table 27.4."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"backend_xid","from":"Top-level transaction identifier of this backend, if any; see Section 66.1.","to":"Top-level transaction identifier of this backend, if any; see Section 67.1."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_all_indexes","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"last_idx_scan","type":"timestamp with time zone","description":"The time of the last scan on this index, based on the most recent transaction stop time","hidden":false,"type_oid":1184,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_all_tables","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"vacuum_count","type":"bigint","type_oid":20,"description":"Number of times this table has been manually vacuumed (not counting VACUUM FULL )","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L310","type_evidence":{"expression":"pg_stat_get_vacuum_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_vacuum_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2537"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":18,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"autovacuum_count","type":"bigint","type_oid":20,"description":"Number of times this table has been vacuumed by the autovacuum daemon","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L310","type_evidence":{"expression":"pg_stat_get_autovacuum_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_autovacuum_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2539"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":19,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"analyze_count","type":"bigint","type_oid":20,"description":"Number of times this table has been manually analyzed","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L310","type_evidence":{"expression":"pg_stat_get_analyze_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_analyze_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2541"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"autoanalyze_count","type":"bigint","type_oid":20,"description":"Number of times this table has been analyzed by the autovacuum daemon","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L310","type_evidence":{"expression":"pg_stat_get_autoanalyze_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_autoanalyze_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2543"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":21,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"last_vacuum","from":"Last time at which this table was manually vacuumed (not counting VACUUM FULL )","to":"Last time at which this table was manually vacuumed (not counting VACUUM FULL)"},{"name":"vacuum_count","from":"Number of times this table has been manually vacuumed (not counting VACUUM FULL )","to":"Number of times this table has been manually vacuumed (not counting VACUUM FULL)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[{"name":"n_mod_since_analyze","type":"bigint","description":"Estimated number of rows modified since this table was last analyzed","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_upd","from":"Number of rows updated","to":"Number of rows updated (includes HOT updated rows)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[{"name":"n_ins_since_vacuum","type":"bigint","description":"Estimated number of rows inserted since this table was last vacuumed","hidden":false,"type_oid":20,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"last_seq_scan","type":"timestamp with time zone","description":"The time of the last sequential scan on this table, based on the most recent transaction stop time","hidden":false,"type_oid":1184,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_idx_scan","type":"timestamp with time zone","description":"The time of the last index scan on this table, based on the most recent transaction stop time","hidden":false,"type_oid":1184,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_newpage_upd","type":"bigint","description":"Number of rows updated where the successor version goes onto a new heap page, leaving behind an original version with a t_ctid field that points to a different heap page. These are always non-HOT updates.","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_del","from":"Number of rows deleted","to":"Total number of rows deleted"},{"name":"n_tup_hot_upd","from":"Number of rows HOT updated (i.e., with no separate index update required)","to":"Number of rows HOT updated. These are updates where no successor versions are required in indexes."},{"name":"n_tup_ins","from":"Number of rows inserted","to":"Total number of rows inserted"},{"name":"n_tup_upd","from":"Number of rows updated (includes HOT updated rows)","to":"Total number of rows updated. (This includes row updates counted in n_tup_hot_upd and n_tup_newpage_upd, and remaining non-HOT updates.)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"total_vacuum_time","type":"double precision","description":"Total time this table has been manually vacuumed, in milliseconds (not counting VACUUM FULL). (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":27,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_autovacuum_time","type":"double precision","description":"Total time this table has been vacuumed by the autovacuum daemon, in milliseconds. (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":28,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_analyze_time","type":"double precision","description":"Total time this table has been manually analyzed, in milliseconds. (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":29,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_autoanalyze_time","type":"double precision","description":"Total time this table has been analyzed by the autovacuum daemon, in milliseconds. (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":30,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_ins_since_vacuum","from":"Estimated number of rows inserted since this table was last vacuumed","to":"Estimated number of rows inserted since this table was last vacuumed (not counting VACUUM FULL)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":31,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_archiver","changes":[{"from":"9.3","to":"9.4","status":"added","added_columns":[{"name":"archived_count","type":"bigint","description":"Number of WAL files that have been successfully archived","hidden":false,"type_oid":20,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_archived_wal","type":"text","description":"Name of the last WAL file successfully archived","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_archived_time","type":"timestamp with time zone","description":"Time of the last successful archive operation","hidden":false,"type_oid":1184,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"failed_count","type":"bigint","description":"Number of failed attempts for archiving WAL files","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_failed_wal","type":"text","description":"Name of the WAL file of the last failed archival operation","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_failed_time","type":"timestamp with time zone","description":"Time of the last failed archival operation","hidden":false,"type_oid":1184,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"last_archived_time","from":"Time of the last successful archive operation","to":"Time of the most recent successful archive operation"},{"name":"last_archived_wal","from":"Name of the last WAL file successfully archived","to":"Name of the WAL file most recently successfully archived"},{"name":"last_failed_time","from":"Time of the last failed archival operation","to":"Time of the most recent failed archival operation"},{"name":"last_failed_wal","from":"Name of the WAL file of the last failed archival operation","to":"Name of the WAL file of the most recent failed archival operation"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_autovacuum_scores","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"relid","type":"oid","description":"Oid of the table.","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"schemaname","type":"name","description":"Name of the schema that the table is in.","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relname","type":"name","description":"Name of the table.","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"score","type":"double precision","description":"Maximum value of all component scores. This is the value that autovacuum would use to sort the list of tables to process.","hidden":false,"type_oid":701,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"xid_score","type":"double precision","description":"Transaction ID age component score. Scores greater than autovacuum_freeze_score_weight indicate that autovacuum would vacuum the table for transaction ID wraparound prevention.","hidden":false,"type_oid":701,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"mxid_score","type":"double precision","description":"Multixact ID age component score. Scores greater than autovacuum_multixact_freeze_score_weight indicate that autovacuum would vacuum the table for multixact ID wraparound prevention.","hidden":false,"type_oid":701,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"vacuum_score","type":"double precision","description":"Vacuum component score. Scores greater than autovacuum_vacuum_score_weight indicate that autovacuum would vacuum the table (unless autovacuum is disabled).","hidden":false,"type_oid":701,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"vacuum_insert_score","type":"double precision","description":"Vacuum insert component score. Scores greater than autovacuum_vacuum_insert_score_weight indicate that autovacuum would vacuum the table (unless autovacuum is disabled).","hidden":false,"type_oid":701,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"analyze_score","type":"double precision","description":"Analyze component score. Scores greater than autovacuum_analyze_score_weight indicate that autovacuum would analyze the table (unless autovacuum is disabled).","hidden":false,"type_oid":701,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"do_vacuum","type":"boolean","description":"Whether autovacuum would vacuum the table. Note that even if the component scores indicate that autovacuum would vacuum the table, this may be false if autovacuum is disabled.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"do_analyze","type":"boolean","description":"Whether autovacuum would analyze the table. Note that even if the component scores indicate that autovacuum would analyze the table, this may be false if autovacuum is disabled.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"for_wraparound","type":"boolean","description":"Whether autovacuum would vacuum the table for wraparound prevention.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_bgwriter","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"buffers_backend_fsync","type":"bigint","type_oid":20,"description":"Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write)","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L585","type_evidence":{"expression":"pg_stat_get_buf_fsync_backend()","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_buf_fsync_backend","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2621"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-BGWRITER-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stats_reset","type":"timestamp with time zone","type_oid":1184,"description":"Time at which these statistics were last reset","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L585","type_evidence":{"expression":"pg_stat_get_bgwriter_stat_reset_time()","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_bgwriter_stat_reset_time","return_oid":1184,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2617"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-BGWRITER-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"checkpoint_write_time","type":"double precision","description":"Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk, in milliseconds","hidden":false,"type_oid":701,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"checkpoint_sync_time","type":"double precision","description":"Total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk, in milliseconds","hidden":false,"type_oid":701,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[{"name":"checkpoints_timed","type":"bigint","description":"Number of scheduled checkpoints that have been performed","hidden":false,"type_oid":20,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"checkpoints_req","type":"bigint","description":"Number of requested checkpoints that have been performed","hidden":false,"type_oid":20,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"checkpoint_write_time","type":"double precision","description":"Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk, in milliseconds","hidden":false,"type_oid":701,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"checkpoint_sync_time","type":"double precision","description":"Total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk, in milliseconds","hidden":false,"type_oid":701,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"buffers_checkpoint","type":"bigint","description":"Number of buffers written during checkpoints","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"buffers_backend","type":"bigint","description":"Number of buffers written directly by a backend","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"buffers_backend_fsync","type":"bigint","description":"Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write)","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_checkpointer","changes":[{"from":"16","to":"17","status":"added","added_columns":[{"name":"num_timed","type":"bigint","description":"Number of scheduled checkpoints due to timeout. Note that checkpoints may be skipped if the server has been idle since the last one, and this value counts both completed and skipped checkpoints","hidden":false,"type_oid":20,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"num_requested","type":"bigint","description":"Number of requested checkpoints that have been performed","hidden":false,"type_oid":20,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"restartpoints_timed","type":"bigint","description":"Number of scheduled restartpoints due to timeout or after a failed attempt to perform it","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"restartpoints_req","type":"bigint","description":"Number of requested restartpoints","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"restartpoints_done","type":"bigint","description":"Number of restartpoints that have been performed","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"write_time","type":"double precision","description":"Total amount of time that has been spent in the portion of processing checkpoints and restartpoints where files are written to disk, in milliseconds","hidden":false,"type_oid":701,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sync_time","type":"double precision","description":"Total amount of time that has been spent in the portion of processing checkpoints and restartpoints where files are synchronized to disk, in milliseconds","hidden":false,"type_oid":701,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"buffers_written","type":"bigint","description":"Number of buffers written during checkpoints and restartpoints","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"num_done","type":"bigint","description":"Number of checkpoints that have been performed","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"slru_written","type":"bigint","description":"Number of SLRU buffers written during checkpoints and restartpoints","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"buffers_written","from":"Number of buffers written during checkpoints and restartpoints","to":"Number of shared buffers written during checkpoints and restartpoints"},{"name":"num_requested","from":"Number of requested checkpoints that have been performed","to":"Number of requested checkpoints"},{"name":"num_timed","from":"Number of scheduled checkpoints due to timeout. Note that checkpoints may be skipped if the server has been idle since the last one, and this value counts both completed and skipped checkpoints","to":"Number of scheduled checkpoints due to timeout"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_database","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"conflicts","type":"bigint","type_oid":20,"description":"Number of queries canceled due to conflicts with recovery in this database. (Conflicts occur only on standby servers; see pg_stat_database_conflicts for details.)","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L531","type_evidence":{"expression":"pg_stat_get_db_conflict_all(D.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_db_conflict_all","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2603"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-DATABASE-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stats_reset","type":"timestamp with time zone","type_oid":1184,"description":"Time at which these statistics were last reset","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L531","type_evidence":{"expression":"pg_stat_get_db_stat_reset_time(D.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_db_stat_reset_time","return_oid":1184,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2605"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-DATABASE-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"temp_files","type":"bigint","description":"Number of temporary files created by queries in this database. All temporary files are counted, regardless of why the temporary file was created (e.g., sorting or hashing), and regardless of the log_temp_files setting.","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"temp_bytes","type":"bigint","description":"Total amount of data written to temporary files by queries in this database. All temporary files are counted, regardless of why the temporary file was created, and regardless of the log_temp_files setting.","hidden":false,"type_oid":20,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"deadlocks","type":"bigint","description":"Number of deadlocks detected in this database","hidden":false,"type_oid":20,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"blk_read_time","type":"double precision","description":"Time spent reading data file blocks by backends in this database, in milliseconds","hidden":false,"type_oid":701,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"blk_write_time","type":"double precision","description":"Time spent writing data file blocks by backends in this database, in milliseconds","hidden":false,"type_oid":701,"attnum":18,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[{"name":"checksum_failures","type":"bigint","description":"Number of data page checksum failures detected in this database (or on a shared object), or NULL if data checksums are not enabled.","hidden":false,"type_oid":20,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"checksum_last_failure","type":"timestamp with time zone","description":"Time at which the last data page checksum failure was detected in this database (or on a shared object), or NULL if data checksums are not enabled.","hidden":false,"type_oid":1184,"attnum":18,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"datid","from":"OID of a database","to":"OID of this database, or 0 for objects belonging to a shared relation"},{"name":"datname","from":"Name of this database","to":"Name of this database, or NULL for the shared objects."},{"name":"numbackends","from":"Number of backends currently connected to this database. This is the only column in this view that returns a value reflecting current state; all other columns return the accumulated values since the last reset.","to":"Number of backends currently connected to this database, or NULL for the shared objects. This is the only column in this view that returns a value reflecting current state; all other columns return the accumulated values since the last reset."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"blk_read_time","from":"Time spent reading data file blocks by backends in this database, in milliseconds","to":"Time spent reading data file blocks by backends in this database, in milliseconds (if track_io_timing is enabled, otherwise zero)"},{"name":"blk_write_time","from":"Time spent writing data file blocks by backends in this database, in milliseconds","to":"Time spent writing data file blocks by backends in this database, in milliseconds (if track_io_timing is enabled, otherwise zero)"},{"name":"datname","from":"Name of this database, or NULL for the shared objects.","to":"Name of this database, or NULL for shared objects."},{"name":"numbackends","from":"Number of backends currently connected to this database, or NULL for the shared objects. This is the only column in this view that returns a value reflecting current state; all other columns return the accumulated values since the last reset.","to":"Number of backends currently connected to this database, or NULL for shared objects. This is the only column in this view that returns a value reflecting current state; all other columns return the accumulated values since the last reset."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"session_time","type":"double precision","description":"Time spent by database sessions in this database, in milliseconds (note that statistics are only updated when the state of a session changes, so if sessions have been idle for a long time, this idle time won't be included)","hidden":false,"type_oid":701,"attnum":21,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"active_time","type":"double precision","description":"Time spent executing SQL statements in this database, in milliseconds (this corresponds to the states active and fastpath function call in pg_stat_activity)","hidden":false,"type_oid":701,"attnum":22,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"idle_in_transaction_time","type":"double precision","description":"Time spent idling while in a transaction in this database, in milliseconds (this corresponds to the states idle in transaction and idle in transaction (aborted) in pg_stat_activity)","hidden":false,"type_oid":701,"attnum":23,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sessions","type":"bigint","description":"Total number of sessions established to this database","hidden":false,"type_oid":20,"attnum":24,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sessions_abandoned","type":"bigint","description":"Number of database sessions to this database that were terminated because connection to the client was lost","hidden":false,"type_oid":20,"attnum":25,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sessions_fatal","type":"bigint","description":"Number of database sessions to this database that were terminated by fatal errors","hidden":false,"type_oid":20,"attnum":26,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sessions_killed","type":"bigint","description":"Number of database sessions to this database that were terminated by operator intervention","hidden":false,"type_oid":20,"attnum":27,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"tup_fetched","from":"Number of rows fetched by queries in this database","to":"Number of live rows fetched by index scans in this database"},{"name":"tup_returned","from":"Number of rows returned by queries in this database","to":"Number of live rows fetched by sequential scans and index entries returned by index scans in this database"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"parallel_workers_to_launch","type":"bigint","description":"Number of parallel workers planned to be launched by queries on this database","hidden":false,"type_oid":20,"attnum":28,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"parallel_workers_launched","type":"bigint","description":"Number of parallel workers launched by queries on this database","hidden":false,"type_oid":20,"attnum":29,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"checksum_failures","from":"Number of data page checksum failures detected in this database (or on a shared object), or NULL if data checksums are not enabled.","to":"Number of data page checksum failures detected in this database (or on a shared object), or NULL if data checksums are disabled."},{"name":"checksum_last_failure","from":"Time at which the last data page checksum failure was detected in this database (or on a shared object), or NULL if data checksums are not enabled.","to":"Time at which the last data page checksum failure was detected in this database (or on a shared object), or NULL if data checksums are disabled."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"checksum_failures","from":"Number of data page checksum failures detected in this database (or on a shared object), or NULL if data checksums are disabled.","to":"Number of data page checksum failures detected in this database (or on a shared object). Detected failures are not reset if the data_checksums setting changes. Clusters which are initialized without data checksums will show this as 0. In PostgreSQL version 18 and earlier, this was set to NULL for clusters with data checksums disabled."},{"name":"checksum_last_failure","from":"Time at which the last data page checksum failure was detected in this database (or on a shared object), or NULL if data checksums are disabled.","to":"Time at which the last data page checksum failure was detected in this database (or on a shared object). Last failure is reported regardless of the data_checksums setting."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_database_conflicts","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"datid","type":"oid","type_oid":26,"description":"OID of a database","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L550","type_evidence":{"expression":"D.oid","method":"catalog_oid_system_column","catalog_field":"pg_database.oid"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-DATABASE-CONFLICTS-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datname","type":"name","type_oid":19,"description":"Name of this database","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L550","type_evidence":{"expression":"D.datname","method":"catalog_name_column","catalog_field":"pg_database.datname","catalog_source":"https://www.postgresql.org/docs/9.1/catalog-pg-database.html"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-DATABASE-CONFLICTS-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_tablespace","type":"bigint","type_oid":20,"description":"Number of queries in this database that have been canceled due to dropped tablespaces","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L550","type_evidence":{"expression":"pg_stat_get_db_conflict_tablespace(D.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_db_conflict_tablespace","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2593"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-DATABASE-CONFLICTS-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_lock","type":"bigint","type_oid":20,"description":"Number of queries in this database that have been canceled due to lock timeouts","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L550","type_evidence":{"expression":"pg_stat_get_db_conflict_lock(D.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_db_conflict_lock","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2595"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-DATABASE-CONFLICTS-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_snapshot","type":"bigint","type_oid":20,"description":"Number of queries in this database that have been canceled due to old snapshots","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L550","type_evidence":{"expression":"pg_stat_get_db_conflict_snapshot(D.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_db_conflict_snapshot","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2597"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-DATABASE-CONFLICTS-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_bufferpin","type":"bigint","type_oid":20,"description":"Number of queries in this database that have been canceled due to pinned buffers","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L550","type_evidence":{"expression":"pg_stat_get_db_conflict_bufferpin(D.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_db_conflict_bufferpin","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2599"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-DATABASE-CONFLICTS-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_deadlock","type":"bigint","type_oid":20,"description":"Number of queries in this database that have been canceled due to deadlocks","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L550","type_evidence":{"expression":"pg_stat_get_db_conflict_startup_deadlock(D.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_db_conflict_startup_deadlock","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2601"}]},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-DATABASE-CONFLICTS-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"confl_active_logicalslot","type":"bigint","description":"Number of uses of logical slots in this database that have been canceled due to old snapshots or too low a wal_level on the primary","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_gssapi","changes":[{"from":"11","to":"12","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of a backend","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"gss_authenticated","type":"boolean","description":"True if GSSAPI authentication was used for this connection","hidden":false,"type_oid":16,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"principal","type":"text","description":"Principal used to authenticate this connection, or NULL if GSSAPI was not used to authenticate this connection. This field is truncated if the principal is longer than NAMEDATALEN (64 characters in a standard build).","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"encrypted","type":"boolean","description":"True if GSSAPI encryption is in use on this connection","hidden":false,"type_oid":16,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"credentials_delegated","type":"boolean","description":"True if GSSAPI credentials were delegated on this connection.","hidden":false,"type_oid":16,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_io","changes":[{"from":"15","to":"16","status":"added","added_columns":[{"name":"backend_type","type":"text","description":"Type of backend (e.g. background worker, autovacuum worker). See pg_stat_activity for more information on backend_types. Some backend_types do not accumulate I/O operation statistics and will not be included in the view.","hidden":false,"type_oid":25,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"object","type":"text","description":"Target object of an I/O operation. Possible values are:","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"context","type":"text","description":"The context of an I/O operation. Possible values are:","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"reads","type":"bigint","description":"Number of read operations, each of the size specified in op_bytes.","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"read_time","type":"double precision","description":"Time spent in read operations in milliseconds (if track_io_timing is enabled, otherwise zero)","hidden":false,"type_oid":701,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"writes","type":"bigint","description":"Number of write operations, each of the size specified in op_bytes.","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"write_time","type":"double precision","description":"Time spent in write operations in milliseconds (if track_io_timing is enabled, otherwise zero)","hidden":false,"type_oid":701,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"writebacks","type":"bigint","description":"Number of units of size op_bytes which the process requested the kernel write out to permanent storage.","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"writeback_time","type":"double precision","description":"Time spent in writeback operations in milliseconds (if track_io_timing is enabled, otherwise zero). This includes the time spent queueing write-out requests and, potentially, the time spent to write out the dirty data.","hidden":false,"type_oid":701,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"extends","type":"bigint","description":"Number of relation extend operations, each of the size specified in op_bytes.","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"extend_time","type":"double precision","description":"Time spent in extend operations in milliseconds (if track_io_timing is enabled, otherwise zero)","hidden":false,"type_oid":701,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"op_bytes","type":"bigint","description":"The number of bytes per unit of I/O read, written, or extended. Relation data reads, writes, and extends are done in block_size units, derived from the build-time parameter BLCKSZ, which is 8192 by default.","hidden":false,"type_oid":20,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"hits","type":"bigint","description":"The number of times a desired block was found in a shared buffer.","hidden":false,"type_oid":20,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"evictions","type":"bigint","description":"Number of times a block has been written out from a shared or local buffer in order to make it available for another use. In context normal, this counts the number of times a block was evicted from a buffer and replaced with another block. In contexts bulkwrite, bulkread, and vacuum, this counts the number of times a block was evicted from shared buffers in order to add the shared buffer to a separate, size-limited ring buffer for use in a bulk I/O operation.","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"reuses","type":"bigint","description":"The number of times an existing buffer in a size-limited ring buffer outside of shared buffers was reused as part of an I/O operation in the bulkread, bulkwrite, or vacuum contexts.","hidden":false,"type_oid":20,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"fsyncs","type":"bigint","description":"Number of fsync calls. These are only tracked in context normal.","hidden":false,"type_oid":20,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"fsync_time","type":"double precision","description":"Time spent in fsync operations in milliseconds (if track_io_timing is enabled, otherwise zero)","hidden":false,"type_oid":701,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset.","hidden":false,"type_oid":1184,"attnum":18,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"read_bytes","type":"numeric","description":"The total size of read operations in bytes.","hidden":false,"type_oid":1700,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"write_bytes","type":"numeric","description":"The total size of write operations in bytes.","hidden":false,"type_oid":1700,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"extend_bytes","type":"numeric","description":"The total size of relation extend operations in bytes.","hidden":false,"type_oid":1700,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"op_bytes","type":"bigint","description":"The number of bytes per unit of I/O read, written, or extended. Relation data reads, writes, and extends are done in block_size units, derived from the build-time parameter BLCKSZ, which is 8192 by default.","hidden":false,"type_oid":20,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[{"name":"extend_time","from":"Time spent in extend operations in milliseconds (if track_io_timing is enabled, otherwise zero)","to":"Time spent waiting for extend operations in milliseconds. (if track_io_timing is enabled and object is not wal, or if track_wal_io_timing is enabled and object is wal, otherwise zero)"},{"name":"extends","from":"Number of relation extend operations, each of the size specified in op_bytes.","to":"Number of relation extend operations."},{"name":"fsync_time","from":"Time spent in fsync operations in milliseconds (if track_io_timing is enabled, otherwise zero)","to":"Time spent waiting for fsync operations in milliseconds (if track_io_timing is enabled and object is not wal, or if track_wal_io_timing is enabled and object is wal, otherwise zero)"},{"name":"read_time","from":"Time spent in read operations in milliseconds (if track_io_timing is enabled, otherwise zero)","to":"Time spent waiting for read operations in milliseconds (if track_io_timing is enabled and object is not wal, or if track_wal_io_timing is enabled and object is wal, otherwise zero)"},{"name":"reads","from":"Number of read operations, each of the size specified in op_bytes.","to":"Number of read operations."},{"name":"write_time","from":"Time spent in write operations in milliseconds (if track_io_timing is enabled, otherwise zero)","to":"Time spent waiting for write operations in milliseconds (if track_io_timing is enabled and object is not wal, or if track_wal_io_timing is enabled and object is wal, otherwise zero)"},{"name":"writeback_time","from":"Time spent in writeback operations in milliseconds (if track_io_timing is enabled, otherwise zero). This includes the time spent queueing write-out requests and, potentially, the time spent to write out the dirty data.","to":"Time spent waiting for writeback operations in milliseconds (if track_io_timing is enabled, otherwise zero). This includes the time spent queueing write-out requests and, potentially, the time spent to write out the dirty data."},{"name":"writebacks","from":"Number of units of size op_bytes which the process requested the kernel write out to permanent storage.","to":"Number of units of size BLCKSZ (typically 8kB) which the process requested the kernel write out to permanent storage."},{"name":"writes","from":"Number of write operations, each of the size specified in op_bytes.","to":"Number of write operations."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"read_time","from":"Time spent waiting for read operations in milliseconds (if track_io_timing is enabled and object is not wal, or if track_wal_io_timing is enabled and object is wal, otherwise zero)","to":"Time spent waiting for read operations in milliseconds (if track_io_timing is enabled and object is not wal, or if track_wal_io_timing is enabled and object is wal, otherwise zero). This may include time spent waiting for a read started by another backend. In that case reads may still be zero."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_lock","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"locktype","type":"text","description":"Type of the lockable object. See pg_locks for details.","hidden":false,"type_oid":25,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"waits","type":"bigint","description":"Number of times a lock of this type had to wait because of a conflicting lock. Only incremented when the lock was successfully acquired after waiting longer than deadlock_timeout.","hidden":false,"type_oid":20,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wait_time","type":"double precision","description":"Total time spent waiting for locks of this type, in milliseconds. Only incremented when the lock was successfully acquired after waiting longer than deadlock_timeout.","hidden":false,"type_oid":701,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"fastpath_exceeded","type":"bigint","description":"Number of times a lock of this type could not be acquired via fast path because the fast path slot limit was exceeded. Increasing max_locks_per_transaction can reduce this number.","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset.","hidden":false,"type_oid":1184,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_progress_analyze","changes":[{"from":"12","to":"13","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of backend.","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datid","type":"oid","description":"OID of the database to which this backend is connected.","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datname","type":"name","description":"Name of the database to which this backend is connected.","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relid","type":"oid","description":"OID of the table being analyzed.","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"phase","type":"text","description":"Current processing phase. See Table 27.33.","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sample_blks_total","type":"bigint","description":"Total number of heap blocks that will be sampled.","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sample_blks_scanned","type":"bigint","description":"Number of heap blocks scanned.","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"ext_stats_total","type":"bigint","description":"Number of extended statistics.","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"ext_stats_computed","type":"bigint","description":"Number of extended statistics computed. This counter only advances when the phase is computing extended statistics.","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"child_tables_total","type":"bigint","description":"Number of child tables.","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"child_tables_done","type":"bigint","description":"Number of child tables scanned. This counter only advances when the phase is acquiring inherited sample rows.","hidden":false,"type_oid":20,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"current_child_table_relid","type":"oid","description":"OID of the child table currently being scanned. This field is only valid when the phase is acquiring inherited sample rows.","hidden":false,"type_oid":26,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 27.33.","to":"Current processing phase. See Table 28.35."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 28.35.","to":"Current processing phase. See Table 28.37."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 28.37.","to":"Current processing phase. See Table 28.38."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 28.38.","to":"Current processing phase. See Table 27.39."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"delay_time","type":"double precision","description":"Total time spent sleeping due to cost-based delay (see Section 19.10.2), in milliseconds (if track_cost_delay_timing is enabled, otherwise zero).","hidden":false,"type_oid":701,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"started_by","type":"text","description":"Shows what caused the current ANALYZE operation to be started. Possible values are:","hidden":false,"type_oid":25,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 27.39.","to":"Current processing phase. See Table 27.42."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_progress_basebackup","changes":[{"from":"12","to":"13","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of a WAL sender process.","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"phase","type":"text","description":"Current processing phase. See Table 27.41.","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"backup_total","type":"bigint","description":"Total amount of data that will be streamed. This is estimated and reported as of the beginning of streaming database files phase. Note that this is only an approximation since the database may change during streaming database files phase and WAL log may be included in the backup later. This is always the same value as backup_streamed once the amount of data streamed exceeds the estimated total size. If the estimation is disabled in pg_basebackup (i.e., --no-estimate-size option is specified), this is NULL.","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"backup_streamed","type":"bigint","description":"Amount of data streamed. This counter only advances when the phase is streaming database files or transferring wal files.","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tablespaces_total","type":"bigint","description":"Total number of tablespaces that will be streamed.","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tablespaces_streamed","type":"bigint","description":"Number of tablespaces streamed. This counter only advances when the phase is streaming database files.","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 27.41.","to":"Current processing phase. See Table 28.43."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 28.43.","to":"Current processing phase. See Table 28.45."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 28.45.","to":"Current processing phase. See Table 28.47."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 28.47.","to":"Current processing phase. See Table 27.48."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"backup_type","type":"text","description":"Backup type. Either full or incremental.","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 27.48.","to":"Current processing phase. See Table 27.53."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_progress_cluster","changes":[{"from":"11","to":"12","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of backend.","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datid","type":"oid","description":"OID of the database to which this backend is connected.","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datname","type":"name","description":"Name of the database to which this backend is connected.","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relid","type":"oid","description":"OID of the table being clustered.","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"command","type":"text","description":"The command that is running. Either CLUSTER or VACUUM FULL.","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"phase","type":"text","description":"Current processing phase. See Table 27.27.","hidden":false,"type_oid":25,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"cluster_index_relid","type":"oid","description":"If the table is being scanned using an index, this is the OID of the index being used; otherwise, it is zero.","hidden":false,"type_oid":26,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_tuples_scanned","type":"bigint","description":"Number of heap tuples scanned. This counter only advances when the phase is seq scanning heap, index scanning heap or writing new heap.","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_tuples_written","type":"bigint","description":"Number of heap tuples written. This counter only advances when the phase is seq scanning heap, index scanning heap or writing new heap.","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_blks_total","type":"bigint","description":"Total number of heap blocks in the table. This number is reported as of the beginning of seq scanning heap.","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_blks_scanned","type":"bigint","description":"Number of heap blocks scanned. This counter only advances when the phase is seq scanning heap.","hidden":false,"type_oid":20,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"index_rebuild_count","type":"bigint","description":"Number of indexes rebuilt. This counter only advances when the phase is rebuilding index.","hidden":false,"type_oid":20,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 27.27.","to":"Current processing phase. See Table 27.39."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 27.39.","to":"Current processing phase. See Table 28.41."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 28.41.","to":"Current processing phase. See Table 28.43."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 28.43.","to":"Current processing phase. See Table 28.40."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase. See Table 28.40.","to":"Current processing phase. See Table 27.41."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"command","from":"The command that is running. Either CLUSTER or VACUUM FULL.","to":"The command that is running. Either CLUSTER or VACUUM FULL. Because this view exists for backwards-compatibility purposes only, it will translate any REPACK command into one of these other two."},{"name":"phase","from":"Current processing phase. See Table 27.41.","to":"Current processing phase. See Table 27.44."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_progress_copy","changes":[{"from":"13","to":"14","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of backend.","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datid","type":"oid","description":"OID of the database to which this backend is connected.","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datname","type":"name","description":"Name of the database to which this backend is connected.","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relid","type":"oid","description":"OID of the table on which the COPY command is executed. It is set to 0 if copying from a SELECT query.","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"command","type":"text","description":"The command that is running: COPY FROM, or COPY TO.","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"type","type":"text","description":"The io type that the data is read from or written to: FILE, PROGRAM, PIPE (for COPY FROM STDIN and COPY TO STDOUT), or CALLBACK (used for example during the initial table synchronization in logical replication).","hidden":false,"type_oid":25,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"bytes_processed","type":"bigint","description":"Number of bytes already processed by COPY command.","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"bytes_total","type":"bigint","description":"Size of source file for COPY FROM command in bytes. It is set to 0 if not available.","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tuples_processed","type":"bigint","description":"Number of tuples already processed by COPY command.","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tuples_excluded","type":"bigint","description":"Number of tuples not processed because they were excluded by the WHERE clause of the COPY command.","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[{"name":"tuples_skipped","type":"bigint","description":"Number of tuples skipped because they contain malformed data. This counter only advances when a value other than stop is specified to the ON_ERROR option.","hidden":false,"type_oid":20,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"type","from":"The io type that the data is read from or written to: FILE, PROGRAM, PIPE (for COPY FROM STDIN and COPY TO STDOUT), or CALLBACK (used for example during the initial table synchronization in logical replication).","to":"The I/O type that the data is read from or written to: FILE, PROGRAM, PIPE (for COPY FROM STDIN and COPY TO STDOUT), or CALLBACK (used for example during the initial table synchronization in logical replication)."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"tuples_skipped","from":"Number of tuples skipped because they contain malformed data. This counter only advances when a value other than stop is specified to the ON_ERROR option.","to":"Number of tuples skipped because they contain malformed data. This counter only advances when ignore is specified to the ON_ERROR option."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_progress_create_index","changes":[{"from":"11","to":"12","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of backend.","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datid","type":"oid","description":"OID of the database to which this backend is connected.","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datname","type":"name","description":"Name of the database to which this backend is connected.","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relid","type":"oid","description":"OID of the table on which the index is being created.","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"index_relid","type":"oid","description":"OID of the index being created or reindexed. During a non-concurrent CREATE INDEX, this is 0.","hidden":false,"type_oid":26,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"command","type":"text","description":"The command that is running: CREATE INDEX, CREATE INDEX CONCURRENTLY, REINDEX, or REINDEX CONCURRENTLY.","hidden":false,"type_oid":25,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"phase","type":"text","description":"Current processing phase of index creation. See Table 27.23.","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"lockers_total","type":"bigint","description":"Total number of lockers to wait for, when applicable.","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"lockers_done","type":"bigint","description":"Number of lockers already waited for.","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"current_locker_pid","type":"bigint","description":"Process ID of the locker currently being waited for.","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"blocks_total","type":"bigint","description":"Total number of blocks to be processed in the current phase.","hidden":false,"type_oid":20,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"blocks_done","type":"bigint","description":"Number of blocks already processed in the current phase.","hidden":false,"type_oid":20,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tuples_total","type":"bigint","description":"Total number of tuples to be processed in the current phase.","hidden":false,"type_oid":20,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tuples_done","type":"bigint","description":"Number of tuples already processed in the current phase.","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"partitions_total","type":"bigint","description":"When creating an index on a partitioned table, this column is set to the total number of partitions on which the index is to be created.","hidden":false,"type_oid":20,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"partitions_done","type":"bigint","description":"When creating an index on a partitioned table, this column is set to the number of partitions on which the index has been completed.","hidden":false,"type_oid":20,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of index creation. See Table 27.23.","to":"Current processing phase of index creation. See Table 27.35."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"partitions_done","from":"When creating an index on a partitioned table, this column is set to the number of partitions on which the index has been completed.","to":"When creating an index on a partitioned table, this column is set to the number of partitions on which the index has been created. This field is 0 during a REINDEX."},{"name":"partitions_total","from":"When creating an index on a partitioned table, this column is set to the total number of partitions on which the index is to be created.","to":"When creating an index on a partitioned table, this column is set to the total number of partitions on which the index is to be created. This field is 0 during a REINDEX."},{"name":"phase","from":"Current processing phase of index creation. See Table 27.35.","to":"Current processing phase of index creation. See Table 28.37."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of index creation. See Table 28.37.","to":"Current processing phase of index creation. See Table 28.39."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"command","from":"The command that is running: CREATE INDEX, CREATE INDEX CONCURRENTLY, REINDEX, or REINDEX CONCURRENTLY.","to":"Specific command type: CREATE INDEX, CREATE INDEX CONCURRENTLY, REINDEX, or REINDEX CONCURRENTLY."},{"name":"partitions_done","from":"When creating an index on a partitioned table, this column is set to the number of partitions on which the index has been created. This field is 0 during a REINDEX.","to":"Number of partitions on which the index has already been created or attached, including both direct and indirect partitions. 0 during a REINDEX, or when the index is not partitioned."},{"name":"partitions_total","from":"When creating an index on a partitioned table, this column is set to the total number of partitions on which the index is to be created. This field is 0 during a REINDEX.","to":"Total number of partitions on which the index is to be created or attached, including both direct and indirect partitions. 0 during a REINDEX, or when the index is not partitioned."},{"name":"phase","from":"Current processing phase of index creation. See Table 28.39.","to":"Current processing phase of index creation. See Table 28.43."},{"name":"pid","from":"Process ID of backend.","to":"Process ID of the backend creating indexes."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of index creation. See Table 28.43.","to":"Current processing phase of index creation. See Table 27.44."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of index creation. See Table 27.44.","to":"Current processing phase of index creation. See Table 27.47."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_progress_data_checksums","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of the data checksum process, launcher or worker.","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datid","type":"oid","description":"OID of this database, or 0 for the launcher process.","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datname","type":"name","description":"Name of this database, or NULL for the launcher process.","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"phase","type":"text","description":"Current processing phase, see Table 27.55 for description of the phases.","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"databases_total","type":"bigint","description":"The total number of databases which will be processed. Only the launcher process has this value set when enabling data checksums; otherwise this is set to NULL.","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"databases_done","type":"bigint","description":"The number of databases which have been processed. Only the launcher process has this value set when enabling data checksums; otherwise this is set to NULL.","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relations_total","type":"bigint","description":"The total number of relations which will be processed, or NULL if the worker process hasn't calculated the number of relations yet. The launcher process has this set to NULL since it isn't responsible for processing relations, only launching worker processes.","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relations_done","type":"bigint","description":"The number of relations which have been processed. The launcher process has this set to NULL.","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"blocks_total","type":"bigint","description":"The number of blocks in the current relation which will be processed, or NULL if the worker process hasn't calculated the number of blocks yet. The launcher process has this set to NULL.","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"blocks_done","type":"bigint","description":"The number of blocks in the current relation which have been processed. The launcher process has this set to NULL.","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_progress_repack","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of backend.","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datid","type":"oid","description":"OID of the database to which this backend is connected.","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datname","type":"name","description":"Name of the database to which this backend is connected.","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relid","type":"oid","description":"OID of the table being repacked.","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"command","type":"text","description":"The command that is running. Either REPACK or VACUUM FULL, or CLUSTER.","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"phase","type":"text","description":"Current processing phase. See Table 27.49.","hidden":false,"type_oid":25,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"repack_index_relid","type":"oid","description":"If the table is being scanned using an index, this is the OID of the index being used; otherwise, it is zero.","hidden":false,"type_oid":26,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_tuples_scanned","type":"bigint","description":"Number of heap tuples scanned. This counter only advances when the phase is seq scanning heap, index scanning heap or writing new heap.","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_tuples_inserted","type":"bigint","description":"Number of heap tuples inserted. This counter only advances when the phase is seq scanning heap, index scanning heap, writing new heap or catch-up.","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_tuples_updated","type":"bigint","description":"Number of heap tuples updated. This counter only advances when the phase is catch-up.","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_tuples_deleted","type":"bigint","description":"Number of heap tuples deleted. This counter only advances when the phase is catch-up.","hidden":false,"type_oid":20,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_blks_total","type":"bigint","description":"Total number of heap blocks in the table. This number is reported as of the beginning of seq scanning heap.","hidden":false,"type_oid":20,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_blks_scanned","type":"bigint","description":"Number of heap blocks scanned. This counter only advances when the phase is seq scanning heap.","hidden":false,"type_oid":20,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"index_rebuild_count","type":"bigint","description":"Number of indexes rebuilt. This counter only advances when the phase is rebuilding index.","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_progress_vacuum","changes":[{"from":"9.5","to":"9.6","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of backend.","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datid","type":"oid","description":"OID of the database to which this backend is connected.","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"datname","type":"name","description":"Name of the database to which this backend is connected.","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relid","type":"oid","description":"OID of the table being vacuumed.","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"phase","type":"text","description":"Current processing phase of vacuum. See Table 28-21.","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_blks_total","type":"bigint","description":"Total number of heap blocks in the table. This number is reported as of the beginning of the scan; blocks added later will not be (and need not be) visited by this VACUUM.","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_blks_scanned","type":"bigint","description":"Number of heap blocks scanned. Because the visibility map is used to optimize scans, some blocks will be skipped without inspection; skipped blocks are included in this total, so that this number will eventually become equal to heap_blks_total when the vacuum is complete. This counter only advances when the phase is scanning heap.","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"heap_blks_vacuumed","type":"bigint","description":"Number of heap blocks vacuumed. Unless the table has no indexes, this counter only advances when the phase is vacuuming heap. Blocks that contain no dead tuples are skipped, so the counter may sometimes skip forward in large increments.","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"index_vacuum_count","type":"bigint","description":"Number of completed index vacuum cycles.","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"max_dead_tuples","type":"bigint","description":"Number of dead tuples that we can store before needing to perform an index vacuum cycle, based on maintenance_work_mem.","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"num_dead_tuples","type":"bigint","description":"Number of dead tuples collected since the last index vacuum cycle.","hidden":false,"type_oid":20,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of vacuum. See Table 28-21.","to":"Current processing phase of vacuum. See Table 28.22."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of vacuum. See Table 28.22.","to":"Current processing phase of vacuum. See Table 27.25."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of vacuum. See Table 27.25.","to":"Current processing phase of vacuum. See Table 27.37."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of vacuum. See Table 27.37.","to":"Current processing phase of vacuum. See Table 28.39."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of vacuum. See Table 28.39.","to":"Current processing phase of vacuum. See Table 28.41."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of vacuum. See Table 28.41.","to":"Current processing phase of vacuum. See Table 28.45."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[{"name":"max_dead_tuple_bytes","type":"bigint","description":"Amount of dead tuple data that we can store before needing to perform an index vacuum cycle, based on maintenance_work_mem.","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"dead_tuple_bytes","type":"bigint","description":"Amount of dead tuple data collected since the last index vacuum cycle.","hidden":false,"type_oid":20,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"num_dead_item_ids","type":"bigint","description":"Number of dead item identifiers collected since the last index vacuum cycle.","hidden":false,"type_oid":20,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"indexes_total","type":"bigint","description":"Total number of indexes that will be vacuumed or cleaned up. This number is reported at the beginning of the vacuuming indexes phase or the cleaning up indexes phase.","hidden":false,"type_oid":20,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"indexes_processed","type":"bigint","description":"Number of indexes processed. This counter only advances when the phase is vacuuming indexes or cleaning up indexes.","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"max_dead_tuples","type":"bigint","description":"Number of dead tuples that we can store before needing to perform an index vacuum cycle, based on maintenance_work_mem.","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"num_dead_tuples","type":"bigint","description":"Number of dead tuples collected since the last index vacuum cycle.","hidden":false,"type_oid":20,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of vacuum. See Table 28.45.","to":"Current processing phase of vacuum. See Table 27.46."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"delay_time","type":"double precision","description":"Total time spent sleeping due to cost-based delay (see Section 19.10.2), in milliseconds (if track_cost_delay_timing is enabled, otherwise zero). This includes the time that any associated parallel workers have slept. However, parallel workers report their sleep time no more frequently than once per second, so the reported value may be slightly stale.","hidden":false,"type_oid":701,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"mode","type":"text","description":"The mode in which the current VACUUM operation is running. See Section 24.1.5 for details of each mode. Possible values are:","hidden":false,"type_oid":25,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"started_by","type":"text","description":"Shows what caused the current VACUUM operation to be started. Possible values are:","hidden":false,"type_oid":25,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"phase","from":"Current processing phase of vacuum. See Table 27.46.","to":"Current processing phase of vacuum. See Table 27.51."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_recovery","changes":[{"from":"18","to":"19","status":"added","added_columns":[{"name":"promote_triggered","type":"boolean","description":"True if a promotion has been triggered.","hidden":false,"type_oid":16,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_replayed_read_lsn","type":"pg_lsn","description":"Start write-ahead log location of the last successfully replayed WAL record.","hidden":false,"type_oid":3220,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_replayed_end_lsn","type":"pg_lsn","description":"End write-ahead log location, plus one, of the last successfully replayed WAL record.","hidden":false,"type_oid":3220,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_replayed_tli","type":"integer","description":"Timeline of the last successfully replayed WAL record.","hidden":false,"type_oid":23,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"replay_end_lsn","type":"pg_lsn","description":"Write-ahead log location of the record currently being replayed (end position plus one). When no record is being actively replayed, equals last_replayed_end_lsn.","hidden":false,"type_oid":3220,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"replay_end_tli","type":"integer","description":"Timeline of the WAL record currently being replayed. When no record is being actively replayed, equals last_replayed_tli.","hidden":false,"type_oid":23,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"recovery_last_xact_time","type":"timestamp with time zone","description":"Timestamp of the last transaction commit or abort record replayed during recovery. This is the time at which the commit or abort WAL record for that transaction was generated on the primary.","hidden":false,"type_oid":1184,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"current_chunk_start_time","type":"timestamp with time zone","description":"Time when the startup process observed that replay had caught up with the latest WAL chunk received from streaming replication. Used in recovery-conflict timing and replay/apply-lag diagnostics. NULL if streaming WAL has not yet been received or the time is not available.","hidden":false,"type_oid":1184,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"pause_state","type":"text","description":"Recovery pause state. Possible values are:","hidden":false,"type_oid":25,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_recovery_prefetch","changes":[{"from":"14","to":"15","status":"added","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"prefetch","type":"bigint","description":"Number of blocks prefetched because they were not in the buffer pool","hidden":false,"type_oid":20,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"hit","type":"bigint","description":"Number of blocks not prefetched because they were already in the buffer pool","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"skip_init","type":"bigint","description":"Number of blocks not prefetched because they would be zero-initialized","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"skip_new","type":"bigint","description":"Number of blocks not prefetched because they didn't exist yet","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"skip_fpw","type":"bigint","description":"Number of blocks not prefetched because a full page image was included in the WAL","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"skip_rep","type":"bigint","description":"Number of blocks not prefetched because they were already recently prefetched","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wal_distance","type":"integer","description":"How many bytes ahead the prefetcher is looking","documented_type":"int","hidden":false,"type_oid":23,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"block_distance","type":"integer","description":"How many blocks ahead the prefetcher is looking","documented_type":"int","hidden":false,"type_oid":23,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"io_depth","type":"integer","description":"How many prefetches have been initiated but are not yet known to have completed","documented_type":"int","hidden":false,"type_oid":23,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_replication","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"procpid","type":"integer","type_oid":23,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"S.procpid","method":"sql_projection_and_function_signatures","function":"pg_stat_get_activity","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2547"},"hidden":false,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"usesysid","type":"oid","type_oid":26,"description":"OID of the user logged into this WAL sender process","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"S.usesysid","method":"sql_projection_and_function_signatures","function":"pg_stat_get_activity","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2547"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"usename","type":"name","type_oid":19,"description":"Name of the user logged into this WAL sender process","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"U.rolname","method":"catalog_name_column","catalog_field":"pg_authid.rolname","catalog_source":"https://www.postgresql.org/docs/9.1/catalog-pg-authid.html"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"application_name","type":"text","type_oid":25,"description":"Name of the application that is connected to this WAL sender","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"S.application_name","method":"sql_projection_and_function_signatures","function":"pg_stat_get_activity","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2547"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"client_addr","type":"inet","type_oid":869,"description":"IP address of the client connected to this WAL sender. If this field is null, it indicates that the client is connected via a Unix socket on the server machine.","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"S.client_addr","method":"sql_projection_and_function_signatures","function":"pg_stat_get_activity","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2547"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"client_hostname","type":"text","type_oid":25,"description":"Host name of the connected client, as reported by a reverse DNS lookup of client_addr . This field will only be non-null for IP connections, and only when log_hostname is enabled.","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"S.client_hostname","method":"sql_projection_and_function_signatures","function":"pg_stat_get_activity","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2547"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"client_port","type":"integer","type_oid":23,"description":"TCP port number that the client is using for communication with this WAL sender, or -1 if a Unix socket is used","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"S.client_port","method":"sql_projection_and_function_signatures","function":"pg_stat_get_activity","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2547"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"backend_start","type":"timestamp with time zone","type_oid":1184,"description":"Time when this process was started, i.e., when the client connected to this WAL sender","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"S.backend_start","method":"sql_projection_and_function_signatures","function":"pg_stat_get_activity","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2547"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"state","type":"text","type_oid":25,"description":"Current WAL sender state","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"W.state","method":"sql_projection_and_function_signatures","function":"pg_stat_get_wal_senders","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2549"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sent_location","type":"text","type_oid":25,"description":"Last transaction log position sent on this connection","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"W.sent_location","method":"sql_projection_and_function_signatures","function":"pg_stat_get_wal_senders","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2549"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"write_location","type":"text","type_oid":25,"description":"Last transaction log position written to disk by this standby server","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"W.write_location","method":"sql_projection_and_function_signatures","function":"pg_stat_get_wal_senders","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2549"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"flush_location","type":"text","type_oid":25,"description":"Last transaction log position flushed to disk by this standby server","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"W.flush_location","method":"sql_projection_and_function_signatures","function":"pg_stat_get_wal_senders","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2549"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"replay_location","type":"text","type_oid":25,"description":"Last transaction log position replayed into the database on this standby server","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"W.replay_location","method":"sql_projection_and_function_signatures","function":"pg_stat_get_wal_senders","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2549"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sync_priority","type":"integer","type_oid":23,"description":"Priority of this standby server for being chosen as the synchronous standby","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"W.sync_priority","method":"sql_projection_and_function_signatures","function":"pg_stat_get_wal_senders","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2549"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sync_state","type":"text","type_oid":25,"description":"Synchronous state of this standby server","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"W.sync_state","method":"sql_projection_and_function_signatures","function":"pg_stat_get_wal_senders","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2549"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-REPLICATION-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"pid","type":"integer","description":"Process ID of a WAL sender process","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"procpid","type":"integer","type_oid":23,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L509","type_evidence":{"expression":"S.procpid","method":"sql_projection_and_function_signatures","function":"pg_stat_get_activity","function_source":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2547"},"hidden":false,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[{"name":"client_hostname","from":"Host name of the connected client, as reported by a reverse DNS lookup of client_addr . This field will only be non-null for IP connections, and only when log_hostname is enabled.","to":"Host name of the connected client, as reported by a reverse DNS lookup of client_addr. This field will only be non-null for IP connections, and only when log_hostname is enabled."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.3","to":"9.4","status":"changed","added_columns":[{"name":"backend_xmin","type":"xid","description":"This standby's xmin horizon reported by hot_standby_feedback.","hidden":false,"type_oid":28,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[{"name":"flush_location","from":"text","to":"pg_lsn"},{"name":"replay_location","from":"text","to":"pg_lsn"},{"name":"sent_location","from":"text","to":"pg_lsn"},{"name":"write_location","from":"text","to":"pg_lsn"}],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[{"name":"sent_lsn","type":"pg_lsn","description":"Last write-ahead log location sent on this connection","hidden":false,"type_oid":3220,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"write_lsn","type":"pg_lsn","description":"Last write-ahead log location written to disk by this standby server","hidden":false,"type_oid":3220,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"flush_lsn","type":"pg_lsn","description":"Last write-ahead log location flushed to disk by this standby server","hidden":false,"type_oid":3220,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"replay_lsn","type":"pg_lsn","description":"Last write-ahead log location replayed into the database on this standby server","hidden":false,"type_oid":3220,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"write_lag","type":"interval","description":"Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written it (but not yet flushed it or applied it). This can be used to gauge the delay that synchronous_commit level remote_write incurred while committing if this server was configured as a synchronous standby.","hidden":false,"type_oid":1186,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"flush_lag","type":"interval","description":"Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written and flushed it (but not yet applied it). This can be used to gauge the delay that synchronous_commit level on incurred while committing if this server was configured as a synchronous standby.","hidden":false,"type_oid":1186,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"replay_lag","type":"interval","description":"Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written, flushed and applied it. This can be used to gauge the delay that synchronous_commit level remote_apply incurred while committing if this server was configured as a synchronous standby.","hidden":false,"type_oid":1186,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"sent_location","type":"pg_lsn","description":"Last transaction log position sent on this connection","hidden":false,"type_oid":3220,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"write_location","type":"pg_lsn","description":"Last transaction log position written to disk by this standby server","hidden":false,"type_oid":3220,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"flush_location","type":"pg_lsn","description":"Last transaction log position flushed to disk by this standby server","hidden":false,"type_oid":3220,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"replay_location","type":"pg_lsn","description":"Last transaction log position replayed into the database on this standby server","hidden":false,"type_oid":3220,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[{"name":"state","from":"Current WAL sender state","to":"Current WAL sender state. Possible values are: startup: This WAL sender is starting up. catchup: This WAL sender's connected standby is catching up with the primary. streaming: This WAL sender is streaming changes after its connected standby server has caught up with the primary. backup: This WAL sender is sending a backup. stopping: This WAL sender is stopping."},{"name":"sync_priority","from":"Priority of this standby server for being chosen as the synchronous standby","to":"Priority of this standby server for being chosen as the synchronous standby in a priority-based synchronous replication. This has no effect in a quorum-based synchronous replication."},{"name":"sync_state","from":"Synchronous state of this standby server","to":"Synchronous state of this standby server. Possible values are: async: This standby server is asynchronous. potential: This standby server is now asynchronous, but can potentially become synchronous if one of current synchronous ones fails. sync: This standby server is synchronous. quorum: This standby server is considered as a candidate for quorum standbys."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[{"name":"reply_time","type":"timestamp with time zone","description":"Send time of last reply message received from standby server","hidden":false,"type_oid":1184,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"state","from":"Current WAL sender state. Possible values are: startup: This WAL sender is starting up. catchup: This WAL sender's connected standby is catching up with the primary. streaming: This WAL sender is streaming changes after its connected standby server has caught up with the primary. backup: This WAL sender is sending a backup. stopping: This WAL sender is stopping.","to":"Current WAL sender state. Possible values are:"},{"name":"sync_state","from":"Synchronous state of this standby server. Possible values are: async: This standby server is asynchronous. potential: This standby server is now asynchronous, but can potentially become synchronous if one of current synchronous ones fails. sync: This standby server is synchronous. quorum: This standby server is considered as a candidate for quorum standbys.","to":"Synchronous state of this standby server. Possible values are:"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"backend_xmin","from":"This standby's xmin horizon reported by hot_standby_feedback.","to":"This standby's xmin horizon reported by hot_standby_feedback. This field will be null if a replication slot is used (in this case, the standby's xmin is shown in pg_replication_slots) or if hot_standby_feedback is disabled."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_replication_slots","changes":[{"from":"13","to":"14","status":"added","added_columns":[{"name":"slot_name","type":"text","description":"A unique, cluster-wide identifier for the replication slot","hidden":false,"type_oid":25,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"spill_txns","type":"bigint","description":"Number of transactions spilled to disk once the memory used by logical decoding to decode changes from WAL has exceeded logical_decoding_work_mem. The counter gets incremented for both top-level transactions and subtransactions.","hidden":false,"type_oid":20,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"spill_count","type":"bigint","description":"Number of times transactions were spilled to disk while decoding changes from WAL for this slot. This counter is incremented each time a transaction is spilled, and the same transaction may be spilled multiple times.","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"spill_bytes","type":"bigint","description":"Amount of decoded transaction data spilled to disk while performing decoding of changes from WAL for this slot. This and other spill counters can be used to gauge the I/O which occurred during logical decoding and allow tuning logical_decoding_work_mem.","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stream_txns","type":"bigint","description":"Number of in-progress transactions streamed to the decoding output plugin after the memory used by logical decoding to decode changes from WAL for this slot has exceeded logical_decoding_work_mem. Streaming only works with top-level transactions (subtransactions can't be streamed independently), so the counter is not incremented for subtransactions.","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stream_count","type":"bigint","description":"Number of times in-progress transactions were streamed to the decoding output plugin while decoding changes from WAL for this slot. This counter is incremented each time a transaction is streamed, and the same transaction may be streamed multiple times.","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stream_bytes","type":"bigint","description":"Amount of transaction data decoded for streaming in-progress transactions to the decoding output plugin while decoding changes from WAL for this slot. This and other streaming counters for this slot can be used to tune logical_decoding_work_mem.","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_txns","type":"bigint","description":"Number of decoded transactions sent to the decoding output plugin for this slot. This counts top-level transactions only, and is not incremented for subtransactions. Note that this includes the transactions that are streamed and/or spilled.","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_bytes","type":"bigint","description":"Amount of transaction data decoded for sending transactions to the decoding output plugin while decoding changes from WAL for this slot. Note that this includes data that is streamed and/or spilled.","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"mem_exceeded_count","type":"bigint","description":"Number of times the memory used by logical decoding has exceeded logical_decoding_work_mem.","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"slotsync_skip_count","type":"bigint","description":"Number of times the slot synchronization is skipped. Slot synchronization occurs only on standby servers and thus this column has no meaning on the primary server.","hidden":false,"type_oid":20,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"slotsync_last_skip","type":"timestamp with time zone","description":"Time at which last slot synchronization was skipped. Slot synchronization occurs only on standby servers and thus this column has no meaning on the primary server.","hidden":false,"type_oid":1184,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_slru","changes":[{"from":"12","to":"13","status":"added","added_columns":[{"name":"name","type":"text","description":"Name of the SLRU","hidden":false,"type_oid":25,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"blks_zeroed","type":"bigint","description":"Number of blocks zeroed during initializations","hidden":false,"type_oid":20,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"blks_hit","type":"bigint","description":"Number of times disk blocks were found already in the SLRU, so that a read was not necessary (this only includes hits in the SLRU, not the operating system's file system cache)","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"blks_read","type":"bigint","description":"Number of disk blocks read for this SLRU","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"blks_written","type":"bigint","description":"Number of disk blocks written for this SLRU","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"blks_exists","type":"bigint","description":"Number of blocks checked for existence for this SLRU","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"flushes","type":"bigint","description":"Number of flushes of dirty data for this SLRU","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"truncates","type":"bigint","description":"Number of truncates for this SLRU","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_ssl","changes":[{"from":"9.4","to":"9.5","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of a backend or WAL sender process","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"ssl","type":"boolean","description":"True if SSL is used on this connection","hidden":false,"type_oid":16,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"version","type":"text","description":"Version of SSL in use, or NULL if SSL is not in use on this connection","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"cipher","type":"text","description":"Name of SSL cipher in use, or NULL if SSL is not in use on this connection","hidden":false,"type_oid":25,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"bits","type":"integer","description":"Number of bits in the encryption algorithm used, or NULL if SSL is not used on this connection","hidden":false,"type_oid":23,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"compression","type":"boolean","description":"True if SSL compression is in use, false if not, or NULL if SSL is not in use on this connection","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"clientdn","type":"text","description":"Distinguished Name (DN) field from the client certificate used, or NULL if no client certificate was supplied or if SSL is not in use on this connection. This field is truncated if the DN field is longer than NAMEDATALEN (64 characters in a standard build)","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[{"name":"client_dn","type":"text","description":"Distinguished Name (DN) field from the client certificate used, or NULL if no client certificate was supplied or if SSL is not in use on this connection. This field is truncated if the DN field is longer than NAMEDATALEN (64 characters in a standard build).","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"client_serial","type":"numeric","description":"Serial number of the client certificate, or NULL if no client certificate was supplied or if SSL is not in use on this connection. The combination of certificate serial number and certificate issuer uniquely identifies a certificate (unless the issuer erroneously reuses serial numbers).","hidden":false,"type_oid":1700,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"issuer_dn","type":"text","description":"DN of the issuer of the client certificate, or NULL if no client certificate was supplied or if SSL is not in use on this connection. This field is truncated like client_dn.","hidden":false,"type_oid":25,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"clientdn","type":"text","description":"Distinguished Name (DN) field from the client certificate used, or NULL if no client certificate was supplied or if SSL is not in use on this connection. This field is truncated if the DN field is longer than NAMEDATALEN (64 characters in a standard build)","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[{"name":"compression","type":"boolean","description":"True if SSL compression is in use, false if not, or NULL if SSL is not in use on this connection","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_subscription","changes":[{"from":"9.6","to":"10","status":"added","added_columns":[{"name":"subid","type":"oid","description":"OID of the subscription","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"subname","type":"name","description":"Name of the subscription","documented_type":"text","schema_note":"SQL type calibrated against format_type in a fresh instance of the exact release; original documentation spelling is retained.","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"pid","type":"integer","description":"Process ID of the subscription worker process","hidden":false,"type_oid":23,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relid","type":"oid","description":"OID of the relation that the worker is synchronizing; null for the main apply worker","documented_type":"Oid","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"received_lsn","type":"pg_lsn","description":"Last write-ahead log location received, the initial value of this field being 0","hidden":false,"type_oid":3220,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_msg_send_time","type":"timestamp with time zone","description":"Send time of last message received from origin WAL sender","hidden":false,"type_oid":1184,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_msg_receipt_time","type":"timestamp with time zone","description":"Receipt time of last message received from origin WAL sender","hidden":false,"type_oid":1184,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"latest_end_lsn","type":"pg_lsn","description":"Last write-ahead log location reported to origin WAL sender","hidden":false,"type_oid":3220,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"latest_end_time","type":"timestamp with time zone","description":"Time of last write-ahead log location reported to origin WAL sender","hidden":false,"type_oid":1184,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"leader_pid","type":"integer","description":"Process ID of the leader apply worker if this process is a parallel apply worker; NULL if this process is a leader apply worker or a synchronization worker","hidden":false,"type_oid":23,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"last_msg_receipt_time","from":"Receipt time of last message received from origin WAL sender","to":"Receipt time of last message received from origin WAL sender; NULL for parallel apply workers"},{"name":"last_msg_send_time","from":"Send time of last message received from origin WAL sender","to":"Send time of last message received from origin WAL sender; NULL for parallel apply workers"},{"name":"latest_end_lsn","from":"Last write-ahead log location reported to origin WAL sender","to":"Last write-ahead log location reported to origin WAL sender; NULL for parallel apply workers"},{"name":"latest_end_time","from":"Time of last write-ahead log location reported to origin WAL sender","to":"Time of last write-ahead log location reported to origin WAL sender; NULL for parallel apply workers"},{"name":"received_lsn","from":"Last write-ahead log location received, the initial value of this field being 0","to":"Last write-ahead log location received, the initial value of this field being 0; NULL for parallel apply workers"},{"name":"relid","from":"OID of the relation that the worker is synchronizing; null for the main apply worker","to":"OID of the relation that the worker is synchronizing; NULL for the leader apply worker and parallel apply workers"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[{"name":"worker_type","type":"text","description":"Type of the subscription worker process. Possible types are apply, parallel apply, and table synchronization.","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"leader_pid","from":"Process ID of the leader apply worker if this process is a parallel apply worker; NULL if this process is a leader apply worker or a synchronization worker","to":"Process ID of the leader apply worker if this process is a parallel apply worker; NULL if this process is a leader apply worker or a table synchronization worker"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"last_msg_receipt_time","from":"Receipt time of last message received from origin WAL sender; NULL for parallel apply workers","to":"Receipt time of last message received from origin WAL sender; NULL for parallel apply workers and the sequence synchronization worker"},{"name":"last_msg_send_time","from":"Send time of last message received from origin WAL sender; NULL for parallel apply workers","to":"Send time of last message received from origin WAL sender; NULL for parallel apply workers and the sequence synchronization worker"},{"name":"latest_end_lsn","from":"Last write-ahead log location reported to origin WAL sender; NULL for parallel apply workers","to":"Last write-ahead log location reported to origin WAL sender; NULL for parallel apply workers and the sequence synchronization worker"},{"name":"latest_end_time","from":"Time of last write-ahead log location reported to origin WAL sender; NULL for parallel apply workers","to":"Time of last write-ahead log location reported to origin WAL sender; NULL for parallel apply workers and the sequence synchronization worker"},{"name":"leader_pid","from":"Process ID of the leader apply worker if this process is a parallel apply worker; NULL if this process is a leader apply worker or a table synchronization worker","to":"Process ID of the leader apply worker if this process is a parallel apply worker; NULL if this process is a leader apply worker, a table synchronization worker or a sequence synchronization worker"},{"name":"received_lsn","from":"Last write-ahead log location received, the initial value of this field being 0; NULL for parallel apply workers","to":"Last write-ahead log location received, the initial value of this field being 0; NULL for parallel apply workers and the sequence synchronization worker"},{"name":"relid","from":"OID of the relation that the worker is synchronizing; NULL for the leader apply worker and parallel apply workers","to":"OID of the relation that the worker is synchronizing; NULL for the leader apply worker, parallel apply workers and the sequence synchronization worker"},{"name":"worker_type","from":"Type of the subscription worker process. Possible types are apply, parallel apply, and table synchronization.","to":"Type of the subscription worker process. Possible types are apply, parallel apply, table synchronization, and sequence synchronization."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_subscription_stats","changes":[{"from":"14","to":"15","status":"added","added_columns":[{"name":"subid","type":"oid","description":"OID of the subscription","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"subname","type":"name","description":"Name of the subscription","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"apply_error_count","type":"bigint","description":"Number of times an error occurred while applying changes","hidden":false,"type_oid":20,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sync_error_count","type":"bigint","description":"Number of times an error occurred during the initial table synchronization","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"confl_insert_exists","type":"bigint","description":"Number of times a row insertion violated a NOT DEFERRABLE unique constraint during the application of changes. See insert_exists for details about this conflict.","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_update_origin_differs","type":"bigint","description":"Number of times an update was applied to a row that had been previously modified by another source during the application of changes. See update_origin_differs for details about this conflict.","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_update_exists","type":"bigint","description":"Number of times that an updated row value violated a NOT DEFERRABLE unique constraint during the application of changes. See update_exists for details about this conflict.","hidden":false,"type_oid":20,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_update_missing","type":"bigint","description":"Number of times the tuple to be updated was not found during the application of changes. See update_missing for details about this conflict.","hidden":false,"type_oid":20,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_delete_origin_differs","type":"bigint","description":"Number of times a delete operation was applied to row that had been previously modified by another source during the application of changes. See delete_origin_differs for details about this conflict.","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_delete_missing","type":"bigint","description":"Number of times the tuple to be deleted was not found during the application of changes. See delete_missing for details about this conflict.","hidden":false,"type_oid":20,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_multiple_unique_conflicts","type":"bigint","description":"Number of times a row insertion or an updated row values violated multiple NOT DEFERRABLE unique constraints during the application of changes. See multiple_unique_conflicts for details about this conflict.","hidden":false,"type_oid":20,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"apply_error_count","from":"Number of times an error occurred while applying changes","to":"Number of times an error occurred while applying changes. Note that any conflict resulting in an apply error will be counted in both apply_error_count and the corresponding conflict count (e.g., confl_*)."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"sync_seq_error_count","type":"bigint","description":"Number of times an error occurred in the sequence synchronization worker. A single worker synchronizes all sequences, so one error increment may represent failures across multiple sequences.","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sync_table_error_count","type":"bigint","description":"Number of times an error occurred during the initial table synchronization","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"confl_update_deleted","type":"bigint","description":"Number of times the tuple to be updated was concurrently deleted by another source during the application of changes. See update_deleted for details about this conflict.","hidden":false,"type_oid":20,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"sync_error_count","type":"bigint","description":"Number of times an error occurred during the initial table synchronization","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_sys_indexes","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"last_idx_scan","type":"timestamp with time zone","description":"The time of the last scan on this index, based on the most recent transaction stop time","hidden":false,"type_oid":1184,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_sys_tables","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"vacuum_count","type":"bigint","type_oid":20,"description":"Number of times this table has been manually vacuumed (not counting VACUUM FULL )","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L360","type_evidence":{"expression":"pg_stat_get_vacuum_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_vacuum_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2537"}],"inherited_from":"pg_stat_all_tables"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":18,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"autovacuum_count","type":"bigint","type_oid":20,"description":"Number of times this table has been vacuumed by the autovacuum daemon","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L360","type_evidence":{"expression":"pg_stat_get_autovacuum_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_autovacuum_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2539"}],"inherited_from":"pg_stat_all_tables"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":19,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"analyze_count","type":"bigint","type_oid":20,"description":"Number of times this table has been manually analyzed","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L360","type_evidence":{"expression":"pg_stat_get_analyze_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_analyze_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2541"}],"inherited_from":"pg_stat_all_tables"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"autoanalyze_count","type":"bigint","type_oid":20,"description":"Number of times this table has been analyzed by the autovacuum daemon","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L360","type_evidence":{"expression":"pg_stat_get_autoanalyze_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_autoanalyze_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2543"}],"inherited_from":"pg_stat_all_tables"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":21,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"last_vacuum","from":"Last time at which this table was manually vacuumed (not counting VACUUM FULL )","to":"Last time at which this table was manually vacuumed (not counting VACUUM FULL)"},{"name":"vacuum_count","from":"Number of times this table has been manually vacuumed (not counting VACUUM FULL )","to":"Number of times this table has been manually vacuumed (not counting VACUUM FULL)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[{"name":"n_mod_since_analyze","type":"bigint","description":"Estimated number of rows modified since this table was last analyzed","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_upd","from":"Number of rows updated","to":"Number of rows updated (includes HOT updated rows)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[{"name":"n_ins_since_vacuum","type":"bigint","description":"Estimated number of rows inserted since this table was last vacuumed","hidden":false,"type_oid":20,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"last_seq_scan","type":"timestamp with time zone","description":"The time of the last sequential scan on this table, based on the most recent transaction stop time","hidden":false,"type_oid":1184,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_idx_scan","type":"timestamp with time zone","description":"The time of the last index scan on this table, based on the most recent transaction stop time","hidden":false,"type_oid":1184,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_newpage_upd","type":"bigint","description":"Number of rows updated where the successor version goes onto a new heap page, leaving behind an original version with a t_ctid field that points to a different heap page. These are always non-HOT updates.","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_del","from":"Number of rows deleted","to":"Total number of rows deleted"},{"name":"n_tup_hot_upd","from":"Number of rows HOT updated (i.e., with no separate index update required)","to":"Number of rows HOT updated. These are updates where no successor versions are required in indexes."},{"name":"n_tup_ins","from":"Number of rows inserted","to":"Total number of rows inserted"},{"name":"n_tup_upd","from":"Number of rows updated (includes HOT updated rows)","to":"Total number of rows updated. (This includes row updates counted in n_tup_hot_upd and n_tup_newpage_upd, and remaining non-HOT updates.)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"total_vacuum_time","type":"double precision","description":"Total time this table has been manually vacuumed, in milliseconds (not counting VACUUM FULL). (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":27,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_autovacuum_time","type":"double precision","description":"Total time this table has been vacuumed by the autovacuum daemon, in milliseconds. (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":28,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_analyze_time","type":"double precision","description":"Total time this table has been manually analyzed, in milliseconds. (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":29,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_autoanalyze_time","type":"double precision","description":"Total time this table has been analyzed by the autovacuum daemon, in milliseconds. (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":30,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_ins_since_vacuum","from":"Estimated number of rows inserted since this table was last vacuumed","to":"Estimated number of rows inserted since this table was last vacuumed (not counting VACUUM FULL)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":31,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_user_functions","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[{"name":"self_time","from":"bigint","to":"double precision"},{"name":"total_time","from":"bigint","to":"double precision"}],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_user_indexes","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"last_idx_scan","type":"timestamp with time zone","description":"The time of the last scan on this index, based on the most recent transaction stop time","hidden":false,"type_oid":1184,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_user_tables","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"vacuum_count","type":"bigint","type_oid":20,"description":"Number of times this table has been manually vacuumed (not counting VACUUM FULL )","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L370","type_evidence":{"expression":"pg_stat_get_vacuum_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_vacuum_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2537"}],"inherited_from":"pg_stat_all_tables"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":18,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"autovacuum_count","type":"bigint","type_oid":20,"description":"Number of times this table has been vacuumed by the autovacuum daemon","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L370","type_evidence":{"expression":"pg_stat_get_autovacuum_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_autovacuum_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2539"}],"inherited_from":"pg_stat_all_tables"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":19,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"analyze_count","type":"bigint","type_oid":20,"description":"Number of times this table has been manually analyzed","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L370","type_evidence":{"expression":"pg_stat_get_analyze_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_analyze_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2541"}],"inherited_from":"pg_stat_all_tables"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"autoanalyze_count","type":"bigint","type_oid":20,"description":"Number of times this table has been analyzed by the autovacuum daemon","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L370","type_evidence":{"expression":"pg_stat_get_autoanalyze_count(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_autoanalyze_count","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2543"}],"inherited_from":"pg_stat_all_tables"},"description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW","method":"later_documentation_exact_column_name","note":"Explanation borrowed from later documentation; existence, order, and type come only from this version's source."},"hidden":false,"attnum":21,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"last_vacuum","from":"Last time at which this table was manually vacuumed (not counting VACUUM FULL )","to":"Last time at which this table was manually vacuumed (not counting VACUUM FULL)"},{"name":"vacuum_count","from":"Number of times this table has been manually vacuumed (not counting VACUUM FULL )","to":"Number of times this table has been manually vacuumed (not counting VACUUM FULL)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[{"name":"n_mod_since_analyze","type":"bigint","description":"Estimated number of rows modified since this table was last analyzed","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_upd","from":"Number of rows updated","to":"Number of rows updated (includes HOT updated rows)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[{"name":"n_ins_since_vacuum","type":"bigint","description":"Estimated number of rows inserted since this table was last vacuumed","hidden":false,"type_oid":20,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"last_seq_scan","type":"timestamp with time zone","description":"The time of the last sequential scan on this table, based on the most recent transaction stop time","hidden":false,"type_oid":1184,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_idx_scan","type":"timestamp with time zone","description":"The time of the last index scan on this table, based on the most recent transaction stop time","hidden":false,"type_oid":1184,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_newpage_upd","type":"bigint","description":"Number of rows updated where the successor version goes onto a new heap page, leaving behind an original version with a t_ctid field that points to a different heap page. These are always non-HOT updates.","hidden":false,"type_oid":20,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_del","from":"Number of rows deleted","to":"Total number of rows deleted"},{"name":"n_tup_hot_upd","from":"Number of rows HOT updated (i.e., with no separate index update required)","to":"Number of rows HOT updated. These are updates where no successor versions are required in indexes."},{"name":"n_tup_ins","from":"Number of rows inserted","to":"Total number of rows inserted"},{"name":"n_tup_upd","from":"Number of rows updated (includes HOT updated rows)","to":"Total number of rows updated. (This includes row updates counted in n_tup_hot_upd and n_tup_newpage_upd, and remaining non-HOT updates.)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[{"name":"total_vacuum_time","type":"double precision","description":"Total time this table has been manually vacuumed, in milliseconds (not counting VACUUM FULL). (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":27,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_autovacuum_time","type":"double precision","description":"Total time this table has been vacuumed by the autovacuum daemon, in milliseconds. (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":28,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_analyze_time","type":"double precision","description":"Total time this table has been manually analyzed, in milliseconds. (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":29,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_autoanalyze_time","type":"double precision","description":"Total time this table has been analyzed by the autovacuum daemon, in milliseconds. (This includes the time spent sleeping due to cost-based delays.)","hidden":false,"type_oid":701,"attnum":30,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_ins_since_vacuum","from":"Estimated number of rows inserted since this table was last vacuumed","to":"Estimated number of rows inserted since this table was last vacuumed (not counting VACUUM FULL)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":31,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_wal","changes":[{"from":"13","to":"14","status":"added","added_columns":[{"name":"wal_records","type":"bigint","description":"Total number of WAL records generated","hidden":false,"type_oid":20,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wal_fpi","type":"bigint","description":"Total number of WAL full page images generated","hidden":false,"type_oid":20,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wal_bytes","type":"numeric","description":"Total amount of WAL generated in bytes","hidden":false,"type_oid":1700,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wal_buffers_full","type":"bigint","description":"Number of times WAL data was written to disk because WAL buffers became full","hidden":false,"type_oid":20,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wal_write","type":"bigint","description":"Number of times WAL buffers were written out to disk via XLogWrite request. See Section 30.5 for more information about the internal WAL function XLogWrite.","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wal_sync","type":"bigint","description":"Number of times WAL files were synced to disk via issue_xlog_fsync request (if fsync is on and wal_sync_method is either fdatasync, fsync or fsync_writethrough, otherwise zero). See Section 30.5 for more information about the internal WAL function issue_xlog_fsync.","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wal_write_time","type":"double precision","description":"Total amount of time spent writing WAL buffers to disk via XLogWrite request, in milliseconds (if track_wal_io_timing is enabled, otherwise zero). This includes the sync time when wal_sync_method is either open_datasync or open_sync.","hidden":false,"type_oid":701,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wal_sync_time","type":"double precision","description":"Total amount of time spent syncing WAL files to disk via issue_xlog_fsync request, in milliseconds (if track_wal_io_timing is enabled, fsync is on, and wal_sync_method is either fdatasync, fsync or fsync_writethrough, otherwise zero).","hidden":false,"type_oid":701,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"wal_sync","from":"Number of times WAL files were synced to disk via issue_xlog_fsync request (if fsync is on and wal_sync_method is either fdatasync, fsync or fsync_writethrough, otherwise zero). See Section 30.5 for more information about the internal WAL function issue_xlog_fsync.","to":"Number of times WAL files were synced to disk via issue_xlog_fsync request (if fsync is on and wal_sync_method is either fdatasync, fsync or fsync_writethrough, otherwise zero). See Section 28.5 for more information about the internal WAL function issue_xlog_fsync."},{"name":"wal_write","from":"Number of times WAL buffers were written out to disk via XLogWrite request. See Section 30.5 for more information about the internal WAL function XLogWrite.","to":"Number of times WAL buffers were written out to disk via XLogWrite request. See Section 28.5 for more information about the internal WAL function XLogWrite."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[{"name":"wal_write","type":"bigint","description":"Number of times WAL buffers were written out to disk via XLogWrite request. See Section 28.5 for more information about the internal WAL function XLogWrite.","hidden":false,"type_oid":20,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wal_sync","type":"bigint","description":"Number of times WAL files were synced to disk via issue_xlog_fsync request (if fsync is on and wal_sync_method is either fdatasync, fsync or fsync_writethrough, otherwise zero). See Section 28.5 for more information about the internal WAL function issue_xlog_fsync.","hidden":false,"type_oid":20,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wal_write_time","type":"double precision","description":"Total amount of time spent writing WAL buffers to disk via XLogWrite request, in milliseconds (if track_wal_io_timing is enabled, otherwise zero). This includes the sync time when wal_sync_method is either open_datasync or open_sync.","hidden":false,"type_oid":701,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"wal_sync_time","type":"double precision","description":"Total amount of time spent syncing WAL files to disk via issue_xlog_fsync request, in milliseconds (if track_wal_io_timing is enabled, fsync is on, and wal_sync_method is either fdatasync, fsync or fsync_writethrough, otherwise zero).","hidden":false,"type_oid":701,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"wal_fpi_bytes","type":"numeric","description":"Total amount of WAL full page images in bytes","hidden":false,"type_oid":1700,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_wal_receiver","changes":[{"from":"9.5","to":"9.6","status":"added","added_columns":[{"name":"pid","type":"integer","description":"Process ID of the WAL receiver process","hidden":false,"type_oid":23,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"status","type":"text","description":"Activity status of the WAL receiver process","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"receive_start_lsn","type":"pg_lsn","description":"First transaction log position used when WAL receiver is started","hidden":false,"type_oid":3220,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"receive_start_tli","type":"integer","description":"First timeline number used when WAL receiver is started","hidden":false,"type_oid":23,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"received_lsn","type":"pg_lsn","description":"Last transaction log position already received and flushed to disk, the initial value of this field being the first log position used when WAL receiver is started","hidden":false,"type_oid":3220,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"received_tli","type":"integer","description":"Timeline number of last transaction log position received and flushed to disk, the initial value of this field being the timeline number of the first log position used when WAL receiver is started","hidden":false,"type_oid":23,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_msg_send_time","type":"timestamp with time zone","description":"Send time of last message received from origin WAL sender","hidden":false,"type_oid":1184,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"last_msg_receipt_time","type":"timestamp with time zone","description":"Receipt time of last message received from origin WAL sender","hidden":false,"type_oid":1184,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"latest_end_lsn","type":"pg_lsn","description":"Last transaction log position reported to origin WAL sender","hidden":false,"type_oid":3220,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"latest_end_time","type":"timestamp with time zone","description":"Time of last transaction log position reported to origin WAL sender","hidden":false,"type_oid":1184,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"slot_name","type":"text","description":"Replication slot name used by this WAL receiver","hidden":false,"type_oid":25,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"conninfo","type":"text","description":"Connection string used by this WAL receiver, with security-sensitive fields obfuscated.","hidden":false,"type_oid":25,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"latest_end_lsn","from":"Last transaction log position reported to origin WAL sender","to":"Last write-ahead log location reported to origin WAL sender"},{"name":"latest_end_time","from":"Time of last transaction log position reported to origin WAL sender","to":"Time of last write-ahead log location reported to origin WAL sender"},{"name":"receive_start_lsn","from":"First transaction log position used when WAL receiver is started","to":"First write-ahead log location used when WAL receiver is started"},{"name":"received_lsn","from":"Last transaction log position already received and flushed to disk, the initial value of this field being the first log position used when WAL receiver is started","to":"Last write-ahead log location already received and flushed to disk, the initial value of this field being the first log location used when WAL receiver is started"},{"name":"received_tli","from":"Timeline number of last transaction log position received and flushed to disk, the initial value of this field being the timeline number of the first log position used when WAL receiver is started","to":"Timeline number of last write-ahead log location received and flushed to disk, the initial value of this field being the timeline number of the first log location used when WAL receiver is started"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[{"name":"sender_host","type":"text","description":"Host of the PostgreSQL instance this WAL receiver is connected to. This can be a host name, an IP address, or a directory path if the connection is via Unix socket. (The path case can be distinguished because it will always be an absolute path, beginning with /.)","hidden":false,"type_oid":25,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"sender_port","type":"integer","description":"Port number of the PostgreSQL instance this WAL receiver is connected to.","hidden":false,"type_oid":23,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[{"name":"written_lsn","type":"pg_lsn","description":"Last write-ahead log location already received and written to disk, but not flushed. This should not be used for data integrity checks.","hidden":false,"type_oid":3220,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"flushed_lsn","type":"pg_lsn","description":"Last write-ahead log location already received and flushed to disk, the initial value of this field being the first log location used when WAL receiver is started","hidden":false,"type_oid":3220,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"received_lsn","type":"pg_lsn","description":"Last write-ahead log location already received and flushed to disk, the initial value of this field being the first log location used when WAL receiver is started","hidden":false,"type_oid":3220,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"status","from":"Activity status of the WAL receiver process","to":"Activity status of the WAL receiver process. Possible values are:"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_stat_xact_all_tables","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"relid","type":"oid","type_oid":26,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L340","type_evidence":{"expression":"C.oid","method":"catalog_oid_system_column","catalog_field":"pg_class.oid"},"hidden":false,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"schemaname","type":"name","type_oid":19,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L340","type_evidence":{"expression":"N.nspname","method":"catalog_name_column","catalog_field":"pg_namespace.nspname","catalog_source":"https://www.postgresql.org/docs/9.1/catalog-pg-namespace.html"},"hidden":false,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relname","type":"name","type_oid":19,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L340","type_evidence":{"expression":"C.relname","method":"catalog_name_column","catalog_field":"pg_class.relname","catalog_source":"https://www.postgresql.org/docs/9.1/catalog-pg-class.html"},"hidden":false,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"seq_scan","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L340","type_evidence":{"expression":"pg_stat_get_xact_numscans(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_numscans","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2633"}]},"hidden":false,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"seq_tup_read","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L340","type_evidence":{"expression":"pg_stat_get_xact_tuples_returned(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_returned","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2635"}]},"hidden":false,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"idx_scan","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L340","type_evidence":{"expression":"sum(pg_stat_get_xact_numscans(I.indexrelid))::bigint","method":"explicit_bigint_cast_and_bigint_arithmetic","functions":[{"name":"pg_stat_get_xact_numscans","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2633"}]},"hidden":false,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"idx_tup_fetch","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L340","type_evidence":{"expression":"sum(pg_stat_get_xact_tuples_fetched(I.indexrelid))::bigint + pg_stat_get_xact_tuples_fetched(C.oid)","method":"explicit_bigint_cast_and_bigint_arithmetic","functions":[{"name":"pg_stat_get_xact_tuples_fetched","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2637"},{"name":"pg_stat_get_xact_tuples_fetched","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2637"}]},"hidden":false,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_ins","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L340","type_evidence":{"expression":"pg_stat_get_xact_tuples_inserted(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_inserted","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2639"}]},"hidden":false,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_upd","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L340","type_evidence":{"expression":"pg_stat_get_xact_tuples_updated(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_updated","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2641"}]},"hidden":false,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_del","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L340","type_evidence":{"expression":"pg_stat_get_xact_tuples_deleted(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_deleted","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2643"}]},"hidden":false,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_hot_upd","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L340","type_evidence":{"expression":"pg_stat_get_xact_tuples_hot_updated(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_hot_updated","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2645"}]},"hidden":false,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"idx_scan","from":"","to":"Number of index scans initiated on this table This view reports counters for the current transaction."},{"name":"idx_tup_fetch","from":"","to":"Number of live rows fetched by index scans This view reports counters for the current transaction."},{"name":"n_tup_del","from":"","to":"Number of rows deleted This view reports counters for the current transaction."},{"name":"n_tup_hot_upd","from":"","to":"Number of rows HOT updated (i.e., with no separate index update required) This view reports counters for the current transaction."},{"name":"n_tup_ins","from":"","to":"Number of rows inserted This view reports counters for the current transaction."},{"name":"n_tup_upd","from":"","to":"Number of rows updated This view reports counters for the current transaction."},{"name":"relid","from":"","to":"OID of a table"},{"name":"relname","from":"","to":"Name of this table"},{"name":"schemaname","from":"","to":"Name of the schema that this table is in"},{"name":"seq_scan","from":"","to":"Number of sequential scans initiated on this table This view reports counters for the current transaction."},{"name":"seq_tup_read","from":"","to":"Number of live rows fetched by sequential scans This view reports counters for the current transaction."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_upd","from":"Number of rows updated This view reports counters for the current transaction.","to":"Number of rows updated (includes HOT updated rows) This view reports counters for the current transaction."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"n_tup_newpage_upd","type":"bigint","description":"Number of rows updated where the successor version goes onto a new heap page, leaving behind an original version with a t_ctid field that points to a different heap page. These are always non-HOT updates. This view reports counters for the current transaction.","hidden":false,"type_oid":20,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_del","from":"Number of rows deleted This view reports counters for the current transaction.","to":"Total number of rows deleted This view reports counters for the current transaction."},{"name":"n_tup_hot_upd","from":"Number of rows HOT updated (i.e., with no separate index update required) This view reports counters for the current transaction.","to":"Number of rows HOT updated. These are updates where no successor versions are required in indexes. This view reports counters for the current transaction."},{"name":"n_tup_ins","from":"Number of rows inserted This view reports counters for the current transaction.","to":"Total number of rows inserted This view reports counters for the current transaction."},{"name":"n_tup_upd","from":"Number of rows updated (includes HOT updated rows) This view reports counters for the current transaction.","to":"Total number of rows updated. (This includes row updates counted in n_tup_hot_upd and n_tup_newpage_upd, and remaining non-HOT updates.) This view reports counters for the current transaction."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_xact_sys_tables","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"relid","type":"oid","type_oid":26,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L365","type_evidence":{"expression":"C.oid","method":"catalog_oid_system_column","catalog_field":"pg_class.oid","inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"schemaname","type":"name","type_oid":19,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L365","type_evidence":{"expression":"N.nspname","method":"catalog_name_column","catalog_field":"pg_namespace.nspname","catalog_source":"https://www.postgresql.org/docs/9.1/catalog-pg-namespace.html","inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relname","type":"name","type_oid":19,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L365","type_evidence":{"expression":"C.relname","method":"catalog_name_column","catalog_field":"pg_class.relname","catalog_source":"https://www.postgresql.org/docs/9.1/catalog-pg-class.html","inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"seq_scan","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L365","type_evidence":{"expression":"pg_stat_get_xact_numscans(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_numscans","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2633"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"seq_tup_read","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L365","type_evidence":{"expression":"pg_stat_get_xact_tuples_returned(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_returned","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2635"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"idx_scan","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L365","type_evidence":{"expression":"sum(pg_stat_get_xact_numscans(I.indexrelid))::bigint","method":"explicit_bigint_cast_and_bigint_arithmetic","functions":[{"name":"pg_stat_get_xact_numscans","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2633"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"idx_tup_fetch","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L365","type_evidence":{"expression":"sum(pg_stat_get_xact_tuples_fetched(I.indexrelid))::bigint + pg_stat_get_xact_tuples_fetched(C.oid)","method":"explicit_bigint_cast_and_bigint_arithmetic","functions":[{"name":"pg_stat_get_xact_tuples_fetched","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2637"},{"name":"pg_stat_get_xact_tuples_fetched","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2637"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_ins","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L365","type_evidence":{"expression":"pg_stat_get_xact_tuples_inserted(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_inserted","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2639"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_upd","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L365","type_evidence":{"expression":"pg_stat_get_xact_tuples_updated(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_updated","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2641"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_del","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L365","type_evidence":{"expression":"pg_stat_get_xact_tuples_deleted(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_deleted","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2643"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_hot_upd","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L365","type_evidence":{"expression":"pg_stat_get_xact_tuples_hot_updated(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_hot_updated","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2645"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"idx_scan","from":"","to":"Number of index scans initiated on this table This view reports counters for the current transaction."},{"name":"idx_tup_fetch","from":"","to":"Number of live rows fetched by index scans This view reports counters for the current transaction."},{"name":"n_tup_del","from":"","to":"Number of rows deleted This view reports counters for the current transaction."},{"name":"n_tup_hot_upd","from":"","to":"Number of rows HOT updated (i.e., with no separate index update required) This view reports counters for the current transaction."},{"name":"n_tup_ins","from":"","to":"Number of rows inserted This view reports counters for the current transaction."},{"name":"n_tup_upd","from":"","to":"Number of rows updated This view reports counters for the current transaction."},{"name":"relid","from":"","to":"OID of a table"},{"name":"relname","from":"","to":"Name of this table"},{"name":"schemaname","from":"","to":"Name of the schema that this table is in"},{"name":"seq_scan","from":"","to":"Number of sequential scans initiated on this table This view reports counters for the current transaction."},{"name":"seq_tup_read","from":"","to":"Number of live rows fetched by sequential scans This view reports counters for the current transaction."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_upd","from":"Number of rows updated This view reports counters for the current transaction.","to":"Number of rows updated (includes HOT updated rows) This view reports counters for the current transaction."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"n_tup_newpage_upd","type":"bigint","description":"Number of rows updated where the successor version goes onto a new heap page, leaving behind an original version with a t_ctid field that points to a different heap page. These are always non-HOT updates. This view reports counters for the current transaction.","hidden":false,"type_oid":20,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_del","from":"Number of rows deleted This view reports counters for the current transaction.","to":"Total number of rows deleted This view reports counters for the current transaction."},{"name":"n_tup_hot_upd","from":"Number of rows HOT updated (i.e., with no separate index update required) This view reports counters for the current transaction.","to":"Number of rows HOT updated. These are updates where no successor versions are required in indexes. This view reports counters for the current transaction."},{"name":"n_tup_ins","from":"Number of rows inserted This view reports counters for the current transaction.","to":"Total number of rows inserted This view reports counters for the current transaction."},{"name":"n_tup_upd","from":"Number of rows updated (includes HOT updated rows) This view reports counters for the current transaction.","to":"Total number of rows updated. (This includes row updates counted in n_tup_hot_upd and n_tup_newpage_upd, and remaining non-HOT updates.) This view reports counters for the current transaction."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_xact_user_functions","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"funcid","type":"oid","type_oid":26,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L573","type_evidence":{"expression":"P.oid","method":"catalog_oid_system_column","catalog_field":"pg_proc.oid"},"hidden":false,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"schemaname","type":"name","type_oid":19,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L573","type_evidence":{"expression":"N.nspname","method":"catalog_name_column","catalog_field":"pg_namespace.nspname","catalog_source":"https://www.postgresql.org/docs/9.1/catalog-pg-namespace.html"},"hidden":false,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"funcname","type":"name","type_oid":19,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L573","type_evidence":{"expression":"P.proname","method":"catalog_name_column","catalog_field":"pg_proc.proname","catalog_source":"https://www.postgresql.org/docs/9.1/catalog-pg-proc.html"},"hidden":false,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"calls","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L573","type_evidence":{"expression":"pg_stat_get_xact_function_calls(P.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_function_calls","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2651"}]},"hidden":false,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"total_time","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L573","type_evidence":{"expression":"pg_stat_get_xact_function_time(P.oid) / 1000","method":"bigint_function_divided_by_integer_literal","functions":[{"name":"pg_stat_get_xact_function_time","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2653"}]},"hidden":false,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"self_time","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L573","type_evidence":{"expression":"pg_stat_get_xact_function_self_time(P.oid) / 1000","method":"bigint_function_divided_by_integer_literal","functions":[{"name":"pg_stat_get_xact_function_self_time","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2655"}]},"hidden":false,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[{"name":"self_time","from":"bigint","to":"double precision"},{"name":"total_time","from":"bigint","to":"double precision"}],"description_changes":[{"name":"calls","from":"","to":"Number of times this function has been called This view reports counters for the current transaction."},{"name":"funcid","from":"","to":"OID of a function"},{"name":"funcname","from":"","to":"Name of this function"},{"name":"schemaname","from":"","to":"Name of the schema this function is in"},{"name":"self_time","from":"","to":"Total time spent in this function itself, not including other functions called by it, in milliseconds This view reports counters for the current transaction."},{"name":"total_time","from":"","to":"Total time spent in this function and all other functions called by it, in milliseconds This view reports counters for the current transaction."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true}]},{"name":"pg_stat_xact_user_tables","changes":[{"from":"9.0","to":"9.1","status":"added","added_columns":[{"name":"relid","type":"oid","type_oid":26,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L375","type_evidence":{"expression":"C.oid","method":"catalog_oid_system_column","catalog_field":"pg_class.oid","inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"schemaname","type":"name","type_oid":19,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L375","type_evidence":{"expression":"N.nspname","method":"catalog_name_column","catalog_field":"pg_namespace.nspname","catalog_source":"https://www.postgresql.org/docs/9.1/catalog-pg-namespace.html","inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"relname","type":"name","type_oid":19,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L375","type_evidence":{"expression":"C.relname","method":"catalog_name_column","catalog_field":"pg_class.relname","catalog_source":"https://www.postgresql.org/docs/9.1/catalog-pg-class.html","inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"seq_scan","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L375","type_evidence":{"expression":"pg_stat_get_xact_numscans(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_numscans","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2633"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"seq_tup_read","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L375","type_evidence":{"expression":"pg_stat_get_xact_tuples_returned(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_returned","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2635"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"idx_scan","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L375","type_evidence":{"expression":"sum(pg_stat_get_xact_numscans(I.indexrelid))::bigint","method":"explicit_bigint_cast_and_bigint_arithmetic","functions":[{"name":"pg_stat_get_xact_numscans","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2633"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"idx_tup_fetch","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L375","type_evidence":{"expression":"sum(pg_stat_get_xact_tuples_fetched(I.indexrelid))::bigint + pg_stat_get_xact_tuples_fetched(C.oid)","method":"explicit_bigint_cast_and_bigint_arithmetic","functions":[{"name":"pg_stat_get_xact_tuples_fetched","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2637"},{"name":"pg_stat_get_xact_tuples_fetched","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2637"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_ins","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L375","type_evidence":{"expression":"pg_stat_get_xact_tuples_inserted(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_inserted","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2639"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_upd","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L375","type_evidence":{"expression":"pg_stat_get_xact_tuples_updated(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_updated","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2641"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_del","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L375","type_evidence":{"expression":"pg_stat_get_xact_tuples_deleted(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_deleted","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2643"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_tup_hot_upd","type":"bigint","type_oid":20,"description":"","source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/backend/catalog/system_views.sql#L375","type_evidence":{"expression":"pg_stat_get_xact_tuples_hot_updated(C.oid)","method":"sql_projection_and_function_signatures","functions":[{"name":"pg_stat_get_xact_tuples_hot_updated","return_oid":20,"source_url":"https://github.com/postgres/postgres/blob/REL9_1_24/src/include/catalog/pg_proc.h#L2645"}],"inherited_from":"pg_stat_xact_all_tables"},"hidden":false,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"idx_scan","from":"","to":"Number of index scans initiated on this table This view reports counters for the current transaction."},{"name":"idx_tup_fetch","from":"","to":"Number of live rows fetched by index scans This view reports counters for the current transaction."},{"name":"n_tup_del","from":"","to":"Number of rows deleted This view reports counters for the current transaction."},{"name":"n_tup_hot_upd","from":"","to":"Number of rows HOT updated (i.e., with no separate index update required) This view reports counters for the current transaction."},{"name":"n_tup_ins","from":"","to":"Number of rows inserted This view reports counters for the current transaction."},{"name":"n_tup_upd","from":"","to":"Number of rows updated This view reports counters for the current transaction."},{"name":"relid","from":"","to":"OID of a table"},{"name":"relname","from":"","to":"Name of this table"},{"name":"schemaname","from":"","to":"Name of the schema that this table is in"},{"name":"seq_scan","from":"","to":"Number of sequential scans initiated on this table This view reports counters for the current transaction."},{"name":"seq_tup_read","from":"","to":"Number of live rows fetched by sequential scans This view reports counters for the current transaction."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_upd","from":"Number of rows updated This view reports counters for the current transaction.","to":"Number of rows updated (includes HOT updated rows) This view reports counters for the current transaction."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"n_tup_newpage_upd","type":"bigint","description":"Number of rows updated where the successor version goes onto a new heap page, leaving behind an original version with a t_ctid field that points to a different heap page. These are always non-HOT updates. This view reports counters for the current transaction.","hidden":false,"type_oid":20,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"n_tup_del","from":"Number of rows deleted This view reports counters for the current transaction.","to":"Total number of rows deleted This view reports counters for the current transaction."},{"name":"n_tup_hot_upd","from":"Number of rows HOT updated (i.e., with no separate index update required) This view reports counters for the current transaction.","to":"Number of rows HOT updated. These are updates where no successor versions are required in indexes. This view reports counters for the current transaction."},{"name":"n_tup_ins","from":"Number of rows inserted This view reports counters for the current transaction.","to":"Total number of rows inserted This view reports counters for the current transaction."},{"name":"n_tup_upd","from":"Number of rows updated (includes HOT updated rows) This view reports counters for the current transaction.","to":"Total number of rows updated. (This includes row updates counted in n_tup_hot_upd and n_tup_newpage_upd, and remaining non-HOT updates.) This view reports counters for the current transaction."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_statio_all_indexes","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_statio_all_sequences","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_statio_all_tables","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"tidx_blks_hit","from":"Number of buffer hits in this table's TOAST table index (if any)","to":"Number of buffer hits in this table's TOAST table indexes (if any)"},{"name":"tidx_blks_read","from":"Number of disk blocks read from this table's TOAST table index (if any)","to":"Number of disk blocks read from this table's TOAST table indexes (if any)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_statio_sys_indexes","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_statio_sys_sequences","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_statio_sys_tables","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"tidx_blks_hit","from":"Number of buffer hits in this table's TOAST table index (if any)","to":"Number of buffer hits in this table's TOAST table indexes (if any)"},{"name":"tidx_blks_read","from":"Number of disk blocks read from this table's TOAST table index (if any)","to":"Number of disk blocks read from this table's TOAST table indexes (if any)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_statio_user_indexes","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_statio_user_sequences","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_statio_user_tables","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"tidx_blks_hit","from":"Number of buffer hits in this table's TOAST table index (if any)","to":"Number of buffer hits in this table's TOAST table indexes (if any)"},{"name":"tidx_blks_read","from":"Number of disk blocks read from this table's TOAST table index (if any)","to":"Number of disk blocks read from this table's TOAST table indexes (if any)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"stats_reset","type":"timestamp with time zone","description":"Time at which these statistics were last reset","hidden":false,"type_oid":1184,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_statistic","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"stadistinct","from":"The number of distinct nonnull data values in the column. A value greater than zero is the actual number of distinct values. A value less than zero is the negative of a multiplier for the number of rows in the table; for example, a column in which values appear about twice on the average could be represented by stadistinct = -0.5. A zero value means the number of distinct values is unknown.","to":"The number of distinct nonnull data values in the column. A value greater than zero is the actual number of distinct values. A value less than zero is the negative of a multiplier for the number of rows in the table; for example, a column in which about 80% of the values are nonnull and each nonnull value appears about twice on average could be represented by stadistinct = -0.4. A zero value means the number of distinct values is unknown."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"stakind5","type":"smallint","description":"A code number indicating the kind of statistics stored in the Nth \"slot\" of the pg_statistic row.","documented_name":"stakindN","schema_note":"Expanded documentation slot placeholder using the version-specific catalog header.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL9_2_24/src/include/catalog/pg_statistic.h","documented_type":"int2","hidden":false,"type_oid":21,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"staop5","type":"oid","description":"An operator used to derive the statistics stored in the Nth \"slot\". For example, a histogram slot would show the < operator that defines the sort order of the data.","references":"pg_operator.oid","documented_name":"staopN","schema_note":"Expanded documentation slot placeholder using the version-specific catalog header.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL9_2_24/src/include/catalog/pg_statistic.h","hidden":false,"type_oid":26,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"stanumbers5","type":"real[]","description":"Numerical statistics of the appropriate kind for the Nth \"slot\", or null if the slot kind does not involve numerical values","documented_name":"stanumbersN","schema_note":"Expanded documentation slot placeholder using the version-specific catalog header.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL9_2_24/src/include/catalog/pg_statistic.h","documented_type":"float4[]","hidden":false,"type_oid":1021,"attnum":21,"type_modifier":-1,"array_dimensions":1,"not_null":false},{"name":"stavalues5","type":"anyarray","description":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray.","documented_name":"stavaluesN","schema_note":"Expanded documentation slot placeholder using the version-specific catalog header.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL9_2_24/src/include/catalog/pg_statistic.h","hidden":false,"type_oid":2277,"attnum":26,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"stavalues1","from":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, so there is no way to define these columns' type more specifically than anyarray.","to":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray."},{"name":"stavalues2","from":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, so there is no way to define these columns' type more specifically than anyarray.","to":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray."},{"name":"stavalues3","from":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, so there is no way to define these columns' type more specifically than anyarray.","to":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray."},{"name":"stavalues4","from":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, so there is no way to define these columns' type more specifically than anyarray.","to":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"stakind1","from":"A code number indicating the kind of statistics stored in the Nth \"slot\" of the pg_statistic row.","to":"A code number indicating the kind of statistics stored in the Nth “slot” of the pg_statistic row."},{"name":"stakind2","from":"A code number indicating the kind of statistics stored in the Nth \"slot\" of the pg_statistic row.","to":"A code number indicating the kind of statistics stored in the Nth “slot” of the pg_statistic row."},{"name":"stakind3","from":"A code number indicating the kind of statistics stored in the Nth \"slot\" of the pg_statistic row.","to":"A code number indicating the kind of statistics stored in the Nth “slot” of the pg_statistic row."},{"name":"stakind4","from":"A code number indicating the kind of statistics stored in the Nth \"slot\" of the pg_statistic row.","to":"A code number indicating the kind of statistics stored in the Nth “slot” of the pg_statistic row."},{"name":"stakind5","from":"A code number indicating the kind of statistics stored in the Nth \"slot\" of the pg_statistic row.","to":"A code number indicating the kind of statistics stored in the Nth “slot” of the pg_statistic row."},{"name":"stanumbers1","from":"Numerical statistics of the appropriate kind for the Nth \"slot\", or null if the slot kind does not involve numerical values","to":"Numerical statistics of the appropriate kind for the Nth “slot”, or null if the slot kind does not involve numerical values"},{"name":"stanumbers2","from":"Numerical statistics of the appropriate kind for the Nth \"slot\", or null if the slot kind does not involve numerical values","to":"Numerical statistics of the appropriate kind for the Nth “slot”, or null if the slot kind does not involve numerical values"},{"name":"stanumbers3","from":"Numerical statistics of the appropriate kind for the Nth \"slot\", or null if the slot kind does not involve numerical values","to":"Numerical statistics of the appropriate kind for the Nth “slot”, or null if the slot kind does not involve numerical values"},{"name":"stanumbers4","from":"Numerical statistics of the appropriate kind for the Nth \"slot\", or null if the slot kind does not involve numerical values","to":"Numerical statistics of the appropriate kind for the Nth “slot”, or null if the slot kind does not involve numerical values"},{"name":"stanumbers5","from":"Numerical statistics of the appropriate kind for the Nth \"slot\", or null if the slot kind does not involve numerical values","to":"Numerical statistics of the appropriate kind for the Nth “slot”, or null if the slot kind does not involve numerical values"},{"name":"staop1","from":"An operator used to derive the statistics stored in the Nth \"slot\". For example, a histogram slot would show the < operator that defines the sort order of the data.","to":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data."},{"name":"staop2","from":"An operator used to derive the statistics stored in the Nth \"slot\". For example, a histogram slot would show the < operator that defines the sort order of the data.","to":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data."},{"name":"staop3","from":"An operator used to derive the statistics stored in the Nth \"slot\". For example, a histogram slot would show the < operator that defines the sort order of the data.","to":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data."},{"name":"staop4","from":"An operator used to derive the statistics stored in the Nth \"slot\". For example, a histogram slot would show the < operator that defines the sort order of the data.","to":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data."},{"name":"staop5","from":"An operator used to derive the statistics stored in the Nth \"slot\". For example, a histogram slot would show the < operator that defines the sort order of the data.","to":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data."},{"name":"stavalues1","from":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray.","to":"Column data values of the appropriate kind for the Nth “slot”, or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray."},{"name":"stavalues2","from":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray.","to":"Column data values of the appropriate kind for the Nth “slot”, or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray."},{"name":"stavalues3","from":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray.","to":"Column data values of the appropriate kind for the Nth “slot”, or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray."},{"name":"stavalues4","from":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray.","to":"Column data values of the appropriate kind for the Nth “slot”, or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray."},{"name":"stavalues5","from":"Column data values of the appropriate kind for the Nth \"slot\", or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray.","to":"Column data values of the appropriate kind for the Nth “slot”, or null if the slot kind does not store any data values. Each array's element values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[{"name":"stacoll1","type":"oid","description":"The collation used to derive the statistics stored in the Nth “slot”. For example, a histogram slot for a collatable column would show the collation that defines the sort order of the data. Zero for noncollatable data.","references":"pg_collation.oid","documented_name":"stacollN","schema_note":"Expanded documentation slot placeholder using the version-specific catalog header.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL_12_22/src/include/catalog/pg_statistic.h","hidden":false,"type_oid":26,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"stacoll2","type":"oid","description":"The collation used to derive the statistics stored in the Nth “slot”. For example, a histogram slot for a collatable column would show the collation that defines the sort order of the data. Zero for noncollatable data.","references":"pg_collation.oid","documented_name":"stacollN","schema_note":"Expanded documentation slot placeholder using the version-specific catalog header.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL_12_22/src/include/catalog/pg_statistic.h","hidden":false,"type_oid":26,"attnum":18,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"stacoll3","type":"oid","description":"The collation used to derive the statistics stored in the Nth “slot”. For example, a histogram slot for a collatable column would show the collation that defines the sort order of the data. Zero for noncollatable data.","references":"pg_collation.oid","documented_name":"stacollN","schema_note":"Expanded documentation slot placeholder using the version-specific catalog header.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL_12_22/src/include/catalog/pg_statistic.h","hidden":false,"type_oid":26,"attnum":19,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"stacoll4","type":"oid","description":"The collation used to derive the statistics stored in the Nth “slot”. For example, a histogram slot for a collatable column would show the collation that defines the sort order of the data. Zero for noncollatable data.","references":"pg_collation.oid","documented_name":"stacollN","schema_note":"Expanded documentation slot placeholder using the version-specific catalog header.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL_12_22/src/include/catalog/pg_statistic.h","hidden":false,"type_oid":26,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"stacoll5","type":"oid","description":"The collation used to derive the statistics stored in the Nth “slot”. For example, a histogram slot for a collatable column would show the collation that defines the sort order of the data. Zero for noncollatable data.","references":"pg_collation.oid","documented_name":"stacollN","schema_note":"Expanded documentation slot placeholder using the version-specific catalog header.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL_12_22/src/include/catalog/pg_statistic.h","hidden":false,"type_oid":26,"attnum":21,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"staop1","from":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data.","to":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data. Zero if the statistics kind does not require an operator."},{"name":"staop2","from":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data.","to":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data. Zero if the statistics kind does not require an operator."},{"name":"staop3","from":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data.","to":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data. Zero if the statistics kind does not require an operator."},{"name":"staop4","from":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data.","to":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data. Zero if the statistics kind does not require an operator."},{"name":"staop5","from":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data.","to":"An operator used to derive the statistics stored in the Nth “slot”. For example, a histogram slot would show the < operator that defines the sort order of the data. Zero if the statistics kind does not require an operator."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"stainherit","from":"If true, the stats include inheritance child columns, not just the values in the specified relation","to":"If true, the stats include values from child tables, not just the values in the specified relation"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_statistic_ext","changes":[{"from":"9.6","to":"10","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier (hidden system attribute; explicitly select oid).","schema_note":"The documentation omits this OID attribute; verified from the release-tag CATALOG declaration.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL_10_23/src/include/catalog/pg_statistic_ext.h","hidden":true,"type_oid":26,"attnum":-2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"stxrelid","type":"oid","description":"Table containing the columns described by this object","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"stxname","type":"name","description":"Name of the statistics object","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"stxnamespace","type":"oid","description":"The OID of the namespace that contains this statistics object","references":"pg_namespace.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"stxowner","type":"oid","description":"Owner of the statistics object","references":"pg_authid.oid","hidden":false,"type_oid":26,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"stxkeys","type":"int2vector","description":"An array of attribute numbers, indicating which table columns are covered by this statistics object; for example a value of 1 3 would mean that the first and the third table columns are covered","references":"pg_attribute.attnum","hidden":false,"type_oid":22,"attnum":5,"type_modifier":-1,"array_dimensions":1,"not_null":true},{"name":"stxkind","type":"\"char\"[]","description":"An array containing codes for the enabled statistics kinds; valid values are: d for n-distinct statistics, f for functional dependency statistics","documented_type":"char[]","hidden":false,"type_oid":1002,"attnum":6,"type_modifier":-1,"array_dimensions":1,"not_null":true},{"name":"stxndistinct","type":"pg_ndistinct","description":"N-distinct counts, serialized as pg_ndistinct type","hidden":false,"type_oid":3361,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stxdependencies","type":"pg_dependencies","description":"Functional dependency statistics, serialized as pg_dependencies type","hidden":false,"type_oid":3402,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[{"name":"stxndistinct","type":"pg_ndistinct","description":"N-distinct counts, serialized as pg_ndistinct type","hidden":false,"type_oid":3361,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stxdependencies","type":"pg_dependencies","description":"Functional dependency statistics, serialized as pg_dependencies type","hidden":false,"type_oid":3402,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier."},{"name":"stxkind","from":"An array containing codes for the enabled statistics kinds; valid values are: d for n-distinct statistics, f for functional dependency statistics","to":"An array containing codes for the enabled statistics kinds; valid values are: d for n-distinct statistics, f for functional dependency statistics, and m for most common values (MCV) list statistics"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[{"name":"stxstattarget","type":"integer","description":"stxstattarget controls the level of detail of statistics accumulated for this statistics object by ANALYZE. A zero value indicates that no statistics should be collected. A negative value says to use the maximum of the statistics targets of the referenced columns, if set, or the system default statistics target. Positive values of stxstattarget determine the target number of “most common values” to collect.","documented_type":"int4","hidden":false,"type_oid":23,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier.","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"stxexprs","type":"pg_node_tree","description":"Expression trees (in nodeToString() representation) for statistics object attributes that are not simple column references. This is a list with one element per expression. Null if all statistics object attributes are simple references.","hidden":false,"type_oid":194,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"stxkind","from":"An array containing codes for the enabled statistics kinds; valid values are: d for n-distinct statistics, f for functional dependency statistics, and m for most common values (MCV) list statistics","to":"An array containing codes for the enabled statistics kinds; valid values are: d for n-distinct statistics, f for functional dependency statistics, m for most common values (MCV) list statistics, and e for expression statistics"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[{"name":"stxstattarget","from":"integer","to":"smallint"}],"description_changes":[{"name":"stxstattarget","from":"stxstattarget controls the level of detail of statistics accumulated for this statistics object by ANALYZE. A zero value indicates that no statistics should be collected. A negative value says to use the maximum of the statistics targets of the referenced columns, if set, or the system default statistics target. Positive values of stxstattarget determine the target number of “most common values” to collect.","to":"stxstattarget controls the level of detail of statistics accumulated for this statistics object by ANALYZE. A zero value indicates that no statistics should be collected. A null value says to use the maximum of the statistics targets of the referenced columns, if set, or the system default statistics target. Positive values of stxstattarget determine the target number of “most common values” to collect."}],"reference_changes":[],"attribute_changes":[{"name":"stxstattarget","attribute":"not_null","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":true,"structural":true}]},{"name":"pg_statistic_ext_data","changes":[{"from":"11","to":"12","status":"added","added_columns":[{"name":"stxoid","type":"oid","description":"Extended statistic object containing the definition for this data","references":"pg_statistic_ext.oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"stxdndistinct","type":"pg_ndistinct","description":"N-distinct counts, serialized as pg_ndistinct type","hidden":false,"type_oid":3361,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stxddependencies","type":"pg_dependencies","description":"Functional dependency statistics, serialized as pg_dependencies type","hidden":false,"type_oid":3402,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"stxdmcv","type":"pg_mcv_list","description":"MCV (most-common values) list statistics, serialized as pg_mcv_list type","hidden":false,"type_oid":5017,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"stxdexpr","type":"pg_statistic[]","description":"Per-expression statistics, serialized as an array of pg_statistic type","hidden":false,"type_oid":12028,"attnum":5,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"stxoid","from":"Extended statistic object containing the definition for this data","to":"Extended statistics object containing the definition for this data"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"14","to":"15","status":"changed","added_columns":[{"name":"stxdinherit","type":"boolean","description":"If true, the stats include values from child tables, not just the values in the specified relation","documented_type":"bool","hidden":false,"type_oid":16,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true}]},{"name":"pg_stats","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"most_common_elems","type":"anyarray","description":"A list of non-null element values most often appearing within values of the column. (Null for scalar types.)","hidden":false,"type_oid":2277,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"most_common_elem_freqs","type":"real[]","description":"A list of the frequencies of the most common element values, i.e., the fraction of rows containing at least one instance of the given value. Two or three additional values follow the per-element frequencies; these are the minimum and maximum of the preceding per-element frequencies, and optionally the frequency of null elements. (Null when most_common_elems is.)","hidden":false,"type_oid":1021,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"elem_count_histogram","type":"real[]","description":"A histogram of the counts of distinct non-null element values within the values of the column, followed by the average number of distinct non-null elements. (Null for scalar types.)","hidden":false,"type_oid":1021,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"most_common_freqs","from":"A list of the frequencies of the most common values or elements, i.e., number of occurrences of each divided by total number of rows. (Null when most_common_vals is.) For some data types such as tsvector, it can also store some additional information, making it longer than the most_common_vals array.","to":"A list of the frequencies of the most common values, i.e., number of occurrences of each divided by total number of rows. (Null when most_common_vals is.)"},{"name":"most_common_vals","from":"A list of the most common values in the column. (Null if no values seem to be more common than any others.) For some data types such as tsvector, this is a list of the most common element values rather than values of the type itself.","to":"A list of the most common values in the column. (Null if no values seem to be more common than any others.)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"attname","from":"Name of the column described by this row","to":"Name of column described by this row"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"inherited","from":"If true, this row includes inheritance child columns, not just the values in the specified table","to":"If true, this row includes values from child tables, not just the values in the specified table"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[{"name":"range_length_histogram","type":"anyarray","description":"A histogram of the lengths of non-empty and non-null range values of a range type column. (Null for non-range types.) This histogram is calculated using the subtype_diff range function regardless of whether range bounds are inclusive.","hidden":false,"type_oid":2277,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"range_empty_frac","type":"real","description":"Fraction of column entries whose values are empty ranges. (Null for non-range types.)","documented_type":"float4","hidden":false,"type_oid":700,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"range_bounds_histogram","type":"anyarray","description":"A histogram of lower and upper bounds of non-empty and non-null range values. (Null for non-range types.) These two histograms are represented as a single array of ranges, whose lower bounds represent the histogram of lower bounds, and upper bounds represent the histogram of upper bounds.","hidden":false,"type_oid":2277,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"tableid","type":"oid","description":"OID of table","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"attnum","type":"smallint","description":"Number of column described by this row","references":"pg_attribute.attnum","documented_type":"int2","hidden":false,"type_oid":21,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stats_ext","changes":[{"from":"11","to":"12","status":"added","added_columns":[{"name":"schemaname","type":"name","description":"Name of schema containing table","references":"pg_namespace.nspname","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tablename","type":"name","description":"Name of table","references":"pg_class.relname","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"statistics_schemaname","type":"name","description":"Name of schema containing extended statistic","references":"pg_namespace.nspname","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"statistics_name","type":"name","description":"Name of extended statistics","references":"pg_statistic_ext.stxname","hidden":false,"type_oid":19,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"statistics_owner","type":"name","description":"Owner of the extended statistics","references":"pg_authid.rolname","documented_type":"oid","schema_note":"SQL type calibrated against format_type in a fresh instance of the exact release; original documentation spelling is retained.","hidden":false,"type_oid":19,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false,"documented_references":"pg_authid.oid","reference_note":"system_views.sql projects pg_get_userbyid(stxowner), a role name rather than the stored owner OID.","reference_source_url":"https://raw.githubusercontent.com/postgres/postgres/REL_12_22/src/backend/catalog/system_views.sql"},{"name":"attnames","type":"name[]","description":"Names of the columns the extended statistics is defined on","references":"pg_attribute.attname","hidden":false,"type_oid":1003,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"kinds","type":"\"char\"[]","description":"Types of extended statistics enabled for this record","documented_type":"text[]","schema_note":"SQL type calibrated against format_type in a fresh instance of the exact release; original documentation spelling is retained.","hidden":false,"type_oid":1002,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_distinct","type":"pg_ndistinct","description":"N-distinct counts for combinations of column values. If greater than zero, the estimated number of distinct values in the combination. If less than zero, the negative of the number of distinct values divided by the number of rows. (The negated form is used when ANALYZE believes that the number of distinct values is likely to increase as the table grows; the positive form is used when the column seems to have a fixed number of possible values.) For example, -1 indicates a unique combination of columns in which the number of distinct combinations is the same as the number of rows.","hidden":false,"type_oid":3361,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"dependencies","type":"pg_dependencies","description":"Functional dependency statistics","hidden":false,"type_oid":3402,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"most_common_vals","type":"text[]","description":"A list of the most common combinations of values in the columns. (Null if no combinations seem to be more common than any others.)","documented_type":"anyarray","schema_note":"SQL type calibrated against format_type in a fresh instance of the exact release; original documentation spelling is retained.","hidden":false,"type_oid":1009,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"most_common_val_nulls","type":"boolean[]","description":"A list of NULL flags for the most common combinations of values. (Null when most_common_vals is.)","documented_type":"anyarray","schema_note":"SQL type calibrated against format_type in a fresh instance of the exact release; original documentation spelling is retained.","hidden":false,"type_oid":1000,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"most_common_freqs","type":"double precision[]","description":"A list of the frequencies of the most common combinations, i.e., number of occurrences of each divided by total number of rows. (Null when most_common_vals is.)","documented_type":"real[]","schema_note":"SQL type calibrated against format_type in a fresh instance of the exact release; original documentation spelling is retained.","hidden":false,"type_oid":1022,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"most_common_base_freqs","type":"double precision[]","description":"A list of the base frequencies of the most common combinations, i.e., product of per-value frequencies. (Null when most_common_vals is.)","documented_type":"real[]","schema_note":"SQL type calibrated against format_type in a fresh instance of the exact release; original documentation spelling is retained.","hidden":false,"type_oid":1022,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"exprs","type":"text[]","description":"Expressions included in the extended statistics object","hidden":false,"type_oid":1009,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"attnames","from":"Names of the columns the extended statistics is defined on","to":"Names of the columns included in the extended statistics object"},{"name":"kinds","from":"Types of extended statistics enabled for this record","to":"Types of extended statistics object enabled for this record"},{"name":"statistics_name","from":"Name of extended statistics","to":"Name of extended statistics object"},{"name":"statistics_owner","from":"Owner of the extended statistics","to":"Owner of the extended statistics object"},{"name":"statistics_schemaname","from":"Name of schema containing extended statistic","to":"Name of schema containing extended statistics object"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"14","to":"15","status":"changed","added_columns":[{"name":"inherited","type":"boolean","description":"If true, the stats include values from child tables, not just the values in the specified relation","references":"pg_statistic_ext_data.stxdinherit","documented_type":"bool","hidden":false,"type_oid":16,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"tableid","type":"oid","description":"OID of table","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"statistics_id","type":"oid","description":"OID of extended statistics object","references":"pg_statistic_ext.oid","hidden":false,"type_oid":26,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_stats_ext_exprs","changes":[{"from":"13","to":"14","status":"added","added_columns":[{"name":"schemaname","type":"name","description":"Name of schema containing table","references":"pg_namespace.nspname","hidden":false,"type_oid":19,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tablename","type":"name","description":"Name of table the statistics object is defined on","references":"pg_class.relname","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"statistics_schemaname","type":"name","description":"Name of schema containing extended statistics object","references":"pg_namespace.nspname","hidden":false,"type_oid":19,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"statistics_name","type":"name","description":"Name of extended statistics object","references":"pg_statistic_ext.stxname","hidden":false,"type_oid":19,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"statistics_owner","type":"name","description":"Owner of the extended statistics object","references":"pg_authid.rolname","hidden":false,"type_oid":19,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"expr","type":"text","description":"Expression included in the extended statistics object","hidden":false,"type_oid":25,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"null_frac","type":"real","description":"Fraction of expression entries that are null","documented_type":"float4","hidden":false,"type_oid":700,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"avg_width","type":"integer","description":"Average width in bytes of expression's entries","documented_type":"int4","hidden":false,"type_oid":23,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"n_distinct","type":"real","description":"If greater than zero, the estimated number of distinct values in the expression. If less than zero, the negative of the number of distinct values divided by the number of rows. (The negated form is used when ANALYZE believes that the number of distinct values is likely to increase as the table grows; the positive form is used when the expression seems to have a fixed number of possible values.) For example, -1 indicates a unique expression in which the number of distinct values is the same as the number of rows.","documented_type":"float4","hidden":false,"type_oid":700,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"most_common_vals","type":"anyarray","description":"A list of the most common values in the expression. (Null if no values seem to be more common than any others.)","hidden":false,"type_oid":2277,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"most_common_freqs","type":"real[]","description":"A list of the frequencies of the most common values, i.e., number of occurrences of each divided by total number of rows. (Null when most_common_vals is.)","documented_type":"float4[]","hidden":false,"type_oid":1021,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"histogram_bounds","type":"anyarray","description":"A list of values that divide the expression's values into groups of approximately equal population. The values in most_common_vals, if present, are omitted from this histogram calculation. (This expression is null if the expression data type does not have a < operator or if the most_common_vals list accounts for the entire population.)","hidden":false,"type_oid":2277,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"correlation","type":"real","description":"Statistical correlation between physical row ordering and logical ordering of the expression values. This ranges from -1 to +1. When the value is near -1 or +1, an index scan on the expression will be estimated to be cheaper than when it is near zero, due to reduction of random access to the disk. (This expression is null if the expression's data type does not have a < operator.)","documented_type":"float4","hidden":false,"type_oid":700,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"most_common_elems","type":"anyarray","description":"A list of non-null element values most often appearing within values of the expression. (Null for scalar types.)","hidden":false,"type_oid":2277,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"most_common_elem_freqs","type":"real[]","description":"A list of the frequencies of the most common element values, i.e., the fraction of rows containing at least one instance of the given value. Two or three additional values follow the per-element frequencies; these are the minimum and maximum of the preceding per-element frequencies, and optionally the frequency of null elements. (Null when most_common_elems is.)","documented_type":"float4[]","hidden":false,"type_oid":1021,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"elem_count_histogram","type":"real[]","description":"A histogram of the counts of distinct non-null element values within the values of the expression, followed by the average number of distinct non-null elements. (Null for scalar types.)","documented_type":"float4[]","hidden":false,"type_oid":1021,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"14","to":"15","status":"changed","added_columns":[{"name":"inherited","type":"boolean","description":"If true, the stats include values from child tables, not just the values in the specified relation","references":"pg_statistic_ext_data.stxdinherit","documented_type":"bool","hidden":false,"type_oid":16,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"tableid","type":"oid","description":"OID of table the statistics object is defined on","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"statistics_id","type":"oid","description":"OID of extended statistics object","references":"pg_statistic_ext.oid","hidden":false,"type_oid":26,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"range_length_histogram","type":"anyarray","description":"A histogram of the lengths of non-empty and non-null range values of an expression. (Null for non-range types.) This histogram is calculated using the subtype_diff range function regardless of whether range bounds are inclusive.","hidden":false,"type_oid":2277,"attnum":20,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"range_empty_frac","type":"real","description":"Fraction of expression entries whose values are empty ranges. (Null for non-range types.)","documented_type":"float4","hidden":false,"type_oid":700,"attnum":21,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"range_bounds_histogram","type":"anyarray","description":"A histogram of lower and upper bounds of non-empty and non-null range values. (Null for non-range types.) These two histograms are represented as a single array of ranges, whose lower bounds represent the histogram of lower bounds, and upper bounds represent the histogram of upper bounds.","hidden":false,"type_oid":2277,"attnum":22,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_subscription","changes":[{"from":"9.6","to":"10","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier (hidden attribute; must be explicitly selected)","hidden":true,"type_oid":26,"attnum":-2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subdbid","type":"oid","description":"OID of the database which the subscription resides in","references":"pg_database.oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subname","type":"name","description":"Name of the subscription","hidden":false,"type_oid":19,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subowner","type":"oid","description":"Owner of the subscription","references":"pg_authid.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subenabled","type":"boolean","description":"If true, the subscription is enabled and should be replicating.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subconninfo","type":"text","description":"Connection string to the upstream database","hidden":false,"type_oid":25,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subslotname","type":"name","description":"Name of the replication slot in the upstream database (also used for the local replication origin name); null represents NONE","hidden":false,"type_oid":19,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subsynccommit","type":"text","description":"Contains the value of the synchronous_commit setting for the subscription workers.","hidden":false,"type_oid":25,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subpublications","type":"text[]","description":"Array of subscribed publication names. These reference the publications on the publisher server. For more on publications see Section 31.1.","hidden":false,"type_oid":1009,"attnum":8,"type_modifier":-1,"array_dimensions":1,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"},{"name":"subpublications","from":"Array of subscribed publication names. These reference the publications on the publisher server. For more on publications see Section 31.1.","to":"Array of subscribed publication names. These reference the publications on the publisher server. For more on publications see Section 30.1."}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"subslotname","attribute":"not_null","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"subbinary","type":"boolean","description":"If true, the subscription will request that the publisher send data in binary format","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"substream","type":"boolean","description":"If true, the subscription will allow streaming of in-progress transactions","documented_type":"bool","hidden":false,"type_oid":16,"attnum":7,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"subdbid","from":"OID of the database which the subscription resides in","to":"OID of the database that the subscription resides in"},{"name":"subenabled","from":"If true, the subscription is enabled and should be replicating.","to":"If true, the subscription is enabled and should be replicating"},{"name":"subpublications","from":"Array of subscribed publication names. These reference the publications on the publisher server. For more on publications see Section 30.1.","to":"Array of subscribed publication names. These reference publications defined in the upstream database. For more on publications see Section 31.1."},{"name":"subsynccommit","from":"Contains the value of the synchronous_commit setting for the subscription workers.","to":"The synchronous_commit setting for the subscription's workers to use"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"14","to":"15","status":"changed","added_columns":[{"name":"subskiplsn","type":"pg_lsn","description":"Finish LSN of the transaction whose changes are to be skipped, if a valid LSN; otherwise 0/0.","hidden":false,"type_oid":3220,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subtwophasestate","type":"\"char\"","description":"State codes for two-phase mode: d = disabled, p = pending enablement, e = enabled","documented_type":"char","hidden":false,"type_oid":18,"attnum":9,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subdisableonerr","type":"boolean","description":"If true, the subscription will be disabled if one of its workers detects an error","documented_type":"bool","hidden":false,"type_oid":16,"attnum":10,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"15","to":"16","status":"changed","added_columns":[{"name":"subpasswordrequired","type":"boolean","description":"If true, the subscription will be required to specify a password for authentication","documented_type":"bool","hidden":false,"type_oid":16,"attnum":11,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subrunasowner","type":"boolean","description":"If true, the subscription will be run with the permissions of the subscription owner","documented_type":"bool","hidden":false,"type_oid":16,"attnum":12,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"suborigin","type":"text","description":"The origin value must be either none or any. The default is any. If none, the subscription will request the publisher to only send changes that don't have an origin. If any, the publisher sends changes regardless of their origin.","hidden":false,"type_oid":25,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[{"name":"substream","from":"boolean","to":"\"char\""}],"description_changes":[{"name":"substream","from":"If true, the subscription will allow streaming of in-progress transactions","to":"Controls how to handle the streaming of in-progress transactions: f = disallow streaming of in-progress transactions, t = spill the changes of in-progress transactions to disk and apply at once after the transaction is committed on the publisher and received by the subscriber, p = apply changes directly using a parallel apply worker if available (same as 't' if no worker is available)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[{"name":"subfailover","type":"boolean","description":"If true, the associated replication slots (i.e. the main slot and the table sync slots) in the upstream database are enabled to be synchronized to the standbys","documented_type":"bool","hidden":false,"type_oid":16,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"subpublications","from":"Array of subscribed publication names. These reference publications defined in the upstream database. For more on publications see Section 31.1.","to":"Array of subscribed publication names. These reference publications defined in the upstream database. For more on publications see Section 29.1."},{"name":"substream","from":"Controls how to handle the streaming of in-progress transactions: f = disallow streaming of in-progress transactions, t = spill the changes of in-progress transactions to disk and apply at once after the transaction is committed on the publisher and received by the subscriber, p = apply changes directly using a parallel apply worker if available (same as 't' if no worker is available)","to":"Controls how to handle the streaming of in-progress transactions: f = disallow streaming of in-progress transactions, t = spill the changes of in-progress transactions to disk and apply at once after the transaction is committed on the publisher and received by the subscriber, p = apply changes directly using a parallel apply worker if available (same as t if no worker is available)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"subfailover","from":"If true, the associated replication slots (i.e. the main slot and the table sync slots) in the upstream database are enabled to be synchronized to the standbys","to":"If true, the associated replication slots (i.e. the main slot and the table synchronization slots) in the upstream database are enabled to be synchronized to the standbys"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[{"name":"subretaindeadtuples","type":"boolean","description":"If true, the detection of update_deleted is enabled and the information (e.g., dead tuples, commit timestamps, and origins) on the subscriber that is useful for conflict detection is retained.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":14,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"submaxretention","type":"integer","description":"The maximum duration (in milliseconds) for which information (e.g., dead tuples, commit timestamps, and origins) useful for conflict detection can be retained.","documented_type":"int4","hidden":false,"type_oid":23,"attnum":15,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subretentionactive","type":"boolean","description":"The retention status of information (e.g., dead tuples, commit timestamps, and origins) useful for conflict detection. True if retain_dead_tuples is enabled, and the retention duration has not exceeded max_retention_duration, when defined.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subserver","type":"oid","description":"Foreign server to use for the connection string. Zero if subconninfo is nonnull.","references":"pg_foreign_server.oid","hidden":false,"type_oid":26,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"subwalrcvtimeout","type":"text","description":"The wal_receiver_timeout setting for the subscription's workers to use","hidden":false,"type_oid":25,"attnum":21,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"subconninfo","from":"Connection string to the upstream database","to":"Connection string to the upstream database. NULL if subserver is nonzero."},{"name":"subskiplsn","from":"Finish LSN of the transaction whose changes are to be skipped, if a valid LSN; otherwise 0/0.","to":"Finish LSN of the transaction whose changes are to be skipped, if a valid LSN; otherwise 0/0000000."}],"reference_changes":[],"attribute_changes":[{"name":"subconninfo","attribute":"not_null","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_subscription_rel","changes":[{"from":"9.6","to":"10","status":"added","added_columns":[{"name":"srsubid","type":"oid","description":"Reference to subscription","references":"pg_subscription.oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"srrelid","type":"oid","description":"Reference to relation","references":"pg_class.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"srsubstate","type":"\"char\"","description":"State code: i = initialize, d = data is being copied, s = synchronized, r = ready (normal replication)","documented_type":"char","hidden":false,"type_oid":18,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"srsublsn","type":"pg_lsn","description":"Remote LSN of the state change used for synchronization coordination when in s or r states, otherwise null","hidden":false,"type_oid":3220,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"srsublsn","attribute":"not_null","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"srsubstate","from":"State code: i = initialize, d = data is being copied, s = synchronized, r = ready (normal replication)","to":"State code: i = initialize, d = data is being copied, f = finished table copy, s = synchronized, r = ready (normal replication)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"srrelid","from":"Reference to relation","to":"Reference to table or sequence"},{"name":"srsublsn","from":"Remote LSN of the state change used for synchronization coordination when in s or r states, otherwise null","to":"Remote LSN of the state change used for synchronization coordination when in s or r states, otherwise null. For sequences, this instead holds the publisher sequence's page LSN as of the last synchronization, which does not track replication progress the way it does for tables; see Section 29.7.2 for how it is used to detect out-of-sync sequences."},{"name":"srsubstate","from":"State code: i = initialize, d = data is being copied, f = finished table copy, s = synchronized, r = ready (normal replication)","to":"State code for the table or sequence. State codes for tables: i = initialize, d = data is being copied, f = finished table copy, s = synchronized, r = ready (normal replication) State codes for sequences: i = initialize, r = ready"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_tables","changes":[{"from":"9.4","to":"9.5","status":"changed","added_columns":[{"name":"rowsecurity","type":"boolean","description":"True if row security is enabled on the table","references":"pg_class.relrowsecurity","hidden":false,"type_oid":16,"attnum":8,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_tablespace","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[{"name":"spclocation","type":"text","description":"Location (directory path) of the tablespace","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"spcoptions","from":"Tablespace-level options, as \"keyword=value\" strings","to":"Tablespace-level options, as “keyword=value” strings"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"},{"name":"spcacl","from":"Access privileges; see GRANT and REVOKE for details","to":"Access privileges; see Section 5.7 for details"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"spcacl","from":"Access privileges; see Section 5.7 for details","to":"Access privileges; see Section 5.8 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"spcacl","from":"Access privileges; see Section 5.8 for details","to":"Access privileges; see Section 5.9 for details"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_timezone_abbrevs","changes":[{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_timezone_names","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":false}]},{"name":"pg_transform","changes":[{"from":"9.4","to":"9.5","status":"added","added_columns":[{"name":"oid","type":"oid","description":"Row identifier (hidden system attribute; explicitly select oid).","schema_note":"The documentation omits this OID attribute; verified from the release-tag CATALOG declaration.","source_url":"https://raw.githubusercontent.com/postgres/postgres/REL9_5_25/src/include/catalog/pg_transform.h","hidden":true,"type_oid":26,"attnum":-2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"trftype","type":"oid","description":"OID of the data type this transform is for","references":"pg_type.oid","hidden":false,"type_oid":26,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"trflang","type":"oid","description":"OID of the language this transform is for","references":"pg_language.oid","hidden":false,"type_oid":26,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"trffromsql","type":"regproc","description":"The OID of the function to use when converting the data type for input to the procedural language (e.g., function parameters). Zero is stored if this operation is not supported.","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true},{"name":"trftosql","type":"regproc","description":"The OID of the function to use when converting output from the procedural language (e.g., return values) to the data type. Zero is stored if this operation is not supported.","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":4,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier."}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier.","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"trffromsql","from":"The OID of the function to use when converting the data type for input to the procedural language (e.g., function parameters). Zero is stored if this operation is not supported.","to":"The OID of the function to use when converting the data type for input to the procedural language (e.g., function parameters). Zero is stored if the default behavior should be used."},{"name":"trftosql","from":"The OID of the function to use when converting output from the procedural language (e.g., return values) to the data type. Zero is stored if this operation is not supported.","to":"The OID of the function to use when converting output from the procedural language (e.g., return values) to the data type. Zero is stored if the default behavior should be used."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_trigger","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[{"name":"tgqual","from":"text","to":"pg_node_tree"}],"description_changes":[{"name":"tgtype","from":"Bit mask identifying trigger conditions","to":"Bit mask identifying trigger firing conditions"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":true,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"tgconstrindid","from":"The index supporting a unique, primary key, or referential integrity constraint","to":"The index supporting a unique, primary key, referential integrity, or exclusion constraint"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[{"name":"tgargs","attribute":"not_null","from":false,"to":true}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.6","to":"10","status":"changed","added_columns":[{"name":"tgoldtable","type":"name","description":"REFERENCING clause name for OLD TABLE, or null if none","hidden":false,"type_oid":19,"attnum":16,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"tgnewtable","type":"name","description":"REFERENCING clause name for NEW TABLE, or null if none","hidden":false,"type_oid":19,"attnum":17,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"tgenabled","from":"Controls in which session_replication_role modes the trigger fires. O = trigger fires in \"origin\" and \"local\" modes, D = trigger is disabled, R = trigger fires in \"replica\" mode, A = trigger fires always.","to":"Controls in which session_replication_role modes the trigger fires. O = trigger fires in “origin” and “local” modes, D = trigger is disabled, R = trigger fires in “replica” mode, A = trigger fires always."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[{"name":"tgparentid","type":"oid","description":"Parent trigger that this trigger is cloned from, zero if not a clone; this happens when partitions are created or attached to a partitioned table.","references":"pg_trigger.oid","hidden":false,"type_oid":26,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"tgconstraint","from":"The pg_constraint entry associated with the trigger, if any","to":"The pg_constraint entry associated with the trigger (zero if trigger is not for a constraint)"},{"name":"tgconstrindid","from":"The index supporting a unique, primary key, referential integrity, or exclusion constraint","to":"The index supporting a unique, primary key, referential integrity, or exclusion constraint (zero if trigger is not for one of these types of constraint)"},{"name":"tgconstrrelid","from":"The table referenced by a referential integrity constraint","to":"The table referenced by a referential integrity constraint (zero if trigger is not for a referential integrity constraint)"},{"name":"tgparentid","from":"Parent trigger that this trigger is cloned from, zero if not a clone; this happens when partitions are created or attached to a partitioned table.","to":"Parent trigger that this trigger is cloned from (this happens when partitions are created or attached to a partitioned table); zero if not a clone"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_ts_config","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_ts_config_map","changes":[]},{"name":"pg_ts_dict","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true}]},{"name":"pg_ts_parser","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"prsheadline","from":"OID of the parser's headline function","to":"OID of the parser's headline function (zero if none)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_ts_template","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"tmplinit","from":"OID of the template's initialization function","to":"OID of the template's initialization function (zero if none)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_type","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"typcollation","type":"oid","description":"typcollation specifies the collation of the type. If the type does not support collations, this will be zero. A base type that supports collations will have DEFAULT_COLLATION_OID here. A domain over a collatable type can have some other collation OID, if one was specified for the domain.","references":"pg_collation.oid","hidden":false,"type_oid":26,"attnum":27,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[{"name":"typdefaultbin","from":"text","to":"pg_node_tree"}],"description_changes":[{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 45-45.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 45-49."},{"name":"typdefault","from":"typdefault is null if the type has no associated default value. If typdefaultbin is not null, typdefault must contain a human-readable version of the default expression represented by typdefaultbin. If typdefaultbin is null and typdefault is not, then typdefault is the external representation of the type's default value, which might be fed to the type's input converter to produce a constant.","to":"typdefault is null if the type has no associated default value. If typdefaultbin is not null, typdefault must contain a human-readable version of the default expression represented by typdefaultbin. If typdefaultbin is null and typdefault is not, then typdefault is the external representation of the type's default value, which can be fed to the type's input converter to produce a constant."},{"name":"typndims","from":"typndims is the number of array dimensions for a domain that is an array (that is, typbasetype is an array type; the domain's typelem will match the base type's typelem). Zero for types other than domains over array types.","to":"typndims is the number of array dimensions for a domain over an array (that is, typbasetype is an array type). Zero for types other than domains over array types."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[{"name":"typacl","type":"aclitem[]","description":"Access privileges; see GRANT and REVOKE for details","hidden":false,"type_oid":1034,"attnum":30,"type_modifier":-1,"array_dimensions":1,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 45-49.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 45-51."},{"name":"typtype","from":"typtype is b for a base type, c for a composite type (e.g., a table's row type), d for a domain, e for an enum type, or p for a pseudo-type. See also typrelid and typbasetype.","to":"typtype is b for a base type, c for a composite type (e.g., a table's row type), d for a domain, e for an enum type, p for a pseudo-type, or r for a range type. See also typrelid and typbasetype."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"},{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 45-51.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 47-52."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.3","to":"9.4","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 47-52.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 48-53."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 48-53.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 49-55."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.5","to":"9.6","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 49-55.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 50-56."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typalign","from":"typalign is the alignment required when storing a value of this type. It applies to storage on disk as well as most representations of the value inside PostgreSQL. When multiple values are stored consecutively, such as in the representation of a complete row on disk, padding is inserted before a datum of this type so that it begins on the specified boundary. The alignment reference is the beginning of the first datum in the sequence. Possible values are: c = char alignment, i.e., no alignment needed. s = short alignment (2 bytes on most machines). i = int alignment (4 bytes on most machines). d = double alignment (8 bytes on many machines, but by no means all). Note: For types used in system tables, it is critical that the size and alignment defined in pg_type agree with the way that the compiler will lay out the column in a structure representing a table row.","to":"typalign is the alignment required when storing a value of this type. It applies to storage on disk as well as most representations of the value inside PostgreSQL. When multiple values are stored consecutively, such as in the representation of a complete row on disk, padding is inserted before a datum of this type so that it begins on the specified boundary. The alignment reference is the beginning of the first datum in the sequence. Possible values are: c = char alignment, i.e., no alignment needed. s = short alignment (2 bytes on most machines). i = int alignment (4 bytes on most machines). d = double alignment (8 bytes on many machines, but by no means all). Note For types used in system tables, it is critical that the size and alignment defined in pg_type agree with the way that the compiler will lay out the column in a structure representing a table row."},{"name":"typarray","from":"If typarray is not 0 then it identifies another row in pg_type, which is the \"true\" array type having this type as element","to":"If typarray is not 0 then it identifies another row in pg_type, which is the “true” array type having this type as element"},{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be \"preferred\". See Table 50-56.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 51.63."},{"name":"typelem","from":"If typelem is not 0 then it identifies another row in pg_type. The current type can then be subscripted like an array yielding values of type typelem. A \"true\" array type is variable length (typlen = -1), but some fixed-length (typlen > 0) types also have nonzero typelem, for example name and point. If a fixed-length type has a typelem then its internal representation must be some number of values of the typelem data type with no other data. Variable-length array types have a header defined by the array subroutines.","to":"If typelem is not 0 then it identifies another row in pg_type. The current type can then be subscripted like an array yielding values of type typelem. A “true” array type is variable length (typlen = -1), but some fixed-length (typlen > 0) types also have nonzero typelem, for example name and point. If a fixed-length type has a typelem then its internal representation must be some number of values of the typelem data type with no other data. Variable-length array types have a header defined by the array subroutines."},{"name":"typlen","from":"For a fixed-size type, typlen is the number of bytes in the internal representation of the type. But for a variable-length type, typlen is negative. -1 indicates a \"varlena\" type (one that has a length word), -2 indicates a null-terminated C string.","to":"For a fixed-size type, typlen is the number of bytes in the internal representation of the type. But for a variable-length type, typlen is negative. -1 indicates a “varlena” type (one that has a length word), -2 indicates a null-terminated C string."},{"name":"typstorage","from":"typstorage tells for varlena types (those with typlen = -1) if the type is prepared for toasting and what the default strategy for attributes of this type should be. Possible values are p: Value must always be stored plain. e: Value can be stored in a \"secondary\" relation (if relation has one, see pg_class.reltoastrelid). m: Value can be stored compressed inline. x: Value can be stored compressed inline or stored in \"secondary\" storage. Note that m columns can also be moved out to secondary storage, but only as a last resort (e and x columns are moved first).","to":"typstorage tells for varlena types (those with typlen = -1) if the type is prepared for toasting and what the default strategy for attributes of this type should be. Possible values are p: Value must always be stored plain. e: Value can be stored in a “secondary” relation (if relation has one, see pg_class.reltoastrelid). m: Value can be stored compressed inline. x: Value can be stored compressed inline or stored in “secondary” storage. Note that m columns can also be moved out to secondary storage, but only as a last resort (e and x columns are moved first)."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"10","to":"11","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 51.63.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 52.63."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"},{"name":"typacl","from":"Access privileges; see GRANT and REVOKE for details","to":"Access privileges; see Section 5.7 for details"},{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 52.63.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 51.64."},{"name":"typcollation","from":"typcollation specifies the collation of the type. If the type does not support collations, this will be zero. A base type that supports collations will have DEFAULT_COLLATION_OID here. A domain over a collatable type can have some other collation OID, if one was specified for the domain.","to":"typcollation specifies the collation of the type. If the type does not support collations, this will be zero. A base type that supports collations will have a nonzero value here, typically DEFAULT_COLLATION_OID. A domain over a collatable type can have a collation OID different from its base type's, if one was specified for the domain."}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"12","to":"13","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typalign","from":"typalign is the alignment required when storing a value of this type. It applies to storage on disk as well as most representations of the value inside PostgreSQL. When multiple values are stored consecutively, such as in the representation of a complete row on disk, padding is inserted before a datum of this type so that it begins on the specified boundary. The alignment reference is the beginning of the first datum in the sequence. Possible values are: c = char alignment, i.e., no alignment needed. s = short alignment (2 bytes on most machines). i = int alignment (4 bytes on most machines). d = double alignment (8 bytes on many machines, but by no means all). Note For types used in system tables, it is critical that the size and alignment defined in pg_type agree with the way that the compiler will lay out the column in a structure representing a table row.","to":"typalign is the alignment required when storing a value of this type. It applies to storage on disk as well as most representations of the value inside PostgreSQL. When multiple values are stored consecutively, such as in the representation of a complete row on disk, padding is inserted before a datum of this type so that it begins on the specified boundary. The alignment reference is the beginning of the first datum in the sequence. Possible values are:"},{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 51.64.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 51.63."},{"name":"typstorage","from":"typstorage tells for varlena types (those with typlen = -1) if the type is prepared for toasting and what the default strategy for attributes of this type should be. Possible values are p: Value must always be stored plain. e: Value can be stored in a “secondary” relation (if relation has one, see pg_class.reltoastrelid). m: Value can be stored compressed inline. x: Value can be stored compressed inline or stored in “secondary” storage. Note that m columns can also be moved out to secondary storage, but only as a last resort (e and x columns are moved first).","to":"typstorage tells for varlena types (those with typlen = -1) if the type is prepared for toasting and what the default strategy for attributes of this type should be. Possible values are: x is the usual choice for toast-able types. Note that m values can also be moved out to secondary storage, but only as a last resort (e and x values are moved first)."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[{"name":"typsubscript","type":"regproc","description":"Subscripting handler function's OID, or zero if this type doesn't support subscripting. Types that are “true” array types have typsubscript = array_subscript_handler, but other types may have other handler functions to implement specialized subscripting behavior.","references":"pg_proc.oid","hidden":false,"type_oid":24,"attnum":13,"type_modifier":-1,"array_dimensions":0,"not_null":true}],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typanalyze","from":"Custom ANALYZE function, or 0 to use the standard function","to":"Custom ANALYZE function, or zero to use the standard function"},{"name":"typarray","from":"If typarray is not 0 then it identifies another row in pg_type, which is the “true” array type having this type as element","to":"If typarray is not zero then it identifies another row in pg_type, which is the “true” array type having this type as element"},{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 51.63.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 52.63."},{"name":"typelem","from":"If typelem is not 0 then it identifies another row in pg_type. The current type can then be subscripted like an array yielding values of type typelem. A “true” array type is variable length (typlen = -1), but some fixed-length (typlen > 0) types also have nonzero typelem, for example name and point. If a fixed-length type has a typelem then its internal representation must be some number of values of the typelem data type with no other data. Variable-length array types have a header defined by the array subroutines.","to":"If typelem is not zero then it identifies another row in pg_type, defining the type yielded by subscripting. This should be zero if typsubscript is zero. However, it can be zero when typsubscript isn't zero, if the handler doesn't need typelem to determine the subscripting result type. Note that a typelem dependency is considered to imply physical containment of the element type in this type; so DDL changes on the element type might be restricted by the presence of this type."},{"name":"typmodin","from":"Type modifier input function, or 0 if type does not support modifiers","to":"Type modifier input function, or zero if type does not support modifiers"},{"name":"typmodout","from":"Type modifier output function, or 0 to use the standard format","to":"Type modifier output function, or zero to use the standard format"},{"name":"typreceive","from":"Input conversion function (binary format), or 0 if none","to":"Input conversion function (binary format), or zero if none"},{"name":"typsend","from":"Output conversion function (binary format), or 0 if none","to":"Output conversion function (binary format), or zero if none"},{"name":"typtype","from":"typtype is b for a base type, c for a composite type (e.g., a table's row type), d for a domain, e for an enum type, p for a pseudo-type, or r for a range type. See also typrelid and typbasetype.","to":"typtype is b for a base type, c for a composite type (e.g., a table's row type), d for a domain, e for an enum type, p for a pseudo-type, r for a range type, or m for a multirange type. See also typrelid and typbasetype."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"14","to":"15","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 52.63.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 53.65."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typacl","from":"Access privileges; see Section 5.7 for details","to":"Access privileges; see Section 5.8 for details"},{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 53.65.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 51.65."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"17","to":"18","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 51.65.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 52.65."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"typacl","from":"Access privileges; see Section 5.8 for details","to":"Access privileges; see Section 5.9 for details"},{"name":"typcategory","from":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 52.65.","to":"typcategory is an arbitrary classification of data types that is used by the parser to determine which implicit casts should be “preferred”. See Table 52.70."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_user","changes":[{"from":"9.0","to":"9.1","status":"changed","added_columns":[{"name":"userepl","description":"User can initiate streaming replication and put the system in and out of backup mode.","description_source":{"version":"9.2","url":"https://www.postgresql.org/docs/9.2/view-pg-user.html","method":"later_documentation_exact_column_name","note":"Explanation from later documentation; existence and SQL type verified in this version by fresh initdb."},"schema_note":"The version documentation omits this field; restored from its exact-release runtime catalog.","type":"boolean","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"usesysid","from":"User ID (arbitrary number used to reference this user)","to":"ID of this user"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.4","to":"9.5","status":"changed","added_columns":[{"name":"usebypassrls","type":"boolean","description":"User bypasses every row level security policy, see Section 5.7 for more information.","documented_type":"bool","hidden":false,"type_oid":16,"attnum":6,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[{"name":"usecatupd","type":"boolean","description":"User can update system catalogs. (Even a superuser cannot do this unless this column is true.)","documented_type":"bool","hidden":false,"type_oid":16,"attnum":5,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[{"name":"valuntil","from":"abstime","to":"timestamp with time zone"}],"description_changes":[{"name":"usebypassrls","from":"User bypasses every row level security policy, see Section 5.7 for more information.","to":"User bypasses every row level security policy, see Section 5.8 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"usebypassrls","from":"User bypasses every row level security policy, see Section 5.8 for more information.","to":"User bypasses every row-level security policy, see Section 5.8 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"16","to":"17","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"usebypassrls","from":"User bypasses every row-level security policy, see Section 5.8 for more information.","to":"User bypasses every row-level security policy, see Section 5.9 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"18","to":"19","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"usebypassrls","from":"User bypasses every row-level security policy, see Section 5.9 for more information.","to":"User bypasses every row-level security policy, see Section 5.10 for more information."}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_user_mapping","changes":[{"from":"9.2","to":"9.3","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden system attribute; explicitly select oid).","to":"Row identifier (hidden attribute; must be explicitly selected)"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"umoptions","from":"User mapping specific options, as \"keyword=value\" strings","to":"User mapping specific options, as “keyword=value” strings"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"11","to":"12","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"oid","from":"Row identifier (hidden attribute; must be explicitly selected)","to":"Row identifier"}],"reference_changes":[],"attribute_changes":[{"name":"oid","attribute":"hidden","from":true,"to":false}],"relation_description_changed":false,"column_order_changed":false,"structural":true},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"umuser","from":"OID of the local role being mapped, 0 if the user mapping is public","to":"OID of the local role being mapped, or zero if the user mapping is public"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_user_mappings","changes":[{"from":"9.1","to":"9.2","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"umoptions","from":"User mapping specific options, as \"keyword=value\" strings, if the current user is the owner of the foreign server, else null","to":"User mapping specific options, as \"keyword=value\" strings"}],"reference_changes":[{"name":"srvname","from":"","to":"pg_foreign_server.srvname"}],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"9.6","to":"10","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"umoptions","from":"User mapping specific options, as \"keyword=value\" strings","to":"User mapping specific options, as “keyword=value” strings"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false},{"from":"13","to":"14","status":"changed","added_columns":[],"removed_columns":[],"type_changes":[],"description_changes":[{"name":"umuser","from":"OID of the local role being mapped, 0 if the user mapping is public","to":"OID of the local role being mapped, or zero if the user mapping is public"}],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":false}]},{"name":"pg_views","changes":[]},{"name":"pg_wait_events","changes":[{"from":"16","to":"17","status":"added","added_columns":[{"name":"type","type":"text","description":"Wait event type","hidden":false,"type_oid":25,"attnum":1,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"name","type":"text","description":"Wait event name","hidden":false,"type_oid":25,"attnum":2,"type_modifier":-1,"array_dimensions":0,"not_null":false},{"name":"description","type":"text","description":"Wait event description","hidden":false,"type_oid":25,"attnum":3,"type_modifier":-1,"array_dimensions":0,"not_null":false}],"removed_columns":[],"type_changes":[],"description_changes":[],"reference_changes":[],"attribute_changes":[],"relation_description_changed":false,"column_order_changed":false,"structural":true}]}]}
