Re: Cast for text->Integer missing in 8.3.5
От | Aleksander Kmetec |
---|---|
Тема | Re: Cast for text->Integer missing in 8.3.5 |
Дата | |
Msg-id | 496CC694.2000103@intera.si обсуждение исходный текст |
Ответ на | Cast for text->Integer missing in 8.3.5 ("Nykolyn, Andrew" <andrew.nykolyn@ngc.com>) |
Ответы |
Re: Cast for text->Integer missing in 8.3.5
|
Список | pgsql-general |
Nykolyn, Andrew wrote: > I am trying to upgrade my Postgres server from 8.2.3 to 8.3.5 and have > found that the cast text->integer and integer->text are missing. Is > there a reason why they are not there and how can I get them back. I > have many stored procedures that rely on those casts I'm right in the middle of trying to solve the same problem, myself. I started with this link: http://code.open-bio.org/svnweb/index.cgi/biosql/revision?rev=284 But that wasn't enough. In fact, it broke some things that worked before I added the missing implicit casts. Like this, for example: select 123::double precision || 'abc'; ERROR: operator is not unique: double precision || unknown So I also had to define "||(double precision, text)" and "||(text, double precision)" operators. I'm not sure how much additional work might be needed, but here's what I have so far for adding backwards compatility for "double precision" datatype: CREATE FUNCTION pg_catalog.text(double precision) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(float8out($1));'; CREATE CAST (double precision AS text) WITH FUNCTION pg_catalog.text(double precision) AS IMPLICIT; CREATE FUNCTION pg_catalog.compat_textcat(double precision, text) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textcat(CAST($1 AS TEXT), $2);'; CREATE FUNCTION pg_catalog.compat_textcat(text, double precision) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textcat($1, CAST($2 AS TEXT));'; CREATE OPERATOR pg_catalog.|| ( PROCEDURE = compat_textcat, LEFTARG = double precision, RIGHTARG = text ); CREATE OPERATOR pg_catalog.|| ( PROCEDURE = compat_textcat, LEFTARG = text, RIGHTARG = double precision ); Regards, Aleksander
В списке pgsql-general по дате отправления: