Re: binary operators on integers
От | Bruce Momjian |
---|---|
Тема | Re: binary operators on integers |
Дата | |
Msg-id | 200101192130.QAA12409@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: binary operators on integers (Peter Eisentraut <peter_e@gmx.net>) |
Ответы |
Re: binary operators on integers
|
Список | pgsql-patches |
Looks like this is fixed: test=> select 5 & ~ 6; ERROR: Unable to identify a right operator '&' for type 'int4' You may need to add parentheses or an explicit cast test=> select 5 & (~ 6); ?column? ---------- 1 (1 row) > This patch was installed, with xor as "#". The parser still needs work. > Besides the known issue of "|", this also parses funny: > > => select 5 & ~ 6; > ERROR: Unable to identify a right operator '&' for type 'int4' > > > Marko Kreen writes: > > > Here is my next take on binary operators for integers. > > It implements the following operators for int2/int4/int8: > > > > ~ - not > > & - and > > ^ - xor > > | - or > > << - shift left > > >> - shift right > > > > Notes: > > > > * My original choice for xor was '#' because the '^' operator conflicts > > with power operator on floats but Tom Lane said: > > > > > Well, you *could* use '^' since there's no definition of it for integer > > > operands. But that would mean that something like '4^2', which was > > > formerly implicitly coerced to float and interpreted as floating > > > power function, would suddenly mean something different. Again a > > > serious risk of silently breaking applications. This doesn't apply to > > > '|' though, since it has no numeric interpretation at all right now. > > > > As the bit-string uses '^' too for xor-ing it would be nice to be > > consistent. I am quite unsure on this matter. The patch now seems > > otherwise sane to me, this is the only issue left. > > > > * On << and >> the second argument is always int32 as this seems > > to be the 'default' int type in PostgreSQL. > > > > * Oids used are 1874 - 1909. > > > > Comments? > > > > Patch is against current CVS. > > > > > > -- > Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/ > > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
В списке pgsql-patches по дате отправления: