You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2014/10/31 17:52:46 UTC

svn commit: r1635809 - in /manifoldcf/trunk/framework: core/src/main/java/org/apache/manifoldcf/core/interfaces/JoinClause.java pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java

Author: kwright
Date: Fri Oct 31 16:52:46 2014
New Revision: 1635809

URL: http://svn.apache.org/r1635809
Log:
Use proper conjunction clause code for stuffer query and others.  Part of CONNECTORS-1090.

Modified:
    manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/JoinClause.java
    manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java

Modified: manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/JoinClause.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/JoinClause.java?rev=1635809&r1=1635808&r2=1635809&view=diff
==============================================================================
--- manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/JoinClause.java (original)
+++ manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/JoinClause.java Fri Oct 31 16:52:46 2014
@@ -24,14 +24,21 @@ public class JoinClause implements Claus
 {
   public static final String _rcsid = "@(#)$Id$";
 
-  protected String columnName;
-  protected String joinColumnName;
+  protected final String columnName;
+  protected final String joinColumnName;
+  protected final String operation;
   
   /** Construct */
   public JoinClause(String columnName, String joinColumnName)
   {
+    this(columnName,joinColumnName,"=");
+  }
+  
+  public JoinClause(String columnName, String joinColumnName, String operation)
+  {
     this.columnName = columnName;
     this.joinColumnName = joinColumnName;
+    this.operation = "=";
   }
   
   /** Get the column name */
@@ -43,7 +50,7 @@ public class JoinClause implements Claus
   /** Get the operation string */
   public String getOperation()
   {
-    return "=";
+    return operation;
   }
   
   /** Get the individual values */

Modified: manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java?rev=1635809&r1=1635808&r2=1635809&view=diff
==============================================================================
--- manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java (original)
+++ manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java Fri Oct 31 16:52:46 2014
@@ -1475,18 +1475,17 @@ public class JobManager implements IJobM
           
           sb.append("NOT EXISTS(SELECT 'x' FROM ").append(jobQueue.getTableName()).append(" t2 WHERE ")
             .append(database.buildConjunctionClause(list,new ClauseDescription[]{
-              new JoinClause("t2."+jobQueue.docHashField,"t0."+jobQueue.docHashField)})).append(" AND ")
-            .append("t2.").append(jobQueue.statusField).append(" IN (?,?,?,?,?,?) AND ")
-            .append("t2.").append(jobQueue.jobIDField).append("!=t0.").append(jobQueue.jobIDField)
+              new JoinClause("t2."+jobQueue.docHashField,"t0."+jobQueue.docHashField),
+              new MultiClause("t2."+jobQueue.statusField,new String[]{
+                jobQueue.statusToString(jobQueue.STATUS_ACTIVE),
+                jobQueue.statusToString(jobQueue.STATUS_ACTIVEPURGATORY),
+                jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCAN),
+                jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCANPURGATORY),
+                jobQueue.statusToString(jobQueue.STATUS_BEINGDELETED),
+                jobQueue.statusToString(jobQueue.STATUS_BEINGCLEANED)}),
+              new JoinClause("t2."+jobQueue.jobIDField,"t0."+jobQueue.jobIDField,"!=")}))
             .append(") ");
             
-          list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVE));
-          list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVEPURGATORY));
-          list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCAN));
-          list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCANPURGATORY));
-          list.add(jobQueue.statusToString(jobQueue.STATUS_BEINGDELETED));
-          list.add(jobQueue.statusToString(jobQueue.STATUS_BEINGCLEANED));
-
           sb.append(database.constructOffsetLimitClause(0,maxCount));
           
           // The checktime is null field check is for backwards compatibility
@@ -1718,18 +1717,17 @@ public class JobManager implements IJobM
             
           sb.append("NOT EXISTS(SELECT 'x' FROM ").append(jobQueue.getTableName()).append(" t2 WHERE ")
             .append(database.buildConjunctionClause(list,new ClauseDescription[]{
-              new JoinClause("t2."+jobQueue.docHashField,"t0."+jobQueue.docHashField)})).append(" AND ")
-            .append("t2.").append(jobQueue.statusField).append(" IN (?,?,?,?,?,?) AND ")
-            .append("t2.").append(jobQueue.jobIDField).append("!=t0.").append(jobQueue.jobIDField)
+              new JoinClause("t2."+jobQueue.docHashField,"t0."+jobQueue.docHashField),
+              new MultiClause("t2."+jobQueue.statusField,new String[]{
+                jobQueue.statusToString(jobQueue.STATUS_ACTIVE),
+                jobQueue.statusToString(jobQueue.STATUS_ACTIVEPURGATORY),
+                jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCAN),
+                jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCANPURGATORY),
+                jobQueue.statusToString(jobQueue.STATUS_BEINGDELETED),
+                jobQueue.statusToString(jobQueue.STATUS_BEINGCLEANED)}),
+              new JoinClause("t2."+jobQueue.jobIDField,"t0."+jobQueue.jobIDField,"!=")}))
             .append(") ");
             
-          list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVE));
-          list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVEPURGATORY));
-          list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCAN));
-          list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCANPURGATORY));
-          list.add(jobQueue.statusToString(jobQueue.STATUS_BEINGDELETED));
-          list.add(jobQueue.statusToString(jobQueue.STATUS_BEINGCLEANED));
-          
           sb.append(database.constructOffsetLimitClause(0,maxCount));
           
           // The checktime is null field check is for backwards compatibility
@@ -2257,16 +2255,16 @@ public class JobManager implements IJobM
     
     sb.append("NOT EXISTS(SELECT 'x' FROM ").append(jobQueue.getTableName()).append(" t2 WHERE ")
       .append(database.buildConjunctionClause(list,new ClauseDescription[]{
-        new JoinClause("t2."+jobQueue.docHashField,"t0."+jobQueue.docHashField)})).append(" AND ")
-      .append("t2.").append(jobQueue.statusField).append(" IN (?,?,?,?,?,?)").append(" AND ")
-      .append("t2.").append(jobQueue.jobIDField).append("!=t0.").append(jobQueue.jobIDField).append(") ");
-
-    list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVE));
-    list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVEPURGATORY));
-    list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCAN));
-    list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCANPURGATORY));
-    list.add(jobQueue.statusToString(jobQueue.STATUS_BEINGDELETED));
-    list.add(jobQueue.statusToString(jobQueue.STATUS_BEINGCLEANED));
+        new JoinClause("t2."+jobQueue.docHashField,"t0."+jobQueue.docHashField),
+        new MultiClause("t2."+jobQueue.statusField,new String[]{
+          jobQueue.statusToString(jobQueue.STATUS_ACTIVE),
+          jobQueue.statusToString(jobQueue.STATUS_ACTIVEPURGATORY),
+          jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCAN),
+          jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCANPURGATORY),
+          jobQueue.statusToString(jobQueue.STATUS_BEINGDELETED),
+          jobQueue.statusToString(jobQueue.STATUS_BEINGCLEANED)}),
+        new JoinClause("t2."+jobQueue.jobIDField,"t0."+jobQueue.jobIDField,"!=")}))
+      .append(") ");
 
     sb.append(database.constructOffsetLimitClause(0,n));
 
@@ -2807,18 +2805,17 @@ public class JobManager implements IJobM
     
     sb.append("NOT EXISTS(SELECT 'x' FROM ").append(jobQueue.getTableName()).append(" t2 WHERE ")
       .append(database.buildConjunctionClause(list,new ClauseDescription[]{
-        new JoinClause("t2."+jobQueue.docHashField,"t0."+jobQueue.docHashField)})).append(" AND ")
-      .append("t2.").append(jobQueue.statusField).append(" IN (?,?,?,?,?,?) AND ")
-      .append("t2.").append(jobQueue.jobIDField).append("!=t0.").append(jobQueue.jobIDField)
+        new JoinClause("t2."+jobQueue.docHashField,"t0."+jobQueue.docHashField),
+        new MultiClause("t2."+jobQueue.statusField,new String[]{
+          jobQueue.statusToString(jobQueue.STATUS_ACTIVE),
+          jobQueue.statusToString(jobQueue.STATUS_ACTIVEPURGATORY),
+          jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCAN),
+          jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCANPURGATORY),
+          jobQueue.statusToString(jobQueue.STATUS_BEINGDELETED),
+          jobQueue.statusToString(jobQueue.STATUS_BEINGCLEANED)}),
+        new JoinClause("t2."+jobQueue.jobIDField,"t0."+jobQueue.jobIDField,"!=")}))
       .append(") AND ");
 
-    list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVE));
-    list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVEPURGATORY));
-    list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCAN));
-    list.add(jobQueue.statusToString(jobQueue.STATUS_ACTIVENEEDRESCANPURGATORY));
-    list.add(jobQueue.statusToString(jobQueue.STATUS_BEINGDELETED));
-    list.add(jobQueue.statusToString(jobQueue.STATUS_BEINGCLEANED));
-        
     // Prerequisite event clause: AND NOT EXISTS(SELECT 'x' FROM prereqevents t3,events t4 WHERE t3.ownerid=t0.id AND t3.name=t4.name)
     sb.append("NOT EXISTS(SELECT 'x' FROM ").append(jobQueue.prereqEventManager.getTableName()).append(" t3,").append(eventManager.getTableName()).append(" t4 WHERE t0.")
       .append(jobQueue.idField).append("=t3.").append(jobQueue.prereqEventManager.ownerField).append(" AND t3.")