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
Re: macaddr data type issue |
Список | 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 по дате отправления: