This commit is contained in:
kssenii 2023-12-08 12:46:59 +01:00
parent d77938c3ff
commit 0c40465fec

View File

@ -915,6 +915,100 @@ def test_failed_load_from_snapshot(started_cluster):
)
def test_generated_columns(started_cluster):
table = "test_generated_columns"
pg_manager.create_postgres_table(
table,
"",
f"""CREATE TABLE {table} (
key integer PRIMARY KEY,
x integer,
y integer GENERATED ALWAYS AS (x*2) STORED,
z text);
""",
)
pg_manager.execute(f"insert into {table} (key, x, z) values (1,1,'1');")
pg_manager.execute(f"insert into {table} (key, x, z) values (2,2,'2');")
pg_manager.create_materialized_db(
ip=started_cluster.postgres_ip,
port=started_cluster.postgres_port,
settings=[
f"materialized_postgresql_tables_list = '{table}'",
"materialized_postgresql_backoff_min_ms = 100",
"materialized_postgresql_backoff_max_ms = 100",
],
)
check_tables_are_synchronized(
instance, table, postgres_database=pg_manager.get_default_database()
)
pg_manager.execute(f"insert into {table} (key, x, z) values (3,3,'3');")
pg_manager.execute(f"insert into {table} (key, x, z) values (4,4,'4');")
check_tables_are_synchronized(
instance, table, postgres_database=pg_manager.get_default_database()
)
pg_manager.execute(f"insert into {table} (key, x, z) values (5,5,'5');")
pg_manager.execute(f"insert into {table} (key, x, z) values (6,6,'6');")
check_tables_are_synchronized(
instance, table, postgres_database=pg_manager.get_default_database()
)
def test_default_columns(started_cluster):
table = "test_default_columns"
pg_manager.create_postgres_table(
table,
"",
f"""CREATE TABLE {table} (
key integer PRIMARY KEY,
x integer,
y text DEFAULT 'y1',
z integer,
a text DEFAULT 'a1',
b integer);
""",
)
pg_manager.execute(f"insert into {table} (key, x, z, b) values (1,1,1,1);")
pg_manager.execute(f"insert into {table} (key, x, z, b) values (2,2,2,2);")
pg_manager.create_materialized_db(
ip=started_cluster.postgres_ip,
port=started_cluster.postgres_port,
settings=[
f"materialized_postgresql_tables_list = '{table}'",
"materialized_postgresql_backoff_min_ms = 100",
"materialized_postgresql_backoff_max_ms = 100",
],
)
check_tables_are_synchronized(
instance, table, postgres_database=pg_manager.get_default_database()
)
pg_manager.execute(f"insert into {table} (key, x, z, b) values (3,3,3,3);")
pg_manager.execute(f"insert into {table} (key, x, z, b) values (4,4,4,4);")
check_tables_are_synchronized(
instance, table, postgres_database=pg_manager.get_default_database()
)
pg_manager.execute(f"insert into {table} (key, x, z, b) values (5,5,5,5);")
pg_manager.execute(f"insert into {table} (key, x, z, b) values (6,6,6,6);")
check_tables_are_synchronized(
instance, table, postgres_database=pg_manager.get_default_database()
)
if __name__ == "__main__":
cluster.start()
input("Cluster created, press any key to destroy...")