]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Make the standard stopword files be sought relative to share_dir, so
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 17 Oct 2004 23:09:31 +0000 (23:09 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 17 Oct 2004 23:09:31 +0000 (23:09 +0000)
that a tsearch2 installation can be relocatable.

contrib/tsearch2/Makefile
contrib/tsearch2/stopword.c
contrib/tsearch2/tsearch.sql.in

index 928266daa5e82296d1ee0eb8a37e8fd8f2f72fea..15983db428108f4b1c4b4c6c90388d45135debdc 100644 (file)
@@ -1,4 +1,4 @@
-# $PostgreSQL: pgsql/contrib/tsearch2/Makefile,v 1.7 2004/08/20 20:13:09 momjian Exp $
+# $PostgreSQL: pgsql/contrib/tsearch2/Makefile,v 1.8 2004/10/17 23:09:31 tgl Exp $
 
 MODULE_big = tsearch2
 OBJS = dict_ex.o dict.o snmap.o stopword.o common.o prs_dcfg.o \
@@ -39,8 +39,7 @@ $(SUBDIRS:%=%-recursive):
        $(MAKE) -C $(subst -recursive,,$@) SUBSYS.o
 
 tsearch2.sql: tsearch.sql.in
-       sed -e 's,MODULE_PATHNAME,$$libdir/$(MODULE_big),g' \
-           -e 's,DATA_PATH,$(datadir)/contrib,g' $< >$@
+       sed -e 's,MODULE_PATHNAME,$$libdir/$(MODULE_big),g' $< >$@
 
 untsearch2.sql: untsearch.sql.in
        cp $< $@
index f91abeb460e7b9c90eeed7d9c041002466bb27b3..185d085de16d715a9a1cb072fd4eb7c1baaca4ea 100644 (file)
@@ -2,12 +2,12 @@
  * stopword library
  * Teodor Sigaev <teodor@sigaev.ru>
  */
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
+#include "postgres.h"
+
 #include <ctype.h>
 
-#include "postgres.h"
+#include "miscadmin.h"
+
 #include "common.h"
 #include "dict.h"
 
@@ -51,10 +51,23 @@ readstoplist(text *in, StopList * s)
        if (in && VARSIZE(in) - VARHDRSZ > 0)
        {
                char       *filename = text2char(in);
-               FILE       *hin = NULL;
+               FILE       *hin;
                char            buf[STOPBUFLEN];
                int                     reallen = 0;
 
+               /* if path is relative, take it as relative to share dir */
+               if (!is_absolute_path(filename))
+               {
+                       char    sharepath[MAXPGPATH];
+                       char   *absfn;
+
+                       get_share_path(my_exec_path, sharepath);
+                       absfn = palloc(strlen(sharepath) + strlen(filename) + 2);
+                       sprintf(absfn, "%s/%s", sharepath, filename);
+                       pfree(filename);
+                       filename = absfn;
+               }
+
                if ((hin = fopen(filename, "r")) == NULL)
                        ereport(ERROR,
                                        (errcode(ERRCODE_CONFIG_FILE_ERROR),
index 1345b64f15b27ddffebf4f40498189de0ccd7f31..35f96cd5cdb625243c3172c018772bf4b3538f3e 100644 (file)
@@ -77,7 +77,7 @@ CREATE FUNCTION snb_lexize(internal,internal,int4)
 insert into pg_ts_dict select 
        'en_stem', 
        'snb_en_init(text)',
-       'DATA_PATH/english.stop',
+       'contrib/english.stop',
        'snb_lexize(internal,internal,int4)',
        'English Stemmer. Snowball.'
 ;
@@ -90,7 +90,7 @@ CREATE FUNCTION snb_ru_init(text)
 insert into pg_ts_dict select 
        'ru_stem', 
        'snb_ru_init(text)',
-       'DATA_PATH/russian.stop',
+       'contrib/russian.stop',
        'snb_lexize(internal,internal,int4)',
        'Russian Stemmer. Snowball.'
 ;