Nacky - Snowland.net

Nacky(Issei Ishii)がDJ/Composerのようなふりして書き散らすblogサイト

Info

Nacky - Snowland.net - blogを移転しました

2007-06-19

postgresql7でbit_or

potgresql8にはbit_orという集約関数があって,微妙な用途ではありますが使える関数です.
しかしpotgresql7にはそれがありませぬ!

ということで,自作.
CREATE FUNCTION bit_or_two(bigint,bigint)
RETURNS bigint
AS 'SELECT coalesce($1,0) | coalesce($2,0);'
LANGUAGE SQL
IMMUTABLE
CALLED ON NULL INPUT
;

CREATE AGGREGATE bit_or (
BASETYPE = bigint
, STYPE = bigint
, SFUNC = bit_or_two
, INITCOND = 0
);
まず2つの引数のorを取る関数を作成.NULLは0扱いになるようにしておきます.それを使ったAGGREGATEを作成して,完成.
型はもうちょっと厳密に判定したほうがいいかもしれない(今回はbigintだけだったのでこれで済ませてますが).

posted at 14:24:57 on 2007-06-19 by nacky - Category: Com/Tech

ソニーストア

TrackBack

このエントリにトラックバックはありません
トラックバックURL

Comments

No comments yet

Add Comments