Thread: Problem calling setweight function from JDBC
Hello, I have a call to setweight function in a PreparedStatement with the following sql: update my_table set a_text_data=setweight(to_tsvector(? :: regconfig, ?), ? :: char) Later I set the parameters: stmt.setString(1, language); stmt.setString(2, textToIndex); stmt.setString(3, weight); But the call fails with: "ERROR: function setweight(tsvector, character) does not exist" I had very similar error with ts_vector where the cast to regconfig helped, but not in this case. Inspecting the setweightfunction in system catalogs shows that parameters are tsvector and char. What am I doing wrong? Thanks in advance, Viliam
=?UTF-8?B?VmlsaWFtIMSOdXJpbmE=?= <viliam.durina@kios.sk> writes: > I have a call to setweight function in a PreparedStatement with the following sql: > update my_table set a_text_data=setweight(to_tsvector(? :: regconfig, ?), ? :: char) Make that ::"char" not ::char ... the quotes matter here, because char without quotes is a keyword. regards, tom lane
Thank you, this helped. Viliam On 24.3.2011 16:08, Tom Lane wrote: > =?UTF-8?B?VmlsaWFtIMSOdXJpbmE=?=<viliam.durina@kios.sk> writes: >> I have a call to setweight function in a PreparedStatement with the following sql: > >> update my_table set a_text_data=setweight(to_tsvector(? :: regconfig, ?), ? :: char) > > Make that ::"char" not ::char ... the quotes matter here, because char > without quotes is a keyword. > > regards, tom lane