Re: BUG #4114: Inconsistent shift operator
От | Zdenek Kotala |
---|---|
Тема | Re: BUG #4114: Inconsistent shift operator |
Дата | |
Msg-id | 480B88CE.3010202@sun.com обсуждение исходный текст |
Ответ на | BUG #4114: Inconsistent shift operator ("Roman Kononov" <kononov@dls.net>) |
Ответы |
Re: BUG #4114: Inconsistent shift operator
|
Список | pgsql-bugs |
Roman Kononov napsal(a): > The following bug has been logged online: > > Bug reference: 4114 > Logged by: Roman Kononov > Email address: kononov@dls.net > 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
В списке pgsql-bugs по дате отправления: