Precedence of bitwise operators
Hi! Do I get it right, that bitwise operations have the same precedence?
Query *SELECT 1 & 2 | 3, 3 | 1 & 2*
returns 3 and 2 respectively. See also
https://www.db-fiddle.com/f/iZHd8zG7A1HjbB6J2y8R7k/1. It looks like the
result is calculated from left to right and operators have
the same precedence.
I checked relevant documentation pages (
https://www.postgresql.org/docs/current/functions-bitstring.html and
https://www.postgresql.org/docs/current/sql-syntax-lexical.html) and
couldn't find any information about bitwise operations precedence, only
information about logical operations precedence.
I'm not saying it's a bug, rather trying to clarify as precedence of
bitwise operators is different in programming languages, say c++ (
https://en.cppreference.com/w/c/language/operator_precedence) or java (
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html)
Bauyrzhan Sakhariyev <baurzhansahariev@gmail.com> writes:
Hi! Do I get it right, that bitwise operations have the same precedence?
Yes, that is what the documentation says:
https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-PRECEDENCE
Operator precedence is hard-wired into our parser, so we don't get
to have a lot of flexibility in assigning precedences for any except
a very small set of operator names.
regards, tom lane