Index: link.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/link/link.install,v
retrieving revision 1.5.2.4
diff -u -r1.5.2.4 link.install
--- link.install	25 Feb 2009 16:50:55 -0000	1.5.2.4
+++ link.install	7 Apr 2009 22:25:58 -0000
@@ -49,3 +49,35 @@
   }
   return array();
 }
+
+/**
+ * Change the database schema to allow NULL values.
+ */
+function link_update_6001() {
+  $ret = array();
+
+  // Build a list of fields that need updating.
+  $update_fields = array();
+  foreach (content_types_install() as $type_name => $fields) {
+    foreach ($fields as $field) {
+      if ($field['type'] == 'link') {
+        // We only process a given field once.
+        $update_fields[$field['field_name']] = $field;
+      }
+    }
+  }
+
+  // Update each field's storage to match the current definition.
+  foreach ($update_fields as $field) {
+    $db_info = content_database_info($field);
+    foreach ($db_info['columns'] as $column) {
+      db_change_field($ret, $db_info['table'], $column['column'], $column['column'], $column);
+      $ret[] = update_sql("UPDATE {". $db_info['table'] ."} SET ". $column['column'] ." = NULL WHERE ". $column['column'] ." = '' OR ". $column['column'] ." = 'N;'");
+    }
+  }
+
+  // Let CCK re-associate link fields with Link module and activate the fields.
+  content_associate_fields('link');
+
+  return $ret;
+}
