Мне нужно выполнить определенные побитовые сравнения MAC-адресов, которые я сохранил в PostgreSQL как macaddr
, но, насколько я могу судить, нет ничего, что позволило бы мне это сделать (за исключением разбора строки MAC в шестнадцатеричное число, которое кажется будет не очень эффектно).
Есть ли в PostgreSQL способ эффективно проводить такое сравнение или эффективно преобразовывать MAC-адреса в числовое или битовое представление, которое затем можно было бы сравнивать?
Следующее работает, но для этого требуется немало манипуляций со строками:
select ('x'||replace(macaddr_field::varchar,':',''))::bit(48);