mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-05 12:32:54 +00:00
This patch aims to:
* Unify connection & querying logic of ZenithPagerserver and Postgres.
* Mitigate changes to transaction machinery introduced in `psycopg2 >= 2.9`.
Now it's possible to acquire db connection using the corresponding
method:
```python
pg = postgres.create_start('main')
conn = pg.connect()
...
conn.close()
```
This pattern can be further improved with the help of `closing`:
```python
from contextlib import closing
pg = postgres.create_start('main')
with closing(pg.connect()) as conn:
...
```
All connections produced by this method will have autocommit
enabled by default.
30 lines
880 B
Python
30 lines
880 B
Python
from contextlib import closing
|
|
|
|
pytest_plugins = ("fixtures.zenith_fixtures")
|
|
|
|
|
|
#
|
|
# Test starting Postgres with custom options
|
|
#
|
|
def test_config(zenith_cli, pageserver, postgres, pg_bin):
|
|
# Create a branch for us
|
|
zenith_cli.run(["branch", "test_config", "empty"])
|
|
|
|
# change config
|
|
pg = postgres.create_start('test_config', config_lines=['log_min_messages=debug1'])
|
|
print('postgres is running on test_config branch')
|
|
|
|
with closing(pg.connect()) as conn:
|
|
with conn.cursor() as cur:
|
|
cur.execute('''
|
|
SELECT setting
|
|
FROM pg_settings
|
|
WHERE
|
|
source != 'default'
|
|
AND source != 'override'
|
|
AND name = 'log_min_messages'
|
|
''')
|
|
|
|
# check that config change was applied
|
|
assert cur.fetchone() == ('debug1', )
|