On Sat, Nov 22, 2014 at 9:26 PM, Ricardo Sardinha <
ricardo.sardinha@ti.polynorte.com.br> wrote:
> "ERRO: 42883: fun=E7=E3o length(numeric) n=E3o existe" (*function
> length(numeric) **does not exist*).
>
length() is not able to accept numeric as input.
=3D# 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:
=3D# 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:
=3D# \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,
--=20
Michael