Re: Tsearch2 removal bit me - how to correct?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 10/15/2017 14:49, Karl Denninger wrote:
On 10/15/2017 10:47, Tom Lane wrote:
Karl Denninger <karl@xxxxxxxxxxxxx> writes:
Attempting to migrate to 10.0 from 9.6, which has had "tsearch2" loaded
for backward compatibility since "forever" (which I suspect is no longer
really required as the capability is internal and has been for a long
time) results in this blowup logged in loadable_libraries.txt:
could not load library "$libdir/tsearch2": ERROR:  could not access file
"$libdir/tsearch2": No such file or directory
So what's causing this to be requested on startup and how do I kill it? 
Look for '$libdir/tsearch2' in the pg_proc.probin column of each
DB in the installation ...

			regards, tom lane
That worked on one of my clusters, but on another I'm seeing entries in pg_catalog, and can't remove them.

pgsql=# \c fapforum
You are now connected to database "fapforum" as user "pgsql".
fapforum=# select proname from pg_proc where probin like '%tsearch2%';
    proname
----------------
 prsd_end
 prsd_lextype
 prsd_start
 thesaurus_init
(4 rows)

fapforum=# \df prsd_end;
                            List of functions
   Schema   |   Name   | Result data type | Argument data types |  Type
------------+----------+------------------+---------------------+--------
 pg_catalog | prsd_end | void             | internal            | normal
(1 row)

fapforum=# drop function prsd_end(internal);
ERROR:  cannot drop function prsd_end(internal) because it is required by the database system

The others I can drop, but I wind up with these in each database... any idea where the piece is that the original package stuffed in that I need to get rid of so I can kill these?

This has also left me with an interesting other issue that is likely related.

The removal of the functions of course necessitated the removal of the gin indices I was using.  Ok, I understand that.  But the 9.6 documentation says this is valid:

SELECT to_tsvector('english','in the list of stop words');
But....

ticker=# select to_tsvector('english', 'in the list of stop words');
ERROR:  invalid input syntax for type oid: "english"
LINE 1: select to_tsvector('english', 'in the list of stop words');

Interestingly enough if I don't specify the language....
ticker=# select to_tsvector('in the list of stop words');
        to_tsvector
----------------------------
 'list':3 'stop':5 'word':6
(1 row)

Which is correct.  So it appears the internal functions are both there and working.

But, attempting to re-create the indices, omitting the language so it defaults, fails with a complaint that the operand function must be immutable.

ticker=# create index idx_message on post using gin(to_tsvector( message || ' ' || message2 || ' ' || message3));
ERROR:  functions in index _expression_ must be marked IMMUTABLE

That's not so good.....

Yes, the default is specified as english in postgresql.conf

default_text_search_config = 'pg_catalog.english'

I suspect the "remnants" of the previous module are doing this.... any ideas?

--
Karl Denninger
karl@xxxxxxxxxxxxx
The Market Ticker
[S/MIME encrypted email preferred]

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux