Re: macaddr data type issue

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: macaddr data type issue
Дата
Msg-id 9915.998419183@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: macaddr data type issue  (Justin Clift <justin@postgresql.org>)
Ответы Re: macaddr data type issue  (Alex Pilosov <alex@pilosoft.com>)
Re: macaddr data type issue  (Larry Rosenman <ler@lerctr.org>)
Список pgsql-general
Justin Clift <justin@postgresql.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

В списке pgsql-general по дате отправления:

Предыдущее
От: "Brent R. Matzelle"
Дата:
Сообщение: Re: New RPMS ?
Следующее
От: Jason Earl
Дата:
Сообщение: Re: time interval question