aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2015-01-10 12:24:10 -0700
committerSean Griffin <sean@thoughtbot.com>2015-01-10 12:26:51 -0700
commit7a09fc55c0d89f6a672c79fdd9787c51a85a06fc (patch)
tree9fd483146de0f535845889d7eb917e287f42df36
parent4d5e6607899832bde1365bdd4f7617a24bca4561 (diff)
downloadrails-7a09fc55c0d89f6a672c79fdd9787c51a85a06fc.tar.gz
rails-7a09fc55c0d89f6a672c79fdd9787c51a85a06fc.tar.bz2
rails-7a09fc55c0d89f6a672c79fdd9787c51a85a06fc.zip
Stop special casing null binary data in logging
There's very little value in logging "<NULL binary data>" instead of just "nil". I'd like to remove the column from the equation entirely, and this case is preventing us from doing so.
-rw-r--r--activerecord/CHANGELOG.md5
-rw-r--r--activerecord/lib/active_record/log_subscriber.rb4
-rw-r--r--activerecord/test/cases/log_subscriber_test.rb7
3 files changed, 7 insertions, 9 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index c5f0e5022a..8875b7ae25 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,3 +1,8 @@
+* `nil` as a value for a binary column in a query no longer logs as
+ "<NULL binary data>", and instead logs as just "nil".
+
+ *Sean Griffin*
+
* `attribute_will_change!` will no longer cause non-persistable attributes to
be sent to the database.
diff --git a/activerecord/lib/active_record/log_subscriber.rb b/activerecord/lib/active_record/log_subscriber.rb
index eb64d197f0..a5c7279db9 100644
--- a/activerecord/lib/active_record/log_subscriber.rb
+++ b/activerecord/lib/active_record/log_subscriber.rb
@@ -22,10 +22,10 @@ module ActiveRecord
def render_bind(column, value)
if column
- if column.binary?
+ if column.binary? && value
# This specifically deals with the PG adapter that casts bytea columns into a Hash.
value = value[:value] if value.is_a?(Hash)
- value = value ? "<#{value.bytesize} bytes of binary data>" : "<NULL binary data>"
+ value = "<#{value.bytesize} bytes of binary data>"
end
[column.name, value]
diff --git a/activerecord/test/cases/log_subscriber_test.rb b/activerecord/test/cases/log_subscriber_test.rb
index a578e81844..97c0350911 100644
--- a/activerecord/test/cases/log_subscriber_test.rb
+++ b/activerecord/test/cases/log_subscriber_test.rb
@@ -125,12 +125,5 @@ class LogSubscriberTest < ActiveRecord::TestCase
wait
assert_match(/<16 bytes of binary data>/, @logger.logged(:debug).join)
end
-
- def test_nil_binary_data_is_logged
- binary = Binary.create(data: "")
- binary.update_attributes(data: nil)
- wait
- assert_match(/<NULL binary data>/, @logger.logged(:debug).join)
- end
end
end