OSDN Git Service

Remove gin_trgm_ops.
authorMasaoFujii <masao.fujii@gmail.com>
Tue, 23 Jul 2013 19:24:53 +0000 (04:24 +0900)
committerMasaoFujii <masao.fujii@gmail.com>
Tue, 23 Jul 2013 19:24:53 +0000 (04:24 +0900)
We could not install pg_bigm and pg_trgm in the same database so far
because both have been declaring the same operator class gin_trgm_ops.
This patch removes gin_trgm_ops from pg_bigm and allows us to use
both full text search modules together.

On the other hand, we keep supporting gin_trgm_ops in pg_bigm 1.0
because there are already some users who use gin_trgm_ops with pg_bigm.

Beena Emerson, reviewed by Fujii Masao

Makefile
html/pg_bigm.html
pg_bigm--1.0--1.1.sql [new file with mode: 0644]
pg_bigm--1.1.sql [moved from pg_bigm--1.0.sql with 73% similarity]
pg_bigm.control

index a2effce..eb4e1e9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@ MODULE_big = pg_bigm
 OBJS = bigm_op.o bigm_gin.o
 
 EXTENSION = pg_bigm
-DATA = pg_bigm--1.0.sql
+DATA = pg_bigm--1.1.sql pg_bigm--1.0--1.1.sql
 
 REGRESS = pg_bigm
 
index 020f854..5ce4bac 100644 (file)
@@ -88,7 +88,7 @@
 <li>(*2) 全文検索インデックスを使える場合もありますが、その場合はフルインデックススキャンが走るため検索性能は非常に低くなります。</li>
 </ul>
 
-<p>pg_trgmとpg_bigmを同じデータベース内で共存させることはできません。 pg_bigmを登録するデータベースには、pg_trgmを同時に登録しないでください。</p>
+<p>pg_bigmのバージョン1.1以降では、pg_trgmとpg_bigmを同じデータベース内で共存させることが可能です。しかし、バージョン1.0では共存できないため、pg_bigmを登録するデータベースには、pg_trgmを同時に登録しないでください。</p>
 
 <h2 id="requirement">動作確認環境</h2>
 <p>pg_bigmは、以下の環境で動作確認をしています。</p>
@@ -160,7 +160,7 @@ $ psql -d &lt;データベース名&gt;
                     List of installed extensions
   Name   | Version | Schema |              Description
 ---------+---------+--------+---------------------------------------
- pg_bigm | 1.0     | public | text index searching based on bigrams
+ pg_bigm | 1.1     | public | text index searching based on bigrams
 (1 row)
 </pre>
 
@@ -173,7 +173,7 @@ $ psql -d &lt;データベース名&gt;
   </ul>
 </li>
 <li>pg_bigmの登録には、<a href="http://www.postgresql.jp/document/current/html/sql-createextension.html">CREATE EXTENSION</a>を使います。 CREATE EXTENSIONはデータベース単位でモジュールを登録するため、pg_bigmを利用したいデータベースすべてにおいて登録が必要です。</li>
-<li>pg_bigmã\81¨PostgreSQLä»\98å±\9eã\81®contribã\83¢ã\82¸ã\83¥ã\83¼ã\83«pg_trgmã\82\92å\90\8cã\81\98ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹å\86\85ã\81§å\85±å­\98ã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82 pg_bigmを登録するデータベースには、pg_trgmを同時に登録しないでください。</li>
+<li>pg_bigmã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³1.1以é\99\8dã\81§ã\81¯ã\80\81pg_bigmã\81¨PostgreSQLä»\98å±\9eã\81®contribã\83¢ã\82¸ã\83¥ã\83¼ã\83«pg_trgmã\82\92å\90\8cã\81\98ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹å\86\85ã\81§å\85±å­\98ã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81\8cå\8f¯è\83½ã\81§ã\81\99ã\80\82ã\81\97ã\81\8bã\81\97ã\80\81ã\83\90ã\83¼ã\82¸ã\83§ã\83³1.0ã\81§ã\81¯å\85±å­\98ã\81§ã\81\8dã\81ªã\81\84ã\81\9fã\82\81ã\80\81pg_bigmを登録するデータベースには、pg_trgmを同時に登録しないでください。</li>
 </ul>
 <p>pg_bigmのインストールは以上で終わりです。</p>
 
diff --git a/pg_bigm--1.0--1.1.sql b/pg_bigm--1.0--1.1.sql
new file mode 100644 (file)
index 0000000..d72d776
--- /dev/null
@@ -0,0 +1,5 @@
+-- complain if script is sourced in psql, rather than via ALTER EXTENSION
+\echo Use "ALTER EXTENSION pg_bigm UPDATE TO '1.1'" to load this file. \quit
+
+ALTER EXTENSION pg_bigm DROP OPERATOR CLASS gin_trgm_ops USING gin;
+DROP OPERATOR CLASS gin_trgm_ops USING gin;
similarity index 73%
rename from pg_bigm--1.0.sql
rename to pg_bigm--1.1.sql
index af1d844..3e67e01 100644 (file)
@@ -44,18 +44,6 @@ AS
         FUNCTION        5       gin_bigm_compare_partial (text, text, int2, internal),
         STORAGE         text;
 
--- support also gin_trgm_ops for backward-compatibility
-CREATE OPERATOR CLASS gin_trgm_ops
-FOR TYPE text USING gin
-AS
-        OPERATOR        1       pg_catalog.~~ (text, text),
-        FUNCTION        1       bigmtextcmp (text, text),
-        FUNCTION        2       gin_extract_value_bigm (text, internal),
-        FUNCTION        3       gin_extract_query_bigm (text, internal, int2, internal, internal, internal, internal),
-        FUNCTION        4       gin_bigm_consistent (internal, int2, text, int4, internal, internal, internal, internal),
-        FUNCTION        5       gin_bigm_compare_partial (text, text, int2, internal),
-        STORAGE         text;
-
 CREATE FUNCTION likequery(text)
 RETURNS text
 AS 'MODULE_PATHNAME'
index 7640874..5f3e553 100644 (file)
@@ -1,5 +1,5 @@
 # pg_bigm extension
 comment = 'text index searching based on bigrams'
-default_version = '1.0'
+default_version = '1.1'
 module_pathname = '$libdir/pg_bigm'
 relocatable = true