Some debugging of the test

pull/7013/head
Jelte Fennema 2023-06-28 14:51:59 +02:00
parent 54a007d6a1
commit ab543c00d0
2 changed files with 25 additions and 5 deletions

View File

@ -545,6 +545,21 @@ class QueryRunner(ABC):
with self.cur(**kwargs) as cur: with self.cur(**kwargs) as cur:
cur.execute(query, params=params) cur.execute(query, params=params)
def sql_row(self, query, params=None, allow_empty_result=False, **kwargs):
"""Run an SQL query that returns a single row and returns this row
This opens a new connection and closes it once the query is done
"""
with self.cur(**kwargs) as cur:
cur.execute(query, params=params)
result = cur.fetchall()
if allow_empty_result and len(result) == 0:
return None
assert len(result) == 1
return result[0]
def sql_value(self, query, params=None, allow_empty_result=False, **kwargs): def sql_value(self, query, params=None, allow_empty_result=False, **kwargs):
"""Run an SQL query that returns a single cell and return this value """Run an SQL query that returns a single cell and return this value

View File

@ -1,18 +1,22 @@
import psycopg import psycopg
import pytest import pytest
from pprint import pprint
def test_isolate(cluster): def test_isolate(cluster):
cluster.coordinator.restart() cluster.coordinator.configure("citus.split_shard_group_size_threshold to 100")
cluster.coordinator.sql("SET citus.split_shard_group_size_threshold to 100") cluster.coordinator.reload()
cluster.coordinator.sql("CREATE TABLE test_row(i integer)") cluster.coordinator.sql("CREATE TABLE test_row(i integer)")
cluster.coordinator.sql("SELECT create_distributed_table('test_row','i',shard_count:=1)") cluster.coordinator.sql("SELECT create_distributed_table('test_row','i',shard_count:=1)")
cluster.coordinator.sql("ANALYZE test_row")
cluster.coordinator.sql("INSERT INTO test_row SELECT 1 from generate_series(1,20000) ") cluster.coordinator.sql("INSERT INTO test_row SELECT 1 from generate_series(1,20000) ")
print(cluster.coordinator.sql_row("select count(*), avg(i) from test_row"))
row_count1 = cluster.coordinator.sql_value("SELECT count(*) FROM pg_dist_shard") row_count1 = cluster.coordinator.sql_value("SELECT count(*) FROM pg_dist_shard")
query = "SELECT citus_auto_shard_split_start('block_writes')" query = "SELECT citus_auto_shard_split_start('block_writes')"
jobId = cluster.coordinator.sql_value(query) jobId = cluster.coordinator.sql_value(query)
print(cluster.coordinator.sql_value("select command from pg_dist_background_task where status = 'runnable'"))
cluster.coordinator.sql("SELECT citus_job_wait({})".format(jobId)) cluster.coordinator.sql("SELECT citus_job_wait({})".format(jobId))
@ -23,8 +27,8 @@ def test_isolate(cluster):
def test_split(cluster): def test_split(cluster):
cluster.coordinator.restart() cluster.coordinator.configure("citus.split_shard_group_size_threshold to 100")
cluster.coordinator.sql("SET citus.split_shard_group_size_threshold to 100") cluster.coordinator.reload()
cluster.coordinator.sql("CREATE TABLE test_row(i integer)") cluster.coordinator.sql("CREATE TABLE test_row(i integer)")
cluster.coordinator.sql("SELECT create_distributed_table('test_row','i',shard_count:=1)") cluster.coordinator.sql("SELECT create_distributed_table('test_row','i',shard_count:=1)")
cluster.coordinator.sql("INSERT INTO test_row SELECT generate_series(1,20000) ") cluster.coordinator.sql("INSERT INTO test_row SELECT generate_series(1,20000) ")
@ -33,9 +37,10 @@ def test_split(cluster):
query = "SELECT citus_auto_shard_split_start('block_writes')" query = "SELECT citus_auto_shard_split_start('block_writes')"
jobId = cluster.coordinator.sql_value(query) jobId = cluster.coordinator.sql_value(query)
print(cluster.coordinator.sql_value("select command from pg_dist_background_task where status = 'runnable'"))
cluster.coordinator.sql("SELECT citus_job_wait({})".format(jobId)) cluster.coordinator.sql("SELECT citus_job_wait({})".format(jobId))
row_count2 = cluster.coordinator.sql_value("SELECT count(*) FROM pg_dist_shard") row_count2 = cluster.coordinator.sql_value("SELECT count(*) FROM pg_dist_shard")
assert row_count2==row_count1+1, "Shard didn't get split" assert row_count2==row_count1+1, "Shard didn't get split"