Roman Kononov napsal(a):
The following bug has been logged online:

Bug reference:      4114
Logged by:          Roman Kononov
Email address:      [EMAIL PROTECTED]
PostgreSQL version: 8.3.1
Operating system:   x86_64 GNU/Linux
Description:        Inconsistent shift operator
Details:
The below test cases show the obvious inconsistency between different
integer types.

test=# \t
Showing only tuples.
test=# select 1::int2 << 17;
         0

test=# select 1::int4 << 33;
         2

test=# select 1::int8 << 65;
         2

test=# select 2::int2 >> 17;
         0

test=# select 2::int4 >> 33;
         1

test=# select 2::int8 >> 65;
         1

It seems to be OK regarding how C shift operator works. Try

#include <stdio.h>
#include <inttypes.h>

void fce(int16_t arg1, int32_t arg2)
{
        int16_t res = arg1 << arg2;
        printf("result: %i\n", res);
}

int main()
{
        fce(1,17);
        return 0;
}



                Zdenek

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to