Re: request a new feature in fuzzystrmatch
От | Liming Hu |
---|---|
Тема | Re: request a new feature in fuzzystrmatch |
Дата | |
Msg-id | CAE-MfPvM_sOF0O0Au22DuX+9zStuaFy0+_fYZkdf=vTGhuBkZQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: request a new feature in fuzzystrmatch (Atri Sharma <atri.jiit@gmail.com>) |
Ответы |
Re: request a new feature in fuzzystrmatch
|
Список | pgsql-hackers |
On Fri, May 17, 2013 at 10:21 PM, Atri Sharma <atri.jiit@gmail.com> wrote: > > > Sent from my iPad > > On 18-May-2013, at 10:41, Liming Hu <dawninghu@gmail.com> wrote: > >> On Fri, May 17, 2013 at 9:39 PM, Atri Sharma <atri.jiit@gmail.com> wrote: >>> >>> >>> Sent from my iPad >>> >>> On 18-May-2013, at 10:00, Liming Hu <dawninghu@gmail.com> wrote: >>> >>>> On 5/17/2013 9:10 PM, Atri Sharma wrote: >>>>> On Sat, May 18, 2013 at 9:27 AM, Liming Hu <dawninghu@gmail.com> wrote: >>>>>> On 5/17/2013 12:39 PM, Liming Hu wrote: >>>>>>> On Fri, May 17, 2013 at 12:06 PM, Josh Berkus <josh@agliodbs.com> wrote: >>>>>>>>> Can we add Levenshtein-Damerau edit distance since it is used in >>>>>>>>> spelling checker >>>>>>>>> instead of levenshtein edit distance? >>>>>>>> Patches welcome! You, too, can be a PostgreSQL contributor. >>>>>>>> >>>>>>>> However, you will need to preserve the ability of users to use the old >>>>>>>> levenshtien algorithm as well, for backwards-compatibility. Shouldn't >>>>>>>> be hard, just add a new function called levenshtiend(). >>>>>>> I am working on it, I will make it this weekend project. >>>>>> >>>>>> I have done that. and put the code at github: >>>>>> https://github.com/liminghu/fuzzystrmatch >>>>>> >>>>>> liming@liming-UX31A:~/Downloads/postgresql-9.1.9/contrib/fuzzystrmatch$ >>>>>> sudo cp fuzzystrmatch.so >>>>>> /usr/lib/postgresql/9.1/lib/fuzzystrmatch.so >>>>>> liming@liming-UX31A:~/Downloads/postgresql-9.1.9/contrib/fuzzystrmatch$ >>>>>> sudo /etc/init.d/postgresql restart >>>>>> >>>>>> * Restarting PostgreSQL 9.1 database server >>>>>> >>>>>> [ OK ] >>>>>> >>>>>> >>>>>> select dameraulevenshteinnocompatible('cta', 'cat',1,1,1,1); >>>>>> CREATE EXTENSION fuzzystrmatch; >>>>>> >>>>>> ********** Error ********** >>>>>> >>>>>> ERROR: could not load library >>>>>> "/usr/lib/postgresql/9.1/lib/fuzzystrmatch.so": >>>>>> /usr/lib/postgresql/9.1/lib/fuzzystrmatch.so: undefined symbol: >>>>>> damerau_levenshtein_internal_noncompatible >>>>>> >>>>>> Any one can help me on this? Thanks. >>>>> The system is not able to find the required library, and I dont think >>>>> using cp to place the library is a very good idea.Did you run Make >>>>> Install after you added your work in the Makefile? >>>> >>>> I did not run make install. I am running a stable postgresql in my laptop, I do not >>>> want to reinstall everything, just want to try this contribution. I am afraid >>>> reinstall it will destroy my configurations, and databases, just do not want to mess up. >>>> did you see any thing wrong: >>>> https://github.com/liminghu/fuzzystrmatch/blob/master/fuzzystrmatch--1.0.sql >>>> https://github.com/liminghu/fuzzystrmatch/blob/master/fuzzystrmatch--unpackaged--1.0.sql >>>> https://github.com/liminghu/fuzzystrmatch/blob/master/fuzzystrmatch.c >>>> https://github.com/liminghu/fuzzystrmatch/blob/master/dameraulevenshtein.c >>>> https://github.com/liminghu/fuzzystrmatch/blob/master/ >>> >>> >>> >>> You need not reinstall your entire database for installing/re installing an extension.Running make install from the extension'sdirectory(after placing it in /contrib of a postgres database source directory) will install the extension inyour current database without breaking anything. >> >> You mean: >> liming@liming-UX31A:~/Downloads/postgresql-9.1.9/contrib/fuzzystrmatch$ >> make install >> ? >> >> > > Yes,although,I would run make clean before running make install,just for ensuring that all runs well. > liming@liming-UX31A:~/Downloads/postgresql-9.1.9/contrib/fuzzystrmatch$ sudo make clean rm -f fuzzystrmatch.so libfuzzystrmatch.a rm -f fuzzystrmatch.o dmetaphone.o liming@liming-UX31A:~/Downloads/postgresql-9.1.9/contrib/fuzzystrmatch$ sudo make install gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fpic -I. -I. -I../../src/include -D_GNU_SOURCE -c -o fuzzystrmatch.o fuzzystrmatch.c In file included from fuzzystrmatch.c:250:0: dameraulevenshtein.c: In function ‘damerau_levenshtein_internal’: dameraulevenshtein.c:290:57: warning: unused variable ‘trans’ [-Wunused-variable] dameraulevenshtein.c:328:57: warning: unused variable ‘trans’ [-Wunused-variable] In file included from fuzzystrmatch.c:253:0: dameraulevenshtein.c: In function ‘damerau_levenshtein_less_equal_internal’: dameraulevenshtein.c:290:57: warning: unused variable ‘trans’ [-Wunused-variable] dameraulevenshtein.c:328:57: warning: unused variable ‘trans’ [-Wunused-variable] dameraulevenshtein.c: In function ‘dameraulevenshtein_with_costs_noncompatible’: dameraulevenshtein.c:480:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] dameraulevenshtein.c:494:10: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] fuzzystrmatch.c: In function ‘damerau_levenshtein_with_costs_noncompatible’: fuzzystrmatch.c:266:2: warning: implicit declaration of function ‘damerau_levenshtein_internal_noncompatible’ [-Wimplicit-function-declaration] fuzzystrmatch.c: At top level: dameraulevenshtein.c:40:12: warning: ‘dameraulevenshtein_internal’ declared ‘static’ but never defined [-Wunused-function] dameraulevenshtein.c:37:12: warning: ‘dameraulevenshtein_less_equal_internal’ declared ‘static’ but never defined [-Wunused-function] dameraulevenshtein.c:464:12: warning: ‘dameraulevenshtein_with_costs_noncompatible’ defined but not used [-Wunused-function] gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fpic -I. -I. -I../../src/include -D_GNU_SOURCE -c -o dmetaphone.o dmetaphone.c gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fpic -shared -o fuzzystrmatch.so fuzzystrmatch.o dmetaphone.o -L../../src/port -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql/lib',--enable-new-dtags /bin/mkdir -p '/usr/local/pgsql/lib' /bin/mkdir -p '/usr/local/pgsql/share/extension' /bin/mkdir -p '/usr/local/pgsql/share/extension' /bin/sh ../../config/install-sh -c -m 755 fuzzystrmatch.so '/usr/local/pgsql/lib/fuzzystrmatch.so' /bin/sh ../../config/install-sh -c -m 644 ./fuzzystrmatch.control '/usr/local/pgsql/share/extension/' /bin/sh ../../config/install-sh -c -m 644 ./fuzzystrmatch--1.0.sql ./fuzzystrmatch--unpackaged--1.0.sql '/usr/local/pgsql/share/extension/' liming@liming-UX31A:~/Downloads/postgresql-9.1.9/contrib/fuzzystrmatch$ After that: CREATE EXTENSION fuzzystrmatch; select dameraulevenshteinnocompatible('cta', 'cat',1,1,1,1); ERROR: function dameraulevenshteinnocompatible(unknown, unknown, integer, integer, integer, integer) does not exist LINE 1: select dameraulevenshteinnocompatible('cta', 'cat',1,1,1,1); ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. ********** Error ********** ERROR: function dameraulevenshteinnocompatible(unknown, unknown, integer, integer, integer, integer) does not exist SQL state: 42883 Hint: No function matches the given name and argument types. You might need to add explicit type casts. Character: 8 any more suggestion? Thanks, Liming > Regards, > > Atri -- Liming Hu cell: (435)-512-4190 Seattle Washington
В списке pgsql-hackers по дате отправления: