mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-04 12:02:55 +00:00
## Problem We support two ingest protocols on the pageserver: vanilla and interpreted. Interpreted has been the only protocol in use for a long time. ## Summary of changes * Remove the ingest handling of the vanilla protocol * Remove tenant and pageserver configuration for it * Update all tests that tweaked the ingest protocol ## Compatibility Backward compatibility: * The new pageserver version can read the existing pageserver configuration and it will ignore the unknown field. * When the tenant config is read from the storcon db or from the pageserver disk, the extra field will be ignored. Forward compatiblity: * Both the pageserver config and the tenant config map missing fields to their default value. I'm not aware of any tenant level override that was made for this knob.
35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
from fixtures.neon_fixtures import (
|
|
NeonEnvBuilder,
|
|
check_restored_datadir_content,
|
|
)
|
|
|
|
|
|
# Test subtransactions
|
|
#
|
|
# The pg_subxact SLRU is not preserved on restarts, and doesn't need to be
|
|
# maintained in the pageserver, so subtransactions are not very exciting for
|
|
# Neon. They are included in the commit record though and updated in the
|
|
# CLOG.
|
|
def test_subxacts(neon_env_builder: NeonEnvBuilder, test_output_dir):
|
|
env = neon_env_builder.init_start()
|
|
endpoint = env.endpoints.create_start("main")
|
|
|
|
pg_conn = endpoint.connect()
|
|
cur = pg_conn.cursor()
|
|
|
|
cur.execute("CREATE TABLE t1(i int, j int);")
|
|
|
|
cur.execute("select pg_switch_wal();")
|
|
|
|
# Issue 100 transactions, with 1000 subtransactions in each.
|
|
for i in range(100):
|
|
cur.execute("begin")
|
|
for j in range(1000):
|
|
cur.execute(f"savepoint sp{j}")
|
|
cur.execute(f"insert into t1 values ({i}, {j})")
|
|
cur.execute("commit")
|
|
|
|
check_restored_datadir_content(test_output_dir, env, endpoint)
|