diff options
author | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2008-02-16 20:55:29 -0800 |
---|---|---|
committer | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2008-02-16 20:55:29 -0800 |
commit | 7354602f6f11db09f7e58a833dcf9cb141abf50a (patch) | |
tree | 460f08b06d53560c024072119511cc5992206bd3 | |
parent | 99b2188f9495068399000b891c2c9b66331c4b02 (diff) | |
download | rails-7354602f6f11db09f7e58a833dcf9cb141abf50a.tar.gz rails-7354602f6f11db09f7e58a833dcf9cb141abf50a.tar.bz2 rails-7354602f6f11db09f7e58a833dcf9cb141abf50a.zip |
adding support for scalar selects
-rw-r--r-- | lib/active_relation/sql.rb | 4 | ||||
-rw-r--r-- | spec/active_relation/predicates/binary_spec.rb | 2 | ||||
-rw-r--r-- | spec/active_relation/relations/projection_spec.rb | 6 |
3 files changed, 9 insertions, 3 deletions
diff --git a/lib/active_relation/sql.rb b/lib/active_relation/sql.rb index bc658271c3..0384de44ef 100644 --- a/lib/active_relation/sql.rb +++ b/lib/active_relation/sql.rb @@ -18,7 +18,7 @@ module ActiveRelation end def select(select_sql, aliaz) - "(#{select_sql}) AS #{quote_column_name(aliaz)}" + "(#{select_sql})" + (aliaz ? " AS #{quote_column_name(aliaz)}" : "") end end @@ -44,7 +44,7 @@ module ActiveRelation class Aggregation < Strategy def select(select_sql, aliaz) - "(#{select_sql}) AS #{quote_table_name(aliaz)}" + "(#{select_sql}) AS #{quote_table_name(aliaz)}" end end diff --git a/spec/active_relation/predicates/binary_spec.rb b/spec/active_relation/predicates/binary_spec.rb index 127375f24c..89a40d2bf3 100644 --- a/spec/active_relation/predicates/binary_spec.rb +++ b/spec/active_relation/predicates/binary_spec.rb @@ -41,7 +41,7 @@ module ActiveRelation end describe '#to_sql' do - it 'manufactures correct sql' do + it 'manufactures sql with a binary operation' do ConcreteBinary.new(@attribute1, @attribute2).to_sql.should be_like(""" `users`.`id` <=> `photos`.`id` """) diff --git a/spec/active_relation/relations/projection_spec.rb b/spec/active_relation/relations/projection_spec.rb index 739a16c8ef..2bc4ed1d6e 100644 --- a/spec/active_relation/relations/projection_spec.rb +++ b/spec/active_relation/relations/projection_spec.rb @@ -44,6 +44,12 @@ module ActiveRelation FROM `users` """) end + + it "manufactures sql with scalar selects" do + Projection.new(@relation, Projection.new(@relation, @relation[:name])).to_sql.should be_like(""" + SELECT (SELECT `users`.`name` FROM `users`) FROM `users` + """) + end end end end
\ No newline at end of file |