Обсуждение: converting from bigint to bit to use bitwise operators

Поиск
Список
Период
Сортировка

converting from bigint to bit to use bitwise operators

От
Aditya
Дата:
For historical reasons, I have IPv4 addresses stored as bigint and I would
like to convert them to dot-quad (ie. A.B.C.D) in a select. This is how I
would normally do it:

- remotehost is the IP address as a bigint

select ((remotehost::bit varying(32) >> 24) & 11111111) || '.' || ((remotehost::bit varying(32) & 11111100) >> 16) ||
'.'|| ((remotehost::bit varying(32) & 11110000) >>  8) || '.' || ((remotehost::bit varying(32) & 11000000)) as ip,
httpquery
fromweblogs
;

however this complains:
 ERROR:  Cannot cast type 'bigint' to 'bit varying'

hints?

Thanks,
Adi