diff --git a/src/include/catalog/upgrade_sql/rollback_catalog_maindb/rollback-post_catalog_maindb_93_019.sql b/src/include/catalog/upgrade_sql/rollback_catalog_maindb/rollback-post_catalog_maindb_93_019.sql index 1bd356568009c0a53969ff6f1d77a6c84754a697..11c707dbdac38581b788a684330e9e91061124e7 100644 --- a/src/include/catalog/upgrade_sql/rollback_catalog_maindb/rollback-post_catalog_maindb_93_019.sql +++ b/src/include/catalog/upgrade_sql/rollback_catalog_maindb/rollback-post_catalog_maindb_93_019.sql @@ -180,8 +180,22 @@ DROP TYPE IF EXISTS pg_catalog._vector CASCADE; DROP OPERATOR IF EXISTS pg_catalog.<~>(bit, bit) CASCADE; DROP OPERATOR IF EXISTS pg_catalog.<%>(bit, bit) CASCADE; -DROP ACCESS METHOD IF EXISTS ivfflat CASCADE; -DROP ACCESS METHOD IF EXISTS hnsw CASCADE; + +DO $$ +DECLARE + version_text TEXT; + major_version INT; +BEGIN + SELECT version() INTO version_text; + major_version := regexp_replace(version_text, '.*openGauss(?:-lite)? (\d+)\..*', '\1')::INT; + IF major_version >= 6 THEN + EXECUTE 'DROP ACCESS METHOD IF EXISTS ivfflat CASCADE'; + EXECUTE 'DROP ACCESS METHOD IF EXISTS hnsw CASCADE;'; + ELSE + RAISE NOTICE 'Current version is %, DROP ACCESS METHOD is not executed.', version_text; + END IF; +END $$; + DROP FUNCTION IF EXISTS pg_catalog.vector_avg(_float8) CASCADE; DROP FUNCTION IF EXISTS pg_catalog.vector_combine(_float8, _float8) CASCADE; DROP FUNCTION IF EXISTS pg_catalog.array_to_vector(_int4, int4, boolean) CASCADE; diff --git a/src/include/catalog/upgrade_sql/rollback_catalog_otherdb/rollback-post_catalog_otherdb_93_019.sql b/src/include/catalog/upgrade_sql/rollback_catalog_otherdb/rollback-post_catalog_otherdb_93_019.sql index 1bd356568009c0a53969ff6f1d77a6c84754a697..11c707dbdac38581b788a684330e9e91061124e7 100644 --- a/src/include/catalog/upgrade_sql/rollback_catalog_otherdb/rollback-post_catalog_otherdb_93_019.sql +++ b/src/include/catalog/upgrade_sql/rollback_catalog_otherdb/rollback-post_catalog_otherdb_93_019.sql @@ -180,8 +180,22 @@ DROP TYPE IF EXISTS pg_catalog._vector CASCADE; DROP OPERATOR IF EXISTS pg_catalog.<~>(bit, bit) CASCADE; DROP OPERATOR IF EXISTS pg_catalog.<%>(bit, bit) CASCADE; -DROP ACCESS METHOD IF EXISTS ivfflat CASCADE; -DROP ACCESS METHOD IF EXISTS hnsw CASCADE; + +DO $$ +DECLARE + version_text TEXT; + major_version INT; +BEGIN + SELECT version() INTO version_text; + major_version := regexp_replace(version_text, '.*openGauss(?:-lite)? (\d+)\..*', '\1')::INT; + IF major_version >= 6 THEN + EXECUTE 'DROP ACCESS METHOD IF EXISTS ivfflat CASCADE'; + EXECUTE 'DROP ACCESS METHOD IF EXISTS hnsw CASCADE;'; + ELSE + RAISE NOTICE 'Current version is %, DROP ACCESS METHOD is not executed.', version_text; + END IF; +END $$; + DROP FUNCTION IF EXISTS pg_catalog.vector_avg(_float8) CASCADE; DROP FUNCTION IF EXISTS pg_catalog.vector_combine(_float8, _float8) CASCADE; DROP FUNCTION IF EXISTS pg_catalog.array_to_vector(_int4, int4, boolean) CASCADE;