From f0abad06e6917d65ada7c3f1c807a12a1506c7f7 Mon Sep 17 00:00:00 2001 From: Marcin Ickiewicz <mickiewicz@syncad.com> Date: Wed, 8 Jan 2025 11:05:05 +0100 Subject: [PATCH] eliminate hafd.table_schema from usage --- ...hive_fork_manager_update_script_generator.sh.in | 4 ++-- src/hive_fork_manager/update.sql | 14 +++----------- .../hive_fork_manager/state_providers/hash.sql | 4 ++-- 3 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/hive_fork_manager/hive_fork_manager_update_script_generator.sh.in b/src/hive_fork_manager/hive_fork_manager_update_script_generator.sh.in index a68016827..8e1d112c8 100755 --- a/src/hive_fork_manager/hive_fork_manager_update_script_generator.sh.in +++ b/src/hive_fork_manager/hive_fork_manager_update_script_generator.sh.in @@ -98,8 +98,8 @@ verify_table_schema() { psql_do -a -d "$DB_NAME_AFTER_UPDATE" -c 'CREATE EXTENSION hive_fork_manager CASCADE;' psql_do -d "$DB_NAME_AFTER_UPDATE" -q -t -A -f "$SCRIPTPATH/update.sql" - BEFORE_UPDATE=$(psql_do -d "$DB_NAME" -t -A -c "SELECT schema_hash FROM hive_update.create_database_hash()") - AFTER_UPDATE=$(psql_do -d "$DB_NAME_AFTER_UPDATE" -t -A -c "SELECT schema_hash FROM hive_update.create_database_hash()") + BEFORE_UPDATE=$(psql_do -d "$DB_NAME" -t -A -c "SELECT hive_update.create_database_hash()") + AFTER_UPDATE=$(psql_do -d "$DB_NAME_AFTER_UPDATE" -t -A -c "SELECT hive_update.create_database_hash()") if [ "$BEFORE_UPDATE" = "$AFTER_UPDATE" ]; then echo "The table schema is correct, verification completed." echo "Dropping temporary database" diff --git a/src/hive_fork_manager/update.sql b/src/hive_fork_manager/update.sql index 4e3d5ba70..cda3d05c7 100644 --- a/src/hive_fork_manager/update.sql +++ b/src/hive_fork_manager/update.sql @@ -336,28 +336,20 @@ $BODY$ DROP FUNCTION IF EXISTS hive_update.create_database_hash; CREATE FUNCTION hive_update.create_database_hash() - RETURNS SETOF hafd.table_schema + RETURNS UUID LANGUAGE plpgsql - VOLATILE + STABLE AS $BODY$ DECLARE - ts hafd.table_schema%ROWTYPE; _tmp TEXT; _provider_hashes TEXT; BEGIN - TRUNCATE hafd.table_schema; - SELECT string_agg(table_schema, ' | ') FROM hive_update.calculate_schema_hash() INTO _tmp; - SELECT string_agg(provider || hash, ' | ') FROM hive_update.calculate_state_provider_hashes() INTO _provider_hashes; _tmp = _tmp || _provider_hashes; - INSERT INTO hafd.table_schema VALUES ('hafd', MD5(_tmp)::uuid); - - ts.schema_name := 'hafd'; - ts.schema_hash := MD5(_tmp)::uuid; -RETURN NEXT ts; + RETURN MD5(_tmp)::uuid; END; $BODY$ ; diff --git a/tests/integration/functional/hive_fork_manager/state_providers/hash.sql b/tests/integration/functional/hive_fork_manager/state_providers/hash.sql index 52032d01f..9da0e479e 100644 --- a/tests/integration/functional/hive_fork_manager/state_providers/hash.sql +++ b/tests/integration/functional/hive_fork_manager/state_providers/hash.sql @@ -27,7 +27,7 @@ BEGIN SELECT STRING_AGG( hash, '|') FROM hive_update.calculate_state_provider_hashes() INTO __all_before_hashes; SELECT * FROM hive_update.calculate_state_provider_hash( 'KEYAUTH'::hafd.state_providers ) INTO __keyauth_before_hash; - SELECT schema_hash FROM hive_update.create_database_hash() INTO __database_hash_before; + SELECT hive_update.create_database_hash() INTO __database_hash_before; EXECUTE format( 'CREATE OR REPLACE FUNCTION hive.start_provider_keyauth( _context hafd.context_name ) RETURNS TEXT[] @@ -43,7 +43,7 @@ BEGIN SELECT STRING_AGG( hash, '|') FROM hive_update.calculate_state_provider_hashes() INTO __all_after_hashes; SELECT * FROM hive_update.calculate_state_provider_hash( 'KEYAUTH'::hafd.state_providers ) INTO __keyauth_after_hash; - SELECT schema_hash FROM hive_update.create_database_hash() INTO __database_hash_after; + SELECT hive_update.create_database_hash() INTO __database_hash_after; ASSERT __all_after_hashes != __all_before_hashes, 'Hashes not changed after modification'; ASSERT __keyauth_after_hash != __keyauth_before_hash, 'Hash not changed after modification'; -- GitLab