Użyj wyraźnego rzutowania typu:
SELECT language, to_tsvector(language::regconfig, 'hello world') FROM languages;
Lub zmień kolumnę languages.language aby wpisać regconfig . Zobacz odpowiedź @Swav.
Dlaczego?
Postgres umożliwia przeciążanie funkcji. Sygnatury funkcji są definiowane przez ich (opcjonalnie schemat -kwalifikowany) nazwisko plus (lista) typ parametru wejściowego (s). Dwuparametrowa forma to_tsvector() oczekuje typu regconfig jako pierwszy parametr:
SELECT proname, pg_get_function_arguments(oid)
FROM pg_catalog.pg_proc
WHERE proname = 'to_tsvector'
proname | pg_get_function_arguments
-------------+---------------------------
to_tsvector | text
to_tsvector | regconfig, text -- you are here
Jeśli żadna istniejąca funkcja nie pasuje dokładnie , zasady rozpoznawania typów funkcji decydują o najlepszym dopasowaniu — jeśli takie istnieje. To się powiodło dla to_tsvector('english', 'hello world') , z 'english' będąc nieopisanym literałem ciągu . Ale kończy się niepowodzeniem z parametrem wpisanym varchar , ponieważ nie ma zarejestrowanego niejawnego rzutuj z varchar do regconfig . Instrukcja:
Odrzuć funkcje kandydujące, dla których typy danych wejściowych nie pasują i nie mogą zostać przekonwertowane (za pomocą niejawnego konwersji), aby dopasować. nieznane literały zakłada się, że w tym celu można je zamienić na cokolwiek.
Pogrubiony nacisk na kopalnię.
Zarejestrowane rzutowania dla regconfig :
SELECT castsource::regtype, casttarget::regtype, castcontext
FROM pg_catalog.pg_cast
WHERE casttarget = 'regconfig'::regtype;
castsource | casttarget | castcontext
------------+------------+-------------
oid | regconfig | i
bigint | regconfig | i
smallint | regconfig | i
integer | regconfig | i
Wyjaśnienie dla castcontext :
castcontext char
Wskazuje, w jakich kontekstach można wywoływać obsadę. e oznacza tylko jako jawne rzutowanie (za pomocą CAST lub :: składnia). a oznacza niejawnie w przypisaniu do kolumny docelowej, jak również jawnie. i oznacza niejawnie w wyrażeniach, jak również w innych przypadkach.
Przeczytaj więcej o trzech różnych typach zadań w rozdziale TWORZENIE ODS.