function length(numeric) does not exist

Started by Ricardo Sardinhaover 11 years ago3 messagesbugs
Jump to latest
#1Ricardo Sardinha
ricardo.sardinha@ti.polynorte.com.br

Version: PostgreSQL 9.2.6, compiled by Visual C++ build 1600, 32-bit

When I try to use the function length occurs the error:

"ERRO: 42883: função length(numeric) não existe" (function length(numeric)
does not exist).

Then I try to create length function:

CREATE OR REPLACE FUNCTION length(tsvector)

RETURNS int4 AS

'$libdir/tsearch2', 'tsvector_length'

LANGUAGE 'c' IMMUTABLE STRICT;

ALTER FUNCTION length(tsvector) OWNER TO postgres;

But the return is:

----------------------------------------------------------------------------
----------------------------------------------------------------------------
--------

ERRO: não pôde encontrar função "tsvector_length" no arquivo "C:/Program
Files/PostgreSQL/9.2/lib/tsearch2.dll"

(could not find function "tsvector_length" in the file "C:/Program
Files/PostgreSQL/9.2/lib/tsearch2.dll")

********** Error **********

ERRO: não pôde encontrar função "tsvector_length" no arquivo "C:/Program
Files/PostgreSQL/9.2/lib/tsearch2.dll"

(could not find function "tsvector_length" in the file "C:/Program
Files/PostgreSQL/9.2/lib/tsearch2.dll")

SQL state: 42883

----------------------------------------------------------------------------
----------------------------------------------------------------------------
--------

I need the help!

Thanks!

#2Michael Paquier
michael@paquier.xyz
In reply to: Ricardo Sardinha (#1)
Re: function length(numeric) does not exist

On Sat, Nov 22, 2014 at 9:26 PM, Ricardo Sardinha <
ricardo.sardinha@ti.polynorte.com.br> wrote:

"ERRO: 42883: função length(numeric) não existe" (*function
length(numeric) **does not exist*).

length() is not able to accept numeric as input.
=# select length(123.45);
ERROR: 42883: function length(numeric) does not exist
LINE 1: select length(123.45);
You could cast it to text depending on what you want to do:
=# select length(123.45::text);
length
--------
6
(1 row)

Then I try to create *length* function:

CREATE OR REPLACE FUNCTION length(tsvector)

RETURNS int4 AS

'$libdir/tsearch2', 'tsvector_length'

LANGUAGE 'c' IMMUTABLE STRICT;

ALTER FUNCTION length(tsvector) OWNER TO postgres;

That's because this function is not defined in the extension tsearch2, but
is part of core, so you actually do not need to redefine it:
=# \dfS length
List of functions
Schema | Name | Result data type | Argument data types | Type
------------+--------+------------------+---------------------+--------
pg_catalog | length | integer | bit | normal
pg_catalog | length | integer | bytea | normal
pg_catalog | length | integer | bytea, name | normal
pg_catalog | length | integer | character | normal
pg_catalog | length | double precision | lseg | normal
pg_catalog | length | double precision | path | normal
pg_catalog | length | integer | text | normal
pg_catalog | length | integer | tsvector | normal
(8 rows)

Regards,
--
Michael

#3David G. Johnston
david.g.johnston@gmail.com
In reply to: Ricardo Sardinha (#1)
Re: function length(numeric) does not exist

Ricardo Sardinha wrote

Version: PostgreSQL 9.2.6, compiled by Visual C++ build 1600, 32-bit
"ERRO: 42883: função length(numeric) não existe" (function length(numeric)
does not exist).

Then I try to create length function:

CREATE OR REPLACE FUNCTION length(tsvector)

I'm confused...you try and pass a numeric into a length function and when
that doesn't work you go and create a length function that takes a tsvector?

Until you communicate what it is you are trying to accomplish and, ideally,
provide some code to help explain the same, it is going to be difficult to
provide you with help.

David J.

--
View this message in context: http://postgresql.nabble.com/function-length-numeric-does-not-exist-tp5828067p5828105.html
Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs