Skip to content

Commit 8a2dad1

Browse files
Merge branch 'postgrespro:master' into D20241206_002--local_op-run_command
2 parents d07104f + f6de273 commit 8a2dad1

File tree

1 file changed

+51
-18
lines changed

1 file changed

+51
-18
lines changed

testgres/node.py

Lines changed: 51 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import signal
66
import subprocess
77
import threading
8+
import tempfile
89
from queue import Queue
910

1011
import time
@@ -1761,6 +1762,8 @@ def make_simple(
17611762
pg_options={},
17621763
checksum=True,
17631764
bin_dir=None):
1765+
assert type(pg_options) == dict # noqa: E721
1766+
17641767
if checksum and '--data-checksums' not in initdb_params:
17651768
initdb_params.append('--data-checksums')
17661769
node = self.make_empty(base_dir, port, bin_dir=bin_dir)
@@ -1773,20 +1776,22 @@ def make_simple(
17731776
node.major_version = float(node.major_version_str)
17741777

17751778
# Set default parameters
1776-
options = {'max_connections': 100,
1777-
'shared_buffers': '10MB',
1778-
'fsync': 'off',
1779-
'wal_level': 'logical',
1780-
'hot_standby': 'off',
1781-
'log_line_prefix': '%t [%p]: [%l-1] ',
1782-
'log_statement': 'none',
1783-
'log_duration': 'on',
1784-
'log_min_duration_statement': 0,
1785-
'log_connections': 'on',
1786-
'log_disconnections': 'on',
1787-
'restart_after_crash': 'off',
1788-
'autovacuum': 'off',
1789-
'unix_socket_directories': '/tmp'}
1779+
options = {
1780+
'max_connections': 100,
1781+
'shared_buffers': '10MB',
1782+
'fsync': 'off',
1783+
'wal_level': 'logical',
1784+
'hot_standby': 'off',
1785+
'log_line_prefix': '%t [%p]: [%l-1] ',
1786+
'log_statement': 'none',
1787+
'log_duration': 'on',
1788+
'log_min_duration_statement': 0,
1789+
'log_connections': 'on',
1790+
'log_disconnections': 'on',
1791+
'restart_after_crash': 'off',
1792+
'autovacuum': 'off',
1793+
# unix_socket_directories will be defined later
1794+
}
17901795

17911796
# Allow replication in pg_hba.conf
17921797
if set_replication:
@@ -1801,11 +1806,16 @@ def make_simple(
18011806
else:
18021807
options['wal_keep_segments'] = '12'
18031808

1804-
# set default values
1805-
node.set_auto_conf(options)
1806-
18071809
# Apply given parameters
1808-
node.set_auto_conf(pg_options)
1810+
for option_name, option_value in iteritems(pg_options):
1811+
options[option_name] = option_value
1812+
1813+
# Define delayed propertyes
1814+
if not ("unix_socket_directories" in options.keys()):
1815+
options["unix_socket_directories"] = __class__._gettempdir()
1816+
1817+
# Set config values
1818+
node.set_auto_conf(options)
18091819

18101820
# kludge for testgres
18111821
# https://github.com/postgrespro/testgres/issues/54
@@ -1814,3 +1824,26 @@ def make_simple(
18141824
node.set_auto_conf({}, 'postgresql.conf', ['wal_keep_segments'])
18151825

18161826
return node
1827+
1828+
def _gettempdir():
1829+
v = tempfile.gettempdir()
1830+
1831+
#
1832+
# Paranoid checks
1833+
#
1834+
if type(v) != str: # noqa: E721
1835+
__class__._raise_bugcheck("tempfile.gettempdir returned a value with type {0}.".format(type(v).__name__))
1836+
1837+
if v == "":
1838+
__class__._raise_bugcheck("tempfile.gettempdir returned an empty string.")
1839+
1840+
if not os.path.exists(v):
1841+
__class__._raise_bugcheck("tempfile.gettempdir returned a not exist path [{0}].".format(v))
1842+
1843+
# OK
1844+
return v
1845+
1846+
def _raise_bugcheck(msg):
1847+
assert type(msg) == str # noqa: E721
1848+
assert msg != ""
1849+
raise Exception("[BUG CHECK] " + msg)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy