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.")