Author: kwright
Date: Fri Nov 29 19:29:08 2013
New Revision: 1546633

URL: http://svn.apache.org/r1546633
Log:
Change the schema for BinManager to be compatible with HSQLDB.

Modified:
    
manifoldcf/branches/CONNECTORS-781/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/bins/BinManager.java

Modified: 
manifoldcf/branches/CONNECTORS-781/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/bins/BinManager.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-781/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/bins/BinManager.java?rev=1546633&r1=1546632&r2=1546633&view=diff
==============================================================================
--- 
manifoldcf/branches/CONNECTORS-781/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/bins/BinManager.java
 (original)
+++ 
manifoldcf/branches/CONNECTORS-781/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/bins/BinManager.java
 Fri Nov 29 19:29:08 2013
@@ -70,7 +70,8 @@ public class BinManager extends org.apac
       if (existing == null)
       {
         HashMap map = new HashMap();
-        map.put(binNameField,new 
ColumnDescription("VARCHAR(255)",true,true,null,null,false));
+        // HSQLDB does not like null primary keys!!
+        map.put(binNameField,new 
ColumnDescription("VARCHAR(255)",false,true,null,null,false));
         map.put(binCounterField,new 
ColumnDescription("FLOAT",false,false,null,null,false));
         performCreate(map,null);
       }
@@ -80,6 +81,26 @@ public class BinManager extends org.apac
       }
 
       // Index management goes here
+      IndexDescription binIndex = new IndexDescription(true,new 
String[]{binNameField});
+
+      // Get rid of indexes that shouldn't be there
+      Map indexes = getTableIndexes(null,null);
+      Iterator iter = indexes.keySet().iterator();
+      while (iter.hasNext())
+      {
+        String indexName = (String)iter.next();
+        IndexDescription id = (IndexDescription)indexes.get(indexName);
+
+        if (binIndex != null && id.equals(binIndex))
+          binIndex = null;
+        else if (indexName.indexOf("_pkey") == -1)
+          // This index shouldn't be here; drop it
+          performRemoveIndex(indexName);
+      }
+
+      // Add the ones we didn't find
+      if (binIndex != null)
+        performAddIndex(null,binIndex);
 
       break;
     }


Reply via email to