| From: | Kevin Grittner <kgrittn(at)ymail(dot)com> | 
|---|---|
| To: | Rémi Cura <remi(dot)cura(at)gmail(dot)com>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> | 
| Cc: | "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org> | 
| Subject: | Re: BUG #8317: ROUND(double*1/2) != ROUND(1/2*double) | 
| Date: | 2013-07-30 21:17:36 | 
| Message-ID: | 1375219056.72045.YahooMailNeo@web162903.mail.bf1.yahoo.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-bugs | 
Rémi Cura <remi(dot)cura(at)gmail(dot)com> wrote:
> According to the doc
> ( http://www.postgresql.org/docs/9.2/static/sql-syntax-lexical.html#SQL-SYNTAX-OPERATORS ),
> multiplication has precedence on division. (I supposed it implicitely)
The correct link is:
http://www.postgresql.org/docs/9.2/static/sql-syntax-lexical.html#SQL-PRECEDENCE-TABLE
And it shows multiplication, division, and modulo as having equal
precedence, with left-to-right associativity.
> So anyway the query is parsed as ( 1/ (2*3.2)) and ( 3.2*1) / 2 ),
No, it is ((1 / 2) * 3.2) and ((3.2 * 1) / 2).
Those evaluate to (0 * 3.2) and (3.2 / 2), respectively.
--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paquier | 2013-07-30 21:25:21 | Re: BUG #8345: PostGre SQL database is crashing | 
| Previous Message | Warwick Chapman | 2013-07-30 20:39:11 | Re: PostgreSQL and OpenVZ |