aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2012-05-16 11:27:24 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2012-05-16 11:27:24 -0700
commit2a67a8cc59a9d1443756d8af2437d52252b9094e (patch)
tree4eb02270c45208a683c0bc64e01545d7214416d7 /activerecord/lib
parent4025efb53bc64e9b4c5b32bf7a68ef2632ffd888 (diff)
parent279fef1f9fedf73d94fc09e34566b1c56ec04a4c (diff)
downloadrails-2a67a8cc59a9d1443756d8af2437d52252b9094e.tar.gz
rails-2a67a8cc59a9d1443756d8af2437d52252b9094e.tar.bz2
rails-2a67a8cc59a9d1443756d8af2437d52252b9094e.zip
Merge pull request #6136 from mhfs/sqlbypass_fixes
Bring SqlByPassTest to light and fix broken tests
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/session_store.rb15
1 files changed, 10 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/session_store.rb b/activerecord/lib/active_record/session_store.rb
index ed47a26749..5a256b040b 100644
--- a/activerecord/lib/active_record/session_store.rb
+++ b/activerecord/lib/active_record/session_store.rb
@@ -201,10 +201,10 @@ module ActiveRecord
class << self
alias :data_column_name :data_column
-
+
# Use the ActiveRecord::Base.connection by default.
attr_writer :connection
-
+
# Use the ActiveRecord::Base.connection_pool by default.
attr_writer :connection_pool
@@ -218,12 +218,12 @@ module ActiveRecord
# Look up a session by id and unmarshal its data if found.
def find_by_session_id(session_id)
- if record = connection.select_one("SELECT * FROM #{@@table_name} WHERE #{@@session_id_column}=#{connection.quote(session_id)}")
+ if record = connection.select_one("SELECT * FROM #{@@table_name} WHERE #{@@session_id_column}=#{connection.quote(session_id.to_s)}")
new(:session_id => session_id, :marshaled_data => record['data'])
end
end
end
-
+
delegate :connection, :connection=, :connection_pool, :connection_pool=, :to => self
attr_reader :session_id, :new_record
@@ -241,6 +241,11 @@ module ActiveRecord
@new_record = @marshaled_data.nil?
end
+ # Returns true if the record is persisted, i.e. it's not a new record
+ def persisted?
+ !@new_record
+ end
+
# Lazy-unmarshal session state.
def data
unless @data
@@ -287,7 +292,7 @@ module ActiveRecord
connect = connection
connect.delete <<-end_sql, 'Destroy session'
DELETE FROM #{table_name}
- WHERE #{connect.quote_column_name(session_id_column)}=#{connect.quote(session_id)}
+ WHERE #{connect.quote_column_name(session_id_column)}=#{connect.quote(session_id.to_s)}
end_sql
end
end