converting from bigint to bit to use bitwise operators

From: Aditya <aditya(at)grot(dot)org>
To: pgsql-sql(at)postgresql(dot)org
Subject: converting from bigint to bit to use bitwise operators
Date: 2003-04-18 19:11:23
Message-ID: 20030418191123.GA44801@mighty.grot.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

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
from
weblogs
;

however this complains:

ERROR: Cannot cast type 'bigint' to 'bit varying'

hints?

Thanks,
Adi

Browse pgsql-sql by date

  From Date Subject
Next Message Yudie 2003-04-18 20:57:32 How to retrieve object definition?
Previous Message Tzvetan Tzankov 2003-04-18 09:06:10 Deadlock problem