diff options
author | Sean Griffin <sean@thoughtbot.com> | 2015-01-10 12:24:10 -0700 |
---|---|---|
committer | Sean Griffin <sean@thoughtbot.com> | 2015-01-10 12:26:51 -0700 |
commit | 7a09fc55c0d89f6a672c79fdd9787c51a85a06fc (patch) | |
tree | 9fd483146de0f535845889d7eb917e287f42df36 | |
parent | 4d5e6607899832bde1365bdd4f7617a24bca4561 (diff) | |
download | rails-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.md | 5 | ||||
-rw-r--r-- | activerecord/lib/active_record/log_subscriber.rb | 4 | ||||
-rw-r--r-- | activerecord/test/cases/log_subscriber_test.rb | 7 |
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 |