From e9a5efc0083ee0d46f25960cbc158e7633120880 Mon Sep 17 00:00:00 2001 From: Dan Notestein <dan@syncad.com> Date: Sun, 22 Dec 2024 22:10:43 +0000 Subject: [PATCH] Revert "only registered state_providers impact database hash" This reverts commit e9fa365ae81546182d32a07212c37a57879d71ae --- .../table_schema_verification.sql | 11 ++--- .../hive_fork_manager/CMakeLists.txt | 1 - .../state_providers/hash.sql | 16 ------- .../state_providers/no_hash.sql | 42 ------------------- .../hive_fork_manager/test_table_schema.sh | 5 --- 5 files changed, 4 insertions(+), 71 deletions(-) delete mode 100644 tests/integration/functional/hive_fork_manager/state_providers/no_hash.sql diff --git a/src/hive_fork_manager/table_schema_verification.sql b/src/hive_fork_manager/table_schema_verification.sql index 8e4fd80ba..49a44c8fe 100644 --- a/src/hive_fork_manager/table_schema_verification.sql +++ b/src/hive_fork_manager/table_schema_verification.sql @@ -117,9 +117,9 @@ $BODY$ BEGIN RETURN QUERY SELECT - DISTINCT sp.state_provider as provider - , hive.calculate_state_provider_hash(sp.state_provider) as hash - FROM hafd.state_providers_registered sp; + sp.* as provider + , hive.calculate_state_provider_hash(sp.*) as hash + FROM unnest(enum_range(NULL::hafd.state_providers)) as sp; END; $BODY$; @@ -188,10 +188,7 @@ BEGIN SELECT string_agg(provider || hash, ' | ') FROM hive.calculate_state_provider_hashes() INTO _provider_hashes; - IF _provider_hashes IS NOT NULL THEN - _tmp = _tmp || _provider_hashes; - END IF; - + _tmp = _tmp || _provider_hashes; INSERT INTO hafd.table_schema VALUES (schema_name, MD5(_tmp)::uuid); ts.schema_name := schema_name; diff --git a/tests/integration/functional/hive_fork_manager/CMakeLists.txt b/tests/integration/functional/hive_fork_manager/CMakeLists.txt index 3a0ad82b8..61172366d 100644 --- a/tests/integration/functional/hive_fork_manager/CMakeLists.txt +++ b/tests/integration/functional/hive_fork_manager/CMakeLists.txt @@ -328,7 +328,6 @@ ADD_TEST( NAME test_update_script ADD_SQL_FUNCTIONAL_TEST( state_providers/import_state_provider_negative_non_context_owner_create_table.sql ) ADD_SQL_FUNCTIONAL_TEST( state_providers/switch_state_provider_to_forkable.sql ) ADD_SQL_FUNCTIONAL_TEST( state_providers/hash.sql ) - ADD_SQL_FUNCTIONAL_TEST( state_providers/no_hash.sql ) ADD_SQL_FUNCTIONAL_TEST( authorization/alice_access_to_bob_negative.sql ) ADD_SQL_FUNCTIONAL_TEST( authorization/alice_access_events_infrustructure.sql ) 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 778a7017d..f1622a7e2 100644 --- a/tests/integration/functional/hive_fork_manager/state_providers/hash.sql +++ b/tests/integration/functional/hive_fork_manager/state_providers/hash.sql @@ -1,19 +1,3 @@ -CREATE OR REPLACE PROCEDURE haf_admin_test_given() - LANGUAGE 'plpgsql' -AS -$BODY$ -BEGIN - CREATE SCHEMA A; - PERFORM hive.app_create_context( _name => 'context', _schema => 'a' ); - PERFORM hive.app_create_context( _name => 'context2', _schema => 'a' ); - - PERFORM hive.app_state_provider_import( 'ACCOUNTS', 'context' ); - PERFORM hive.app_state_provider_import( 'KEYAUTH', 'context' ); - PERFORM hive.app_state_provider_import( 'METADATA', 'context' ); - PERFORM hive.app_state_provider_import( 'ACCOUNTS','context2' ); -END; -$BODY$; - CREATE OR REPLACE PROCEDURE haf_admin_test_then() diff --git a/tests/integration/functional/hive_fork_manager/state_providers/no_hash.sql b/tests/integration/functional/hive_fork_manager/state_providers/no_hash.sql deleted file mode 100644 index 7e7855bf9..000000000 --- a/tests/integration/functional/hive_fork_manager/state_providers/no_hash.sql +++ /dev/null @@ -1,42 +0,0 @@ --- check if there is no registered state_provider, then hash is not computed - - -CREATE OR REPLACE PROCEDURE haf_admin_test_then() - LANGUAGE 'plpgsql' -AS -$BODY$ -DECLARE - __database_hash_before TEXT; - __database_hash_after TEXT; -BEGIN - ASSERT ( SELECT 1 FROM hive.calculate_state_provider_hashes() WHERE provider = 'ACCOUNTS' ) IS NULL - , 'ACCOUNTS hashed'; - - ASSERT ( SELECT 1 FROM hive.calculate_state_provider_hashes() WHERE provider = 'KEYAUTH' ) IS NULL - , 'KEYAUTH hashed'; - - ASSERT ( SELECT 1 FROM hive.calculate_state_provider_hashes() WHERE provider = 'METADATA' ) IS NULL - , 'METADATA hashed'; - - ASSERT ( SELECT COUNT(*) FROM hive.calculate_state_provider_hashes() ) = 0 - , 'More than 0 known providers are hashed'; - - SELECT schema_hash FROM hive.create_database_hash('hafd') INTO __database_hash_before; - - EXECUTE format( 'CREATE OR REPLACE FUNCTION hive.start_provider_keyauth( _context hafd.context_name ) - RETURNS TEXT[] - LANGUAGE plpgsql - VOLATILE - AS - $$ - BEGIN - RETURN ''''; - END; - $$ - ;'); - - SELECT schema_hash FROM hive.create_database_hash('hafd') INTO __database_hash_after; - - ASSERT __database_hash_after = __database_hash_before, 'Unused state provider has impact on database hash'; -END; -$BODY$; \ No newline at end of file diff --git a/tests/integration/functional/hive_fork_manager/test_table_schema.sh b/tests/integration/functional/hive_fork_manager/test_table_schema.sh index 9b3cec17a..25ded4a2a 100755 --- a/tests/integration/functional/hive_fork_manager/test_table_schema.sh +++ b/tests/integration/functional/hive_fork_manager/test_table_schema.sh @@ -114,11 +114,6 @@ test_extension_update_when_state_provider_changed() { echo echo "Making a change in keyauth state provider by change definition of hive.start_provider_keyauth" - sudo -Enu "$DB_ADMIN" psql -w $POSTGRES_ACCESS -d "$DB_NAME" -v ON_ERROR_STOP=on -U "$DB_ADMIN" \ - -c "CREATE SCHEMA A; - SELECT hive.app_create_context( _name => 'context', _schema => 'a' ); - SELECT hive.app_state_provider_import( 'KEYAUTH', 'context' );" - # change definition of a state provider sudo -Enu "$DB_ADMIN" psql -w $POSTGRES_ACCESS -d "$DB_NAME" -v ON_ERROR_STOP=on -U "$DB_ADMIN" \ -c "CREATE OR REPLACE FUNCTION hive.start_provider_keyauth( _context hafd.context_name ) -- GitLab