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;
}