From b12e53226ffd3476db1ca4531ecd6828359b75b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20H=2E=20Fjeld?= Date: Thu, 23 Jan 2025 09:33:09 +0100 Subject: [PATCH] db: Fix bug in batch api removal --- ...s_for_batch_api_and_related_functions.up.sql | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/migrations/20240215000000_create_generate_table_views_for_batch_api_and_related_functions.up.sql b/migrations/20240215000000_create_generate_table_views_for_batch_api_and_related_functions.up.sql index 75f27c295..07d437a78 100644 --- a/migrations/20240215000000_create_generate_table_views_for_batch_api_and_related_functions.up.sql +++ b/migrations/20240215000000_create_generate_table_views_for_batch_api_and_related_functions.up.sql @@ -580,8 +580,21 @@ BEGIN EXECUTE 'DROP FUNCTION ' || prepare_function_name_custom || '()'; - -- Drop the unique index created by generate_active_code_custom_unique_constraint - EXECUTE format('DROP INDEX IF EXISTS ix_%I_active_code', table_name_str); + -- Get unique columns and construct index name using same logic as in generate_active_code_custom_unique_constraint + DECLARE + table_properties admin.batch_api_table_properties; + unique_columns text[]; + index_name text; + BEGIN + table_properties := admin.detect_batch_api_table_properties(table_name); + unique_columns := admin.get_unique_columns(table_properties); + + -- Only attempt to drop if we have unique columns + IF array_length(unique_columns, 1) IS NOT NULL THEN + index_name := 'ix_' || table_name_str || '_' || array_to_string(unique_columns, '_'); + EXECUTE format('DROP INDEX IF EXISTS %I', index_name); + END IF; + END; END; $$ LANGUAGE plpgsql;