11# file: postgresql/defaults/main.yml
22
33# Basic settings
4- postgresql_version : 16
4+ postgresql_version : 17
55postgresql_version_terse : " {{ postgresql_version | replace('.', '') }}" # Short version of the postgresql_version, used in some path and filenames
66postgresql_encoding : " UTF-8"
77postgresql_data_checksums : false
@@ -52,6 +52,7 @@ postgresql_postgis_release_compatibility:
5252 14 : " 3.2"
5353 15 : " 3.2"
5454 16 : " 3.4"
55+ 17 : " 3.5"
5556
5657postgresql_ext_postgis_version : " {{ postgresql_postgis_release_compatibility.get(postgresql_version) }}"
5758postgresql_ext_postgis_version_terse : " {{ postgresql_ext_postgis_version | replace('.','') }}"
@@ -157,7 +158,7 @@ postgresql_client_connection_check_interval: 0 # (>= 14)
157158postgresql_authentication_timeout : 60s # 1s-600s
158159postgresql_password_encryption : " {{ 'scram-sha-256' if postgresql_version is version_compare('14', '>=') else 'md5' }}" # (>=14.0 set to scram-sha-256 for best security)
159160posgresql_scram_iterations : 4096 # (>= 16)
160- postgresql_db_user_namespace : off
161+ postgresql_db_user_namespace : off # (<= 16)
161162
162163# GSSAPI using Kerberos
163164postgresql_krb_server_keyfile : " {{ 'FILE:${sysconfdir}/krb5.keytab' if postgresql_version is version_compare('14', '>=') else '' }}"
@@ -217,15 +218,26 @@ postgresql_dynamic_shared_memory_type: "posix" # the default is the first optio
217218 # mmap
218219 # use none to disable dynamic shared memory
219220postgresql_min_dynamic_shared_memory : 0MB # (>= 14) (change requires restart)
220- postgres_vacuum_buffer_usage_limit : 256kB # (>= 16) size of vacuum and analyze buffer access strategy ring;
221+ postgresql_vacuum_buffer_usage_limit : " {{ ' 256kB' if postgresql_version is version_compare('16', '=') else '2MB' }} " # (>= 16) size of vacuum and analyze buffer access strategy ring;
221222 # 0 to disable vacuum buffer access strategy;
222223 # range 128kB to 16GB
223224
225+ # SLRU buffers (change requires restart)
226+ postgresql_commit_timestamp_buffers : 0 # (>= 17) memory for pg_commit_ts
227+ postgresql_multixact_offset_buffers : 16 # (>= 17) memory for pg_multixact/offsets
228+ postgresql_multixact_member_buffers : 32 # (>= 17) memory for pg_multixact/members
229+ postgresql_notify_buffers : 16 # (>= 17) memory for pg_notify
230+ postgresql_serializable_buffers : 32 # (>= 17) memory for pg_serial
231+ postgresql_subtransaction_buffers : 0 # (>= 17) memory for pg_subtrans (0 = auto)
232+ postgresql_transaction_buffers : 0 # (>= 17) memory for pg_xact (0 = auto)
233+
224234# - Disk -
225235
226236# limits per-process temp file space in kB, or -1 for no limit (>= 9.2)
227237postgresql_temp_file_limit : -1
228238
239+ postgresql_max_notify_queue_pages : 1048576 # (>= 17)
240+
229241# - Kernel Resources -
230242
231243postgresql_max_files_per_process : 1000 # min 25, (>= 13) min 64
@@ -250,12 +262,13 @@ postgresql_bgwriter_flush_after: 512kB # measured in pages, 0 disables
250262postgresql_backend_flush_after : 0 # (>= 9.6) 0 disables, default is 0
251263postgresql_effective_io_concurrency : 1 # 1-1000; 0 disables prefetching
252264postgresql_maintenance_io_concurrency : 10 # (>= 13)
265+ postgresql_io_combine_limit : 128kB # (>= 17) usually 1-32 blocks (depends on OS)
253266postgresql_max_worker_processes : 8 # (change requires restart)
254267postgresql_max_parallel_workers_per_gather : 2 # (>= 9.6) taken from max_worker_processes
255268postgresql_max_parallel_maintenance_workers : 2 # (>= 11) taken from max_parallel_workers
256269postgresql_max_parallel_workers : 8 # (>= 10)
257270postgresql_parallel_leader_participation : on # (>= 11)
258- postgresql_old_snapshot_threshold : -1 # (>= 9.6) 1min-60d; -1 disables; 0 is immediate
271+ postgresql_old_snapshot_threshold : -1 # (>= 9.6 and <= 16 ) 1min-60d; -1 disables; 0 is immediate
259272 # (change requires restart)
260273
261274# ------------------------------------------------------------------------------
@@ -325,6 +338,10 @@ postgresql_recovery_target_inclusive: "" # (>= 12)
325338postgresql_recovery_target_timeline : " latest" # (>= 12)
326339postgresql_recovery_target_action : " pause" # (>= 12)
327340
341+ # - WAL Summarization -
342+ postgresql_summarize_wal : off # (>= 17) run WAL summarizer process?
343+ postgresql_wal_summary_keep_time : 10d # (>= 17) when to remove old summary files, 0 = never
344+
328345# ------------------------------------------------------------------------------
329346# REPLICATION
330347# ------------------------------------------------------------------------------
@@ -346,6 +363,7 @@ postgresql_track_commit_timestamp: off # (>= 9.5)
346363# standby servers that provide sync rep.
347364# number of sync standbys (>= 9.6) and comma-separated list of application_name from standby(s)
348365postgresql_synchronous_standby_names : [] # '*' means 'all'
366+ postgresql_synchronized_standby_slots : " " # (>= 17) streaming replication standby server slot
349367postgresql_synchronous_standby_num_sync : " " # >= 9.6 (NOTE: If you use the ANY/ALL syntax in v10, then note the new variable below)
350368postgresql_synchronous_standby_choose_sync : " FIRST" # >= 10
351369# number of xacts by which cleanup is delayed
@@ -372,6 +390,7 @@ postgresql_wal_receiver_timeout: 60s
372390# time to wait before retrying to retrieve WAL after a failed attempt
373391postgresql_wal_retrieve_retry_interval : 5s # (>= 9.5)
374392postgresql_recovery_min_apply_delay : 0 # (>= 12)
393+ postgresql_sync_replication_slots : off # (>= 17) enables slot synchronization on the physical standby from the primary
375394
376395# - Subscribers - (>= 10)
377396# These settings are ignored on a publisher.
@@ -405,6 +424,7 @@ postgres_enable_presorted_aggregate: on # (>= 16)
405424postgresql_enable_seqscan : on
406425postgresql_enable_sort : on
407426postgresql_enable_tidscan : on
427+ postgresql_enable_group_by_reordering : on
408428
409429# - Planner Cost Constants -
410430postgresql_seq_page_cost : 1.0 # measured on an arbitrary scale
@@ -669,6 +689,7 @@ postgresql_default_transaction_deferrable: off
669689postgresql_session_replication_role : " origin"
670690
671691postgresql_statement_timeout : 0 # in milliseconds, 0 is disabled
692+ postgresql_transaction_timeout : 0 # (>= 17) in milliseconds, 0 is disabled
672693postgresql_lock_timeout : 0 # in milliseconds, 0 is disabled (>= 9.3)
673694postgresql_idle_in_transaction_session_timeout : 0 # in milliseconds, 0 is disabled (>= 9.6)
674695postgresql_idle_session_timeout : 0 # in milliseconds, 0 is disabled (>= 14)
@@ -684,6 +705,7 @@ postgresql_xmlbinary: "base64"
684705postgresql_xmloption : " content"
685706postgresql_gin_pending_list_limit : 4MB # (>= 9.5)
686707postgresql_createrole_self_grant : ' ' # (>= 16) 'set', 'inherit' or 'set, inherit'
708+ postgresql_event_triggers : on # (>= 17)
687709
688710# - Locale and Formatting -
689711
@@ -772,6 +794,7 @@ postgresql_sql_inheritance: on # (<= 9.6)
772794# - Other Platforms and Clients -
773795
774796postgresql_transform_null_equals : off
797+ postgresql_allow_alter_system : on # (>= 17)
775798
776799# ------------------------------------------------------------------------------
777800# ERROR HANDLING
0 commit comments