| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: Order of where clause matters!
Dave Wotton wrote:
>
> Sorry, not true. The documentation about operator precedence is possibly
> misleading.
>
> Although the Oracle7 docuementation says:
>
> "You can use parentheses in an expression to override operator
> precedence. Oracle7 evaluates expressions inside parentheses before
> evaluating those outside. "
>
Oracle 8 documentation says the same thing. However, considering the documentation misleading is being a bit courteous. Oracle's license (as does most software) has a clause warrenting that the software conforms to documented behaviour.
In the past, Oracle has accepted bug reports and provided patches on the non-conforming operator precedence issue. Unfortunately, such conformance costs processing overhead, so they routinely slide back to the non-conforming state. Dba's prefer the hit and miss/workaround in this case rather than accept the penalty of processing overhead. Generally, its not too much of an issue.
Your example takes advantage of Oracle's stack oriented parser. This behaviour in the parser is well known and such predictability is definitely of value. The original poster supplied an example where the divison had to be moved to the top of the where clause before it would work, directly conflicting with your example. As well, the behaviour changed when an index is mixed into the pot. The optimizer stikes again..
Basically, between the original poster's example and your example, Oracle demonstrates a distinct error (ie non-conformance to their documentated behaviour and lack of predictability and control). This can't be considered acceptable/normal. A bug report seems an appropriate course of action. Hope you (as a dba) or the dba looking after the original poster will take this on.
Evan Received on Wed May 31 2000 - 00:00:00 CDT
![]() |
![]() |