Thank you for your reply.
select int4(b'1001')::bit(32); gives the same result as what you gave.
select int4(b'1001')::bit(4); gives the upper four bits, which are all
zeroes. How would I get the lower four bits? I building bitmaps using
plpgsql, and therefore, I will be doing a lot bit manipulation.
Thanks,
Yasir
On Sun, 16 Nov 2003, Stephan Szabo wrote:
> Date: Sun, 16 Nov 2003 21:40:45 -0800 (PST)
> From: Stephan Szabo <sszabo@megazone.bigpanda.com>
> To: Yasir Malik <ymalik@cs.stevens-tech.edu>
> Cc: pgsql-sql@postgresql.org
> Subject: Re: [SQL] Addition and subtraction on BIT type
>
> On Sun, 16 Nov 2003, Yasir Malik wrote:
>
> > I think I am almost at a solution to my last question. I can do
> > select int4(a) from test;
> > to convert to an integer. So now addition and
> > subtraction can be done between bit types. But how do I convert back to
> > BIT type? If I do
> > select bit(int4(b'1001'));
> >
> > I get the following message:
> > ERROR: parser: parse error at or near "int4" at character 12
> >
> > Can anyone tell me why the bit function is not working? It's under the
> > pg_catalog schema.
>
> It's also the name of a type that takes a precision in parentheses, so
> you'd have to say "bit"(...) with the quotes. As a note, I think
> that's going to effectively return you a bit(32), so
>
> sszabo=# select "bit"(int4(b'1001'));
> bit
> ----------------------------------
> 00000000000000000000000000001001
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>