From 4ab9ece2aca3c6cc12267e69c84b49115b3361eb Mon Sep 17 00:00:00 2001 From: MasaoFujii Date: Mon, 5 Sep 2016 12:58:06 +0900 Subject: [PATCH] Fix pg_bigm so that it can be registered properly in PostgreSQL 9.5 or before. Commit 0b09e86 introduced the bug which caused "CREATE EXTENSION pg_bigm" to fail in PostgreSQL 9.5 or before. The cause of this failure is that pg_bigm--1.2.sql included the DO command which tried to mark the functions with PARALLEL SAFE label which those versions cannot handle. To prevent those versions from emitting syntax failure when they look at PARALLEL SAFE label, this commit changes so that "ALTER FUNCTION ... PARALLEL SAFE" command is executed via EXECUTE command. --- pg_bigm--1.1--1.2.sql | 22 +++++++++++----------- pg_bigm--1.2.sql | 22 +++++++++++----------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/pg_bigm--1.1--1.2.sql b/pg_bigm--1.1--1.2.sql index ba52bca..e632292 100644 --- a/pg_bigm--1.1--1.2.sql +++ b/pg_bigm--1.1--1.2.sql @@ -25,17 +25,17 @@ DECLARE BEGIN SELECT current_setting('server_version_num')::INTEGER INTO pgversion; IF pgversion >= 90600 THEN - ALTER FUNCTION show_bigm(text) PARALLEL SAFE; - ALTER FUNCTION bigm_similarity(text, text) PARALLEL SAFE; - ALTER FUNCTION bigm_similarity_op(text, text) PARALLEL SAFE; - ALTER FUNCTION gin_extract_value_bigm(text, internal) PARALLEL SAFE; - ALTER FUNCTION gin_extract_query_bigm(text, internal, int2, internal, internal, internal, internal) PARALLEL SAFE; - ALTER FUNCTION gin_bigm_consistent(internal, int2, text, int4, internal, internal, internal, internal) PARALLEL SAFE; - ALTER FUNCTION gin_bigm_compare_partial(text, text, int2, internal) PARALLEL SAFE; - ALTER FUNCTION bigmtextcmp(text, text) PARALLEL SAFE; - ALTER FUNCTION likequery(text) PARALLEL SAFE; - ALTER FUNCTION pg_gin_pending_stats(index regclass) PARALLEL SAFE; - ALTER FUNCTION gin_bigm_triconsistent(internal, int2, text, int4, internal, internal, internal) PARALLEL SAFE; + EXECUTE 'ALTER FUNCTION show_bigm(text) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION bigm_similarity(text, text) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION bigm_similarity_op(text, text) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION gin_extract_value_bigm(text, internal) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION gin_extract_query_bigm(text, internal, int2, internal, internal, internal, internal) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION gin_bigm_consistent(internal, int2, text, int4, internal, internal, internal, internal) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION gin_bigm_compare_partial(text, text, int2, internal) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION bigmtextcmp(text, text) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION likequery(text) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION pg_gin_pending_stats(index regclass) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION gin_bigm_triconsistent(internal, int2, text, int4, internal, internal, internal) PARALLEL SAFE'; END IF; END; $$; diff --git a/pg_bigm--1.2.sql b/pg_bigm--1.2.sql index dec0f03..50fe086 100644 --- a/pg_bigm--1.2.sql +++ b/pg_bigm--1.2.sql @@ -98,17 +98,17 @@ DECLARE BEGIN SELECT current_setting('server_version_num')::INTEGER INTO pgversion; IF pgversion >= 90600 THEN - ALTER FUNCTION show_bigm(text) PARALLEL SAFE; - ALTER FUNCTION bigm_similarity(text, text) PARALLEL SAFE; - ALTER FUNCTION bigm_similarity_op(text, text) PARALLEL SAFE; - ALTER FUNCTION gin_extract_value_bigm(text, internal) PARALLEL SAFE; - ALTER FUNCTION gin_extract_query_bigm(text, internal, int2, internal, internal, internal, internal) PARALLEL SAFE; - ALTER FUNCTION gin_bigm_consistent(internal, int2, text, int4, internal, internal, internal, internal) PARALLEL SAFE; - ALTER FUNCTION gin_bigm_compare_partial(text, text, int2, internal) PARALLEL SAFE; - ALTER FUNCTION bigmtextcmp(text, text) PARALLEL SAFE; - ALTER FUNCTION likequery(text) PARALLEL SAFE; - ALTER FUNCTION pg_gin_pending_stats(index regclass) PARALLEL SAFE; - ALTER FUNCTION gin_bigm_triconsistent(internal, int2, text, int4, internal, internal, internal) PARALLEL SAFE; + EXECUTE 'ALTER FUNCTION show_bigm(text) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION bigm_similarity(text, text) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION bigm_similarity_op(text, text) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION gin_extract_value_bigm(text, internal) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION gin_extract_query_bigm(text, internal, int2, internal, internal, internal, internal) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION gin_bigm_consistent(internal, int2, text, int4, internal, internal, internal, internal) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION gin_bigm_compare_partial(text, text, int2, internal) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION bigmtextcmp(text, text) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION likequery(text) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION pg_gin_pending_stats(index regclass) PARALLEL SAFE'; + EXECUTE 'ALTER FUNCTION gin_bigm_triconsistent(internal, int2, text, int4, internal, internal, internal) PARALLEL SAFE'; END IF; END; $$; -- 2.11.0