1

Temat: Migracja z Postgres 8.2 do 8.3 - problem z tsearch2.so ??

Witam.

  Mam problem podczas migracji postgresa z 8.2 na 8.3. A mianowicie w logach dostaje bledy typu jak ponizej:

ERROR:  could not find function "gtsq_in" in file "/usr/lib/postgresql/8.3/lib/tsearch2.so"
ERROR:  function public.gtsq_in(cstring) does not exist

ERROR: could not find function "tsquery_in" in file "/usr/lib/postgresql/8.3/lib/tsearch2.so"
ERROR:  function public.tsquery_in(cstring) does not exist

ERROR:  function "dex_init(internal)" does not exist
CONTEXT:  COPY pg_ts_dict, line 1, column dict_init: "dex_init(internal)"
ERROR:  function "prsd_getlexeme(internal,internal,internal)" does not exist
CONTEXT:  COPY pg_ts_parser, line 1, column prs_nexttoken: "prsd_getlexeme(internal,internal,internal)"

to sa tylko przykladowe bledy, bo jest ich duzo wiecej i powtarzaja sie. ;\

Po odpaleniu strony, czesc rzeczy dziala, ale przy niektorych zapytaniach wyswietla bledy typu:

Database operation "select" failed (exception ERROR, "ERROR: function to_number(text, integer) does not exist LINE 7

co jest dla mnie zagadką ;/
1. Czy funkcje typu to_number, to_date itp. nie sa wbudowanymi f-cjami w plsql?
2. Czy znaleziona linijka (#check_function_bodies = on) w posgresql.conf ktora jest zakomentowana moze miec cos z tym wspolnego?

pozdrawiam
W.

2

Odp: Migracja z Postgres 8.2 do 8.3 - problem z tsearch2.so ??

\df to_number

3

Odp: Migracja z Postgres 8.2 do 8.3 - problem z tsearch2.so ??

SELECT to_number(to_char(CURRENT_TIMESTAMP, 'DD'),99) as data_dd from dual

4

Odp: Migracja z Postgres 8.2 do 8.3 - problem z tsearch2.so ??

OK, chyba za długo siedze w oracle'u smile.

A sprawdziłeś na bazie jak jest definiowana funkcje to_* i funkcje tsearchowe? (\df em)?

5

Odp: Migracja z Postgres 8.2 do 8.3 - problem z tsearch2.so ??

postgres=# \df to_number
                        List of functions
   Schema   |   Name    | Result data type | Argument data types 
------------+-----------+------------------+---------------------
 pg_catalog | to_number | numeric          | text, text
(1 row)

6

Odp: Migracja z Postgres 8.2 do 8.3 - problem z tsearch2.so ??

Funkcję,  ktore sa na mojej postawioanej na szybko bazie (standardowo zainstalowane)

postgres=# \df prsd*
                               List of functions
   Schema   |      Name      | Result data type |     Argument data types      
------------+----------------+------------------+------------------------------
 pg_catalog | prsd_end       | void             | internal
 pg_catalog | prsd_headline  | internal         | internal, internal, tsquery
 pg_catalog | prsd_lextype   | internal         | internal
 pg_catalog | prsd_nexttoken | internal         | internal, internal, internal
 pg_catalog | prsd_start     | internal         | internal, integer
postgres=# \df tsquery*
                         List of functions
   Schema   |    Name     | Result data type | Argument data types 
------------+-------------+------------------+---------------------
 pg_catalog | tsquery_and | tsquery          | tsquery, tsquery
 pg_catalog | tsquery_cmp | integer          | tsquery, tsquery
 pg_catalog | tsquery_eq  | boolean          | tsquery, tsquery
 pg_catalog | tsquery_ge  | boolean          | tsquery, tsquery
 pg_catalog | tsquery_gt  | boolean          | tsquery, tsquery
 pg_catalog | tsquery_le  | boolean          | tsquery, tsquery
 pg_catalog | tsquery_lt  | boolean          | tsquery, tsquery
 pg_catalog | tsquery_ne  | boolean          | tsquery, tsquery
 pg_catalog | tsquery_not | tsquery          | tsquery
 pg_catalog | tsquery_or  | tsquery          | tsquery, tsquery
 pg_catalog | tsqueryrecv | tsquery          | internal
 pg_catalog | tsquerysend | bytea            | tsquery

Sprawdź jak to wygląda u Ciebie i będziesz miał rozwiązanie swojego problemu.

7

Odp: Migracja z Postgres 8.2 do 8.3 - problem z tsearch2.so ??

Huh ... poradzilem sobie ... ale olalem te bledy ...

Wszystko dziala poprawnie ... musze tylko w samej aplikacji pozmianiac niektore funkcje bo np:

to_number('1234', 9999)

jest niepoprawnie zapisane w 8.3 powinno byc:

to_number('1234', '9999')

A tak poza tym do doinstalowalem pl slownik do tsercha i wyniki sa oszalamiajace ->

zapytanie bez tsearch: 116.418 ms
zapytanie z tsearch: 3.385 ms

wink pozdrawiam wink