Fix get_prewarm_info()

This commit is contained in:
Konstantin Knizhnik
2024-10-25 10:11:58 +03:00
parent 0b42695983
commit 012a8a360f
3 changed files with 6 additions and 4 deletions

View File

@@ -32,6 +32,8 @@ DATA = \
neon--1.2--1.3.sql \
neon--1.3--1.4.sql \
neon--1.4--1.5.sql \
neon--1.5--1.6.sql \
neon--1.6--1.5.sql \
neon--1.5--1.4.sql \
neon--1.4--1.3.sql \
neon--1.3--1.2.sql \

View File

@@ -1734,7 +1734,7 @@ get_prewarm_info(PG_FUNCTION_ARGS)
bool nulls[4];
TupleDesc tupdesc;
if (lfc_size_limit != 0)
if (lfc_size_limit == 0)
PG_RETURN_NULL();
tupdesc = CreateTemplateTupleDesc(4);

View File

@@ -20,7 +20,6 @@ def test_lfc_prewarm(neon_simple_env: NeonEnv):
)
conn = endpoint.connect()
cur = conn.cursor()
cur.execute("create extension neon version '1.6'")
cur.execute("create table t(pk integer primary key, payload text default repeat('?', 128))")
cur.execute(f"insert into t (pk) values (generate_series(1,{n_records}))")
@@ -29,6 +28,7 @@ def test_lfc_prewarm(neon_simple_env: NeonEnv):
conn = endpoint.connect()
cur = conn.cursor()
cur.execute("create extension neon version '1.6'")
for _ in range(20):
time.sleep(1) # give prewarm BGW some time to proceed
@@ -37,14 +37,14 @@ def test_lfc_prewarm(neon_simple_env: NeonEnv):
log.info(f"Used LFC size: {lfc_used_pages}")
cur.execute("select * from get_prewarm_info()")
prewarm_info = cur.fetchall()[0]
log.info(f"Prewrm info: {prewarm_info}")
log.info(f"Prewarm info: {prewarm_info}")
if prewarm_info[0] > 0:
log.info(f"Prewarm progress: {prewarm_info[1]*100//prewarm_info[0]}%")
if prewarm_info[0] == prewarm_info[1]:
break
assert lfc_used_pages > 10000
assert prewarm_info[0] > 0 and prewarm_info[0] == prewarm_info[1]:
assert prewarm_info[0] > 0 and prewarm_info[0] == prewarm_info[1]
cur.execute("select sum(pk) from t")
assert cur.fetchall()[0][0] == n_records * (n_records + 1) / 2