[pgsql-jp: 31849] Re: PostgreSQL7.4 の cidr について

ISHIDA Akio iakio @ pjam.jpweb.net
2003年 12月 21日 (日) 16:41:06 JST


こんにちは。石田@苫小牧市です。

ohtani miyuki wrote:

> FreeBSD 4.9 Release に PostgreSQL 7.4 を install しました。
> 
> psql を起動して以下のように sql を実行したところ、
> このような結果が出ました。
> 
> test=# select '192.168.100.128/20'::CIDR;
>         cidr
> --------------------
>  192.168.100.128/20
> (1 row)
(中略)
> 
> ためしに、少々 ver. が古いのですが
> FreeBSD 4.5 Release に install した PostgreSQL 7.2.2 で同様に行ったところ、
> 
> test=# select '192.168.100.128/20'::CIDR;
> ERROR:  invalid CIDR value '192.168.100.128/20': has bits set to right of mask
> 
> となりました。
> PostgreSQL7.4 での動作は正しいものなのでしょうか ?

7.3 あたりでも ERROR になりますね。7.4 のバグのような気がします。

--- src/backend/utils/adt/network.c.org Mon Sep 29 09:05:25 2003
+++ src/backend/utils/adt/network.c     Sun Dec 21 13:26:34 2003
@@ -929,7 +929,7 @@
        if (bits == maxbits)
                return true;

-       byte = (bits + 7) / 8;
+       byte = bits / 8;
        nbits = bits % 8;
        mask = 0xff;
        if (bits != 0)

が正解だと思うのですが。
誰か検証と本家へ報告お願いできませんか?
-- 
ISHIDA Akio<iakio @ pjam.jpweb.net>





pgsql-jp メーリングリストの案内