From 3b61e57f3c352ab97c6514898d46480b5725ebb9 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun, 13 Feb 2011 22:53:00 -0500
Subject: [PATCH] Assorted fixups for "unpackaged" conversion scripts.

From first pass of testing.  Notably, there seems to be no need for
adminpack--unpackaged--1.0.sql because none of the objects that the
old module creates would ever be dumped by pg_dump anyway (they are
all in pg_catalog).
---
 contrib/adminpack/Makefile                       |  2 +-
 contrib/adminpack/adminpack--unpackaged--1.0.sql | 10 ----------
 .../fuzzystrmatch--unpackaged--1.0.sql           | 12 ++++++++++--
 contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql     | 16 ++++++++++++++--
 contrib/tsearch2/tsearch2.control                |  4 +++-
 5 files changed, 28 insertions(+), 16 deletions(-)
 delete mode 100644 contrib/adminpack/adminpack--unpackaged--1.0.sql

diff --git a/contrib/adminpack/Makefile b/contrib/adminpack/Makefile
index a127653d705..5cbc8f0c71f 100644
--- a/contrib/adminpack/Makefile
+++ b/contrib/adminpack/Makefile
@@ -5,7 +5,7 @@ OBJS = adminpack.o
 PG_CPPFLAGS = -I$(libpq_srcdir)
 
 EXTENSION = adminpack
-DATA = adminpack--1.0.sql adminpack--unpackaged--1.0.sql
+DATA = adminpack--1.0.sql
 
 ifdef USE_PGXS
 PG_CONFIG = pg_config
diff --git a/contrib/adminpack/adminpack--unpackaged--1.0.sql b/contrib/adminpack/adminpack--unpackaged--1.0.sql
deleted file mode 100644
index d1c6aade9c9..00000000000
--- a/contrib/adminpack/adminpack--unpackaged--1.0.sql
+++ /dev/null
@@ -1,10 +0,0 @@
-/* contrib/adminpack/adminpack--unpackaged--1.0.sql */
-
-ALTER EXTENSION adminpack ADD function pg_catalog.pg_file_write(text,text,boolean);
-ALTER EXTENSION adminpack ADD function pg_catalog.pg_file_rename(text,text,text);
-ALTER EXTENSION adminpack ADD function pg_catalog.pg_file_rename(text,text);
-ALTER EXTENSION adminpack ADD function pg_catalog.pg_file_unlink(text);
-ALTER EXTENSION adminpack ADD function pg_catalog.pg_logdir_ls();
-ALTER EXTENSION adminpack ADD function pg_catalog.pg_file_read(text,bigint,bigint);
-ALTER EXTENSION adminpack ADD function pg_catalog.pg_file_length(text);
-ALTER EXTENSION adminpack ADD function pg_catalog.pg_logfile_rotate();
diff --git a/contrib/fuzzystrmatch/fuzzystrmatch--unpackaged--1.0.sql b/contrib/fuzzystrmatch/fuzzystrmatch--unpackaged--1.0.sql
index 12077a84ae0..b99510bcddc 100644
--- a/contrib/fuzzystrmatch/fuzzystrmatch--unpackaged--1.0.sql
+++ b/contrib/fuzzystrmatch/fuzzystrmatch--unpackaged--1.0.sql
@@ -2,11 +2,19 @@
 
 ALTER EXTENSION fuzzystrmatch ADD function levenshtein(text,text);
 ALTER EXTENSION fuzzystrmatch ADD function levenshtein(text,text,integer,integer,integer);
-ALTER EXTENSION fuzzystrmatch ADD function levenshtein_less_equal(text,text,integer);
-ALTER EXTENSION fuzzystrmatch ADD function levenshtein_less_equal(text,text,integer,integer,integer,integer);
 ALTER EXTENSION fuzzystrmatch ADD function metaphone(text,integer);
 ALTER EXTENSION fuzzystrmatch ADD function soundex(text);
 ALTER EXTENSION fuzzystrmatch ADD function text_soundex(text);
 ALTER EXTENSION fuzzystrmatch ADD function difference(text,text);
 ALTER EXTENSION fuzzystrmatch ADD function dmetaphone(text);
 ALTER EXTENSION fuzzystrmatch ADD function dmetaphone_alt(text);
+
+-- these functions were not in 9.0
+
+CREATE FUNCTION levenshtein_less_equal (text,text,int) RETURNS int
+AS 'MODULE_PATHNAME','levenshtein_less_equal'
+LANGUAGE C IMMUTABLE STRICT;
+
+CREATE FUNCTION levenshtein_less_equal (text,text,int,int,int,int) RETURNS int
+AS 'MODULE_PATHNAME','levenshtein_less_equal_with_costs'
+LANGUAGE C IMMUTABLE STRICT;
diff --git a/contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql b/contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql
index ffcb8c1e098..ba070384d0f 100644
--- a/contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql
+++ b/contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql
@@ -6,8 +6,6 @@ ALTER EXTENSION pg_trgm ADD function show_trgm(text);
 ALTER EXTENSION pg_trgm ADD function similarity(text,text);
 ALTER EXTENSION pg_trgm ADD function similarity_op(text,text);
 ALTER EXTENSION pg_trgm ADD operator %(text,text);
-ALTER EXTENSION pg_trgm ADD function similarity_dist(text,text);
-ALTER EXTENSION pg_trgm ADD operator <->(text,text);
 ALTER EXTENSION pg_trgm ADD type gtrgm;
 ALTER EXTENSION pg_trgm ADD function gtrgm_in(cstring);
 ALTER EXTENSION pg_trgm ADD function gtrgm_out(gtrgm);
@@ -26,3 +24,17 @@ ALTER EXTENSION pg_trgm ADD function gin_extract_query_trgm(text,internal,smalli
 ALTER EXTENSION pg_trgm ADD function gin_trgm_consistent(internal,smallint,text,integer,internal,internal,internal,internal);
 ALTER EXTENSION pg_trgm ADD operator family gin_trgm_ops using gin;
 ALTER EXTENSION pg_trgm ADD operator class gin_trgm_ops using gin;
+
+-- these were not in 9.0:
+
+CREATE FUNCTION similarity_dist(text,text)
+RETURNS float4
+AS 'MODULE_PATHNAME'
+LANGUAGE C STRICT IMMUTABLE;
+
+CREATE OPERATOR <-> (
+        LEFTARG = text,
+        RIGHTARG = text,
+        PROCEDURE = similarity_dist,
+        COMMUTATOR = '<->'
+);
diff --git a/contrib/tsearch2/tsearch2.control b/contrib/tsearch2/tsearch2.control
index 474fedeada7..3e11bcfbe88 100644
--- a/contrib/tsearch2/tsearch2.control
+++ b/contrib/tsearch2/tsearch2.control
@@ -2,4 +2,6 @@
 comment = 'compatibility package for pre-8.3 text search functions'
 default_version = '1.0'
 module_pathname = '$libdir/tsearch2'
-relocatable = true
+# this is not relocatable because the tsearch2--unpackaged--1.0.sql script
+# has to use @extschema@ to avoid conflict with items in pg_catalog
+relocatable = false
-- 
GitLab