December 25, 2009
Earlier this month I wrote a blog article that showed how Oracle behaves when the WHERE clause includes the predicate 1=2. But is the shortcut implemented by Oracle wrong? Will 1=2 never happen?
I attended a college course that covered just mathematical proofs (the name of the class escapes me at the moment – Discrete Mathematics?). The mathematics professor for that course proved that 1=2. That proof follows (I attempted to align the equal sign to make the proof easier to read):
Assumption: Let a = b 1. a^2 = a^2 2. a^2 = b^2 3. a^2 = b * b 4. a^2 = a * b 5. a^2 - b^2 = a * b - b^2 6. (a + b) * (a - b) = b * (a - b) 7. a + b = b 8. b + b = b 9. 2b = b 10. 2 = 1
Mathematical Explanation of the Above Steps: 1. Truth Statement 2. Substitution 3. Factor 4. Substitution 5. Subtract b^2 from Both Sides of the Equation 6. Factor 7. Divide Both Sides of the Equation by (a - b) 8. Substitution 9. Simplification 10. Divide Both Sides of the Equation by b
I think that there is a lesson in the above that may be applied to the understanding of Oracle databases. Let me ponder the lesson while you review the Faulty Quotes series of blog articles.
A couple references for mathematical proofs follow - how might the techniques of mathematical proofs be applied to understanding the logic built into Oracle Database?http://www.eiu.edu/~mathcs/mat2345/index/Webview/Slides/handout-Week02-2x3.pdf