| -- |
| -- Test assorted system views |
| -- |
| -- This test is mainly meant to provide some code coverage for the |
| -- set-returning functions that underlie certain system views. |
| -- The output of most of these functions is very environment-dependent, |
| -- so our ability to test with fixed expected output is pretty limited; |
| -- but even a trivial check of count(*) will exercise the normal code path |
| -- through the SRF. |
| select count(*) >= 0 as ok from pg_available_extension_versions; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| select count(*) >= 0 as ok from pg_available_extensions; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| -- The entire output of pg_backend_memory_contexts is not stable, |
| -- we test only the existance and basic condition of TopMemoryContext. |
| select name, ident, parent, level, total_bytes >= free_bytes |
| from pg_backend_memory_contexts where level = 0; |
| name | ident | parent | level | ?column? |
| ------------------+-------+--------+-------+---------- |
| TopMemoryContext | | | 0 | t |
| (1 row) |
| |
| -- At introduction, pg_config had 23 entries; it may grow |
| select count(*) > 20 as ok from pg_config; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| -- We expect no cursors in this test; see also portals.sql |
| select count(*) = 0 as ok from pg_cursors; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| select count(*) >= 0 as ok from pg_file_settings; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| -- There will surely be at least one rule |
| select count(*) > 0 as ok from pg_hba_file_rules; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| -- There will surely be at least one active lock |
| select count(*) > 0 as ok from pg_locks; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| -- We expect no prepared statements in this test; see also prepare.sql |
| select count(*) = 0 as ok from pg_prepared_statements; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| -- See also prepared_xacts.sql |
| select count(*) >= 0 as ok from pg_prepared_xacts; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| -- There will surely be at least one SLRU cache |
| select count(*) > 0 as ok from pg_stat_slru; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| -- There must be only one record |
| select count(*) = 1 as ok from pg_stat_wal; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| -- We expect no walreceiver running in this test |
| select count(*) = 0 as ok from pg_stat_wal_receiver; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| -- This is to record the prevailing planner enable_foo settings during |
| -- a regression test run. |
| -- GP parallel tests will run another with enable_parallel=on, filter this to pass regression. |
| SELECT name, setting FROM pg_settings WHERE name LIKE 'enable%' and |
| name not in ('enable_parallel', |
| 'enable_answer_query_using_materialized_views', |
| 'enable_parallel_dedup_semi_join', |
| 'enable_parallel_dedup_semi_reverse_join', |
| 'enable_parallel_semi_join'); |
| name | setting |
| --------------------------------+--------- |
| enable_async_append | on |
| enable_bitmapscan | on |
| enable_gathermerge | on |
| enable_groupagg | on |
| enable_hashagg | on |
| enable_hashjoin | on |
| enable_incremental_sort | off |
| enable_indexonlyscan | on |
| enable_indexscan | on |
| enable_lock_optimization | off |
| enable_material | on |
| enable_memoize | on |
| enable_mergejoin | off |
| enable_nestloop | off |
| enable_parallel_append | on |
| enable_parallel_hash | on |
| enable_partition_pruning | on |
| enable_partitionwise_aggregate | off |
| enable_partitionwise_join | off |
| enable_password_profile | on |
| enable_seqscan | on |
| enable_sort | on |
| enable_tidscan | on |
| (23 rows) |
| |
| -- Test that the pg_timezone_names and pg_timezone_abbrevs views are |
| -- more-or-less working. We can't test their contents in any great detail |
| -- without the outputs changing anytime IANA updates the underlying data, |
| -- but it seems reasonable to expect at least one entry per major meridian. |
| -- (At the time of writing, the actual counts are around 38 because of |
| -- zones using fractional GMT offsets, so this is a pretty loose test.) |
| select count(distinct utc_offset) >= 24 as ok from pg_timezone_names; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| select count(distinct utc_offset) >= 24 as ok from pg_timezone_abbrevs; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| -- Let's check the non-default timezone abbreviation sets, too |
| set timezone_abbreviations = 'Australia'; |
| select count(distinct utc_offset) >= 24 as ok from pg_timezone_abbrevs; |
| ok |
| ---- |
| t |
| (1 row) |
| |
| set timezone_abbreviations = 'India'; |
| select count(distinct utc_offset) >= 24 as ok from pg_timezone_abbrevs; |
| ok |
| ---- |
| t |
| (1 row) |
| |