Hi,

  I have no one to turn to. I've tried here & there but got no answer.
  Why is there is a problem creating unique indices on macaddr columns even
  if there ARE NO (checked by count on distinct,group by) duplicated keys ?

  And finally :

  create table tmac (i int4,mac macaddr);
  insert int table tmac (i) values (1);
  insert int table tmac (i) values (2);
  insert int table tmac (i) values (3);
  select * from tmac where mac='01:02:03:04:05:06';

  I get backend termination no matter if table has indices, is vacuumed ,
  is new or even just after the postgres instalation.

  HELP !

  Oh, I use 6.4.2 under i386 Redhat 5.2 Linux.

Pawel Pierscionek,



Mon, 22 Mar 1999 00:57:24 +0100
Pawel Pierscionek <pawel@astercity.net>
macaddr stuff !
> Hi,
> 
>   I have no one to turn to. I've tried here & there but got no answer.
>   Why is there is a problem creating unique indices on macaddr columns even
>   if there ARE NO (checked by count on distinct,group by) duplicated keys ?
> 
>   And finally :
> 
>   create table tmac (i int4,mac macaddr);
>   insert int table tmac (i) values (1);
>   insert int table tmac (i) values (2);
>   insert int table tmac (i) values (3);
>   select * from tmac where mac='01:02:03:04:05:06';
> 

Yes, I can reproduce it here.  Looks like a bug.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Sun, 21 Mar 1999 23:45:14 -0500 (EST)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] macaddr stuff !u
> Hi,
> 
>   I have no one to turn to. I've tried here & there but got no answer.
>   Why is there is a problem creating unique indices on macaddr columns even
>   if there ARE NO (checked by count on distinct,group by) duplicated keys ?
> 
>   And finally :
> 
>   create table tmac (i int4,mac macaddr);
>   insert int table tmac (i) values (1);
>   insert int table tmac (i) values (2);
>   insert int table tmac (i) values (3);
>   select * from tmac where mac='01:02:03:04:05:06';

I have fixed the problem in the current development tree.  The problem
is nulls in that IP field.

I added PointerIsValid() checks to backend/utils/adt/mac.c.

This will be fixed in 6.5 beta.  This was a known problem with the INET
types, but I did not realize how bad it was.

[D'Arcy, I just added PointerIsValid() checks that were similar to other
type routines.]

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Mon, 22 Mar 1999 00:04:57 -0500 (EST)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] macaddr stuff !
Thus spake Bruce Momjian
> I have fixed the problem in the current development tree.  The problem
> is nulls in that IP field.
> 
> I added PointerIsValid() checks to backend/utils/adt/mac.c.
> 
> This will be fixed in 6.5 beta.  This was a known problem with the INET
> types, but I did not realize how bad it was.
> 
> [D'Arcy, I just added PointerIsValid() checks that were similar to other
> type routines.]

Yes, this was the issue I was mentioning to you the other day in IRC.
Remember I submitted a patch to network.c but we agreed that the proper
fix is higer up in the code.  The problem is that any function taking
a null arg should return null but in the code as it stands now we don't
check that until after the function has been called.  The result is that
we have all sorts of code in the package that has to deal with null
arguments just so the result can be thrown away after the function
returns.  What we need to do is identify the places where the function
is dispatched and deal with the null args there before calling them.  I
tried finding these places but it wasn't so easy.  Has anyone else been
looking at this part of the code?

-- 
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 424 2871     (DoD#0082)    (eNTP)   |  what's for dinner.

Mon, 22 Mar 1999 06:56:24 -0500 (EST)
"D'Arcy" "J.M." Cain <darcy@druid.net>
Re: [HACKERS] macaddr stuff !