Skip to content
Browse files

PostgreSQL adapter: escape_bytea, quote_string and unescape_bytea are…

…n't thread-safe in Ruby 1.8 [#3237 state:resolved]

Signed-off-by: wycats <wycats@gmail.com>
  • Loading branch information...
1 parent c401102 commit cec44f58388755dec8d4e739e0a3bc3263a7fe3f @libc libc committed with jeremy Sep 20, 2009
Showing with 6 additions and 6 deletions.
  1. +6 −6 activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
View
12 activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
@@ -298,7 +298,7 @@ def table_alias_length
# QUOTING ==================================================
# Escapes binary strings for bytea input to the database.
- def escape_bytea(value)
+ def escape_bytea(original_value)
if @connection.respond_to?(:escape_bytea)
self.class.instance_eval do
define_method(:escape_bytea) do |value|
@@ -322,13 +322,13 @@ def escape_bytea(value)
end
end
end
- escape_bytea(value)
+ escape_bytea(original_value)
end
# Unescapes bytea output from a database to the binary string it represents.
# NOTE: This is NOT an inverse of escape_bytea! This is only to be used
# on escaped binary output from database drive.
- def unescape_bytea(value)
+ def unescape_bytea(original_value)
# In each case, check if the value actually is escaped PostgreSQL bytea output
# or an unescaped Active Record attribute that was just written.
if PGconn.respond_to?(:unescape_bytea)
@@ -368,7 +368,7 @@ def unescape_bytea(value)
end
end
end
- unescape_bytea(value)
+ unescape_bytea(original_value)
end
# Quotes PostgreSQL-specific data types for SQL input.
@@ -393,7 +393,7 @@ def quote(value, column = nil) #:nodoc:
end
# Quotes strings for use in SQL input in the postgres driver for better performance.
- def quote_string(s) #:nodoc:
+ def quote_string(original_value) #:nodoc:
if @connection.respond_to?(:escape)
self.class.instance_eval do
define_method(:quote_string) do |s|
@@ -413,7 +413,7 @@ def quote_string(s) #:nodoc:
remove_method(:quote_string)
end
end
- quote_string(s)
+ quote_string(original_value)
end
# Checks the following cases:

0 comments on commit cec44f5

Please sign in to comment.
Something went wrong with that request. Please try again.