Re: operator is not unique: integer || integer
От | Tino Wildenhain |
---|---|
Тема | Re: operator is not unique: integer || integer |
Дата | |
Msg-id | 481F5E7D.30609@wildenhain.de обсуждение исходный текст |
Ответ на | Re: operator is not unique: integer || integer (Daniel Schuchardt <daniel_schuchardt@web.de>) |
Ответы |
Re: operator is not unique: integer || integer
|
Список | pgsql-general |
Daniel Schuchardt wrote: > Tino Wildenhain schrieb: >> Hi, >> >> Daniel Schuchardt wrote: >> ... >>> in 81: >>> >>> postgres=# SELECT 1::INTEGER||1::INTEGER; >>> ?column? >>> ---------- >>> 11 >>> (1 row) >> >> *shudder* is this actually a port of an application originally >> targeted at M*Sql? ;) >> >> Are you using those columns somewhere with their real type - as >> integer? I mean if you use them as text everywhere why not change >> the type once? >> >> T. > *g* > > yes, sure we have to CAST it now. thats no problem. but the problem is > to find all the places where to cast. and you see that there are many > possiblilitys. > > another example?: > > RAISE NOTICE "error during validation % :", > 'ks:"'||ks||'"@"'||loopdate||'"'; (here LoopDate is a DateTime) > > another one: > > here we need to add 4 CASTS. you see..... > > CREATE OR REPLACE FUNCTION date_to_yearmonth_dec(TIMESTAMP) RETURNS > INTEGER AS $$ > DECLARE R INTEGER; > BEGIN > IF extract(month FROM $1)<11 THEN > R:=extract(year FROM $1)||0||extract(month FROM $1)-1; > ELSE > R:=extract(year FROM $1)||extract(month FROM $1)-1; > END IF; > RETURN R; > END$$LANGUAGE plpgsql IMMUTABLE; RETURN extract(year FROM $1)*100+extract(month FROM $1)-1; was too clean and easy? ;)) Looks like a good oportunity to clean up your code before anything unexpected happens :-) Cheers T.
Вложения
В списке pgsql-general по дате отправления: