LP#1198465 Allow null fields to stay null in to_fieldmapper()
authorDan Wells <dbw2@calvin.edu>
Wed, 3 Dec 2014 19:21:16 +0000 (14:21 -0500)
committerDan Wells <dbw2@calvin.edu>
Mon, 8 Dec 2014 14:38:24 +0000 (09:38 -0500)
In CDBI.pm, we can convert DB objects to Fieldmapper objects using
to_fieldmapper().  Part of the conversion was forcing stringification,
which does what we need for nested objects, but also converts 'nulls'
(undefineds) to 'empty' values.  This causes problems when trying to
write these Fieldmapper objects back to the DB using cstore (or the
like).

This commit simply lets undefined values stay that way, which in turn
prevents NULLs from trying to become empty strings in the DB.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI.pm

index c3a0cf0..d8391b8 100644 (file)
@@ -178,7 +178,7 @@ sub to_fieldmapper {
 
     if (ref($obj)) {
         for my $field ( $fm->real_fields ) {
-            $fm->$field( ''.$obj->$field );
+            $fm->$field( ''.$obj->$field ) if defined $obj->$field;
         }
     }