From 7b445c6dd578277f7313746fc497429a56e4b43c Mon Sep 17 00:00:00 2001
From: Brian Cardarella <bcardarella@gmail.com>
Date: Sun, 23 Jan 2011 11:54:00 -0500
Subject: Added MINUS for Oracle Aliased :minus to :except for the
 SelectManager

---
 lib/arel/select_manager.rb  | 1 +
 lib/arel/visitors/oracle.rb | 4 ++++
 2 files changed, 5 insertions(+)

(limited to 'lib/arel')

diff --git a/lib/arel/select_manager.rb b/lib/arel/select_manager.rb
index 77853ea854..0fa344945e 100644
--- a/lib/arel/select_manager.rb
+++ b/lib/arel/select_manager.rb
@@ -152,6 +152,7 @@ module Arel
     def except other
       Nodes::Except.new ast, other.ast
     end
+    alias :minus :except
 
     def with *subqueries
       if subqueries.first.is_a? Symbol
diff --git a/lib/arel/visitors/oracle.rb b/lib/arel/visitors/oracle.rb
index aaf0324fd7..3beea287a6 100644
--- a/lib/arel/visitors/oracle.rb
+++ b/lib/arel/visitors/oracle.rb
@@ -61,6 +61,10 @@ module Arel
         "raw_rnum_ > #{visit o.expr}"
       end
 
+      def visit_Arel_Nodes_Except o
+        "( #{visit o.left} MINUS #{visit o.right} )"
+      end
+
       ###
       # Hacks for the order clauses specific to Oracle
       def order_hacks o
-- 
cgit v1.2.3