From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Justin Clift <justin(at)postgresql(dot)org> |
Cc: | Gayland Gump <gumpg(at)pacifier(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: macaddr data type issue |
Date: | 2001-08-21 18:39:43 |
Message-ID: | 9915.998419183@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Justin Clift <justin(at)postgresql(dot)org> writes:
> What you're attempting to insert is being interpreted as the NULL value
Actually, it's not NULL. The curious behavior comes from a test in the
macaddr_out routine that causes it to produce an empty-string display if
the MAC address is all zeroes:
if ((hibits(addr) > 0) || (lobits(addr) > 0))
{
sprintf(result, "%02x:%02x:%02x:%02x:%02x:%02x",
addr->a, addr->b, addr->c, addr->d, addr->e, addr->f);
}
else
{
result[0] = '\0'; /* special case for missing address */
}
This seems a tad bizarre to me, if not an outright bug. The right,
SQL-approved way to represent "missing data" is as a NULL; there's no
rationale I can see for treating an all-zeroes address like this.
There's also a special case in macaddr_in that accepts an empty input
string as meaning an all-zeroes address. This seems bogus as well.
I'm inclined to rip out both special cases, so that an all-zeroes MAC
address is handled exactly like any other address. Comments?
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Jason Earl | 2001-08-21 18:52:24 | Re: time interval question |
Previous Message | Gilles DAROLD | 2001-08-21 18:35:25 | Re: [HACKERS] Postgresql log analyzer |