? duplicatepatronuid.patch
Index: patron/patron.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/library/patron/patron.install,v
retrieving revision 1.2
diff -u -p -r1.2 patron.install
--- patron/patron.install	13 Aug 2008 16:19:42 -0000	1.2
+++ patron/patron.install	17 May 2010 19:00:15 -0000
@@ -103,3 +103,8 @@ function patron_uninstall() {
   drupal_set_message(t('Library patron module successfully uninstalled'));
 }
 
+function patron_update_1() {
+  $ret = array();
+  $ret[] = update_sql("UPDATE {library_patrons} SET patron_uid = NULL WHERE patron_uid = 0");
+  return $ret;
+}
Index: patron/patron.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/library/patron/patron.module,v
retrieving revision 1.7
diff -u -p -r1.7 patron.module
--- patron/patron.module	17 May 2010 18:02:49 -0000	1.7
+++ patron/patron.module	17 May 2010 19:00:16 -0000
@@ -120,14 +120,24 @@ function patron_db_rewrite_sql($query, $
  * Implemenation of hook_insert().
  */
 function patron_insert($node) {
-  db_query("INSERT INTO {library_patrons} (nid, name_last, name_first, email, patron_uid, barcode, disabled) VALUES (%d, '%s', '%s', '%s', %d, '%s', %d)", $node->nid, $node->name_last, $node->name_first, $node->email, $node->patron_uid, $node->barcode, $node->disabled);
+  if (empty($node->patron_uid)) {
+    db_query("INSERT INTO {library_patrons} (nid, name_last, name_first, email, patron_uid, barcode, disabled) VALUES (%d, '%s', '%s', '%s', NULL, '%s', %d)", $node->nid, $node->name_last, $node->name_first, $node->email, $node->barcode, $node->disabled);
+  }
+  else {
+    db_query("INSERT INTO {library_patrons} (nid, name_last, name_first, email, patron_uid, barcode, disabled) VALUES (%d, '%s', '%s', '%s', %d, '%s', %d)", $node->nid, $node->name_last, $node->name_first, $node->email, $node->patron_uid, $node->barcode, $node->disabled);
+  }
 }
 
 /**
  * Implemenation of hook_update().
  */
 function patron_update($node) {
-  db_query("UPDATE {library_patrons} SET name_last = '%s', name_first = '%s', email = '%s', patron_uid = %d, barcode = '%s', disabled = %d WHERE nid = %d", $node->name_last, $node->name_first, $node->email, $node->patron_uid, $node->barcode, $node->disabled, $node->nid); 
+  if (empty($node->patron_uid)) {
+    db_query("UPDATE {library_patrons} SET name_last = '%s', name_first = '%s', email = '%s', patron_uid = NULL, barcode = '%s', disabled = %d WHERE nid = %d", $node->name_last, $node->name_first, $node->email, $node->barcode, $node->disabled, $node->nid); 
+  }
+  else {
+    db_query("UPDATE {library_patrons} SET name_last = '%s', name_first = '%s', email = '%s', patron_uid = %d, barcode = '%s', disabled = %d WHERE nid = %d", $node->name_last, $node->name_first, $node->email, $node->patron_uid, $node->barcode, $node->disabled, $node->nid); 
+  }
 }
 
 /**
@@ -187,7 +197,7 @@ function patron_nodeapi(&$node, $op, $te
             $node->uid = $patron_uid;   
           }
           else {
-            $node->patron_uid = '';
+            $node->patron_uid = NULL;
           }
         } 
         break;
@@ -210,7 +220,7 @@ function patron_load($node) {
 function patron_form(&$node) {
   $type = node_get_types('type', $node);
   $patrons_are_users = variable_get('patron_is_user', PATRON_NOT_USER) == PATRON_USER;
-  $patron_uid = '';
+  $patron_uid = NULL;
   if ($patrons_are_users && !empty($node->email)) {
     $exists = db_result(db_query_range("SELECT uid from {users} where mail= '%s'", $node->email, 0, 1));
     if ($exists) {
