diff --git a/config/alfresco/bootstrap-context.xml b/config/alfresco/bootstrap-context.xml
index c8d7080cae..a27671c194 100644
--- a/config/alfresco/bootstrap-context.xml
+++ b/config/alfresco/bootstrap-context.xml
@@ -407,6 +407,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql
index c7f3735fae..0f1f607d27 100644
--- a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql
+++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql
@@ -308,6 +308,9 @@ CREATE TABLE alf_node_properties
KEY fk_alf_nprop_loc (locale_id),
KEY idx_alf_nprop_s (qname_id, string_value(42)),
KEY idx_alf_nprop_l (qname_id, long_value),
+ KEY idx_alf_nprop_b (qname_id, boolean_value),
+ KEY idx_alf_nprop_f (qname_id, float_value),
+ KEY idx_alf_nprop_d (qname_id, double_value),
CONSTRAINT fk_alf_nprop_loc FOREIGN KEY (locale_id) REFERENCES alf_locale (id),
CONSTRAINT fk_alf_nprop_n FOREIGN KEY (node_id) REFERENCES alf_node (id),
CONSTRAINT fk_alf_nprop_qn FOREIGN KEY (qname_id) REFERENCES alf_qname (id)
diff --git a/config/alfresco/dbscripts/db-schema-context.xml b/config/alfresco/dbscripts/db-schema-context.xml
index 337be5db1d..4e0bb43e57 100644
--- a/config/alfresco/dbscripts/db-schema-context.xml
+++ b/config/alfresco/dbscripts/db-schema-context.xml
@@ -60,6 +60,7 @@
+
diff --git a/config/alfresco/dbscripts/upgrade/5.1/org.hibernate.dialect.Dialect/metadata-query-indexes-2.sql b/config/alfresco/dbscripts/upgrade/5.1/org.hibernate.dialect.Dialect/metadata-query-indexes-2.sql
new file mode 100644
index 0000000000..b24b3fa7fc
--- /dev/null
+++ b/config/alfresco/dbscripts/upgrade/5.1/org.hibernate.dialect.Dialect/metadata-query-indexes-2.sql
@@ -0,0 +1,24 @@
+--
+-- Title: Update alf_node_properties to support in-transaction metadata queries on remaining property types
+-- Database: Generic
+-- Since: V5.1 Schema 9004
+-- Author: Andy Hind
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+
+CREATE INDEX idx_alf_nprop_b ON alf_node_properties (qname_id, boolean_value, node_id); --(optional)
+CREATE INDEX idx_alf_nprop_f ON alf_node_properties (qname_id, float_value, node_id); --(optional)
+CREATE INDEX idx_alf_nprop_d ON alf_node_properties (qname_id, double_value, node_id); --(optional)
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V5.1-metadata-query-indexes';
+INSERT INTO alf_applied_patch
+ (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
+ VALUES
+ (
+ 'patch.db-V5.1-metadata-query-indexes', 'Manually executed script upgrade V5.1: Updates for metadata query',
+ 0, 9003, -1, 9004, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
+ );
\ No newline at end of file
diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/metadata-query-common-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/metadata-query-common-SqlMap.xml
index 3da24bb2f8..cceaeb6cd3 100644
--- a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/metadata-query-common-SqlMap.xml
+++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/metadata-query-common-SqlMap.xml
@@ -33,7 +33,9 @@
node.type_qname_id <> #{sysDeletedType}
AND node.store_id = #{storeId}
- AND node.transaction_id > #{sinceTxId}
+
+ AND node.transaction_id > #{sinceTxId}
+
AND
@@ -60,47 +62,85 @@
1 = 0
-
- ${item.fieldAndFunction} = #{item.value}
-
-
- ${item.alias}.${item.fieldName} IS NOT NULL
-
-
- ${item.alias}.${item.fieldName} IS NULL
-
-
- ${item.fieldAndFunction} > #{item.value}
-
-
- ${item.fieldAndFunction} >= #{item.value}
-
-
- ${item.fieldAndFunction} < #{item.value}
-
-
- ${item.fieldAndFunction} <= #{item.value}
-
-
- ${item.fieldAndFunction} IN #{val}
-
-
- ${item.fieldAndFunction} NOT IN #{val}
-
-
- ${item.fieldAndFunction} LIKE #{item.value}
-
-
- ${item.fieldAndFunction} NOT LIKE #{item.value}
-
-
- ${item.fieldAndFunction} <> #{item.value}
-
- EXISTS (select 1 from alf_node_aspects aspect where aspect.node_id = node.id AND
- aspect.qname_id IN #{val})
+ node.id IN (select aspect.node_id from alf_node_aspects aspect
+ where aspect.qname_id IN #{val})
-
+
+
+
+
+
+ (
+
+
+ node.id IN (
+
+
+
+
+
+ select ${item.alias}.child_node_id from alf_child_assoc ${item.alias} where
+
+
+ select ${item.alias}.node_id from alf_node_properties ${item.alias} where (#{item.qnameId} = ${item.alias}.qname_id) AND
+
+
+ select ${item.alias}_p.node_id from alf_node_properties ${item.alias}_p
+ join alf_content_data ${item.alias}_cd on (${item.alias}_cd.id = ${item.alias}_p.long_value)
+ join alf_mimetype ${item.alias} on (${item.alias}_cd.content_mimetype_id = ${item.alias}.id)
+ where (#{item.qnameId} = ${item.alias}_p.qname_id)
+ AND
+
+
+ select ${item.alias}_p.node_id from alf_node_properties ${item.alias}_p
+ join alf_content_data ${item.alias}_cd on (${item.alias}_cd.id = ${item.alias}_p.long_value)
+ join alf_content_url ${item.alias} on (${item.alias}.id = ${item.alias}_cd.content_url_id)
+ where (#{item.qnameId} = ${item.alias}_p.qname_id)
+ AND
+
+
+
+
+ ${item.fieldAndFunction} = #{item.value}
+
+
+ ${item.alias}.${item.fieldName} IS NOT NULL
+
+
+ ${item.alias}.${item.fieldName} IS NULL
+
+
+ ${item.fieldAndFunction} > #{item.value}
+
+
+ ${item.fieldAndFunction} >= #{item.value}
+
+
+ ${item.fieldAndFunction} < #{item.value}
+
+
+ ${item.fieldAndFunction} <= #{item.value}
+
+
+ ${item.fieldAndFunction} IN #{val}
+
+
+ ${item.fieldAndFunction} NOT IN #{val}
+
+
+ ${item.fieldAndFunction} LIKE #{item.value}
+
+
+ ${item.fieldAndFunction} NOT LIKE #{item.value}
+
+
+ ${item.fieldAndFunction} <> #{item.value}
+
+
+ )
+
+
diff --git a/config/alfresco/messages/patch-service.properties b/config/alfresco/messages/patch-service.properties
index 87c2963868..a4daf3f7cb 100644
--- a/config/alfresco/messages/patch-service.properties
+++ b/config/alfresco/messages/patch-service.properties
@@ -364,4 +364,6 @@ patch.deleteClassifibleAspectForFailedThumbnail.description=Deletes 'cm:generalc
patch.downloadsFolder=Adds the System Downloads folder
patch.downloadsFolder.description=Ensures the Syste Downloads folder exists.
patch.downloadsFolder.result.exists=The System Downloads folder already exists.
-patch.downloadsFolder.result.created=The System Downloads folder was created.
\ No newline at end of file
+patch.downloadsFolder.result.created=The System Downloads folder was created.
+
+patch.db-V5.1-metadata-query-indexes.description=Add additional indexes to support transactional metadata query direct to the database.>>>>>>> .merge-right.r99951
diff --git a/config/alfresco/patch/patch-services-context.xml b/config/alfresco/patch/patch-services-context.xml
index 0a97c78c2e..07ae60251e 100644
--- a/config/alfresco/patch/patch-services-context.xml
+++ b/config/alfresco/patch/patch-services-context.xml
@@ -1171,4 +1171,17 @@
+
+
+ patch.db-V5.1-metadata-query-indexes
+ patch.db-V5.1-metadata-query-indexes.description
+ 0
+ 9003
+ 9004
+ ${system.metadata-query-indexes-more.ignored}
+
+ classpath:alfresco/dbscripts/upgrade/5.1/${db.script.dialect}/metadata-query-indexes-2.sql
+
+
+
diff --git a/config/alfresco/repository.properties b/config/alfresco/repository.properties
index c58b1fb885..dddfe3edc9 100644
--- a/config/alfresco/repository.properties
+++ b/config/alfresco/repository.properties
@@ -1039,7 +1039,9 @@ webscripts.setMaxContentSize=4294967296
# Adding each the supporting indexes may take several hours depending on the size of the database.
# The required indexes may be added in stages.
# See: classpath:alfresco/dbscripts/upgrade/4.2/${db.script.dialect}/metadata-query-indexes.sql
+# See: classpath:alfresco/dbscripts/upgrade/5.1/${db.script.dialect}/metadata-query-indexes-2.sql
system.metadata-query-indexes.ignored=true
+system.metadata-query-indexes-more.ignored=true
#
# Do we defer running the shared folder patch?
diff --git a/config/alfresco/subsystems/Search/common-opencmis-context.xml b/config/alfresco/subsystems/Search/common-opencmis-context.xml
index ea1e3e27ce..573f0a2bdc 100644
--- a/config/alfresco/subsystems/Search/common-opencmis-context.xml
+++ b/config/alfresco/subsystems/Search/common-opencmis-context.xml
@@ -82,9 +82,12 @@
-
+
+
+
+
@@ -96,12 +99,12 @@
-
-
-
-
+
+
+
+
diff --git a/config/alfresco/subsystems/Search/common-search-context.xml b/config/alfresco/subsystems/Search/common-search-context.xml
index a430825a36..0f17724e98 100644
--- a/config/alfresco/subsystems/Search/common-search-context.xml
+++ b/config/alfresco/subsystems/Search/common-search-context.xml
@@ -101,9 +101,12 @@
-
+
+
+
+
@@ -118,6 +121,9 @@
+
+
+
diff --git a/config/alfresco/version.properties b/config/alfresco/version.properties
index ba1dbbc1f7..6f8ac5c26b 100644
--- a/config/alfresco/version.properties
+++ b/config/alfresco/version.properties
@@ -23,4 +23,4 @@ version.build=r@scm-revision@-b@build-number@
# Schema number
-version.schema=9006
+version.schema=9007
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/AspectSupport.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/AspectSupport.java
index 5fec808d36..d92644c194 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/AspectSupport.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/AspectSupport.java
@@ -68,7 +68,7 @@ public class AspectSupport implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
}
@@ -81,12 +81,7 @@ public class AspectSupport implements DBQueryBuilderComponent
@Override
public void buildJoins(Map singleJoins, List multiJoins)
{
- DBQueryBuilderJoinCommand join = new DBQueryBuilderJoinCommand();
- alias = "ASPECT_" + multiJoins.size();
- join.setAlias(alias);
- join.setOuter(false);
- join.setType(DBQueryBuilderJoinCommandType.ASPECT);
- multiJoins.add(join);
+ // Nothing to do (uses semi-join)
}
@@ -100,6 +95,7 @@ public class AspectSupport implements DBQueryBuilderComponent
public void buildPredicateCommands(List predicatePartCommands)
{
DBQueryBuilderPredicatePartCommand command = new DBQueryBuilderPredicatePartCommand();
+ command.setJoinCommandType(DBQueryBuilderJoinCommandType.ASPECT);
command.setAlias(alias);
command.setType(DBQueryBuilderPredicatePartCommandType.ASPECT);
if(qnameIds.size() > 0)
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBConjunction.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBConjunction.java
index 7f5e0a1de0..249c8311c2 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBConjunction.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBConjunction.java
@@ -63,7 +63,7 @@ public class DBConjunction extends BaseConjunction implements DBQueryBuilderComp
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
for (Constraint constraint : getConstraints())
{
@@ -74,7 +74,7 @@ public class DBConjunction extends BaseConjunction implements DBQueryBuilderComp
throw new QueryModelException("Disjunctions are not suported");
}
DBQueryBuilderComponent dbQueryBuilderComponent = (DBQueryBuilderComponent) constraint;
- dbQueryBuilderComponent.prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectors, functionArgs, functionContext);
+ dbQueryBuilderComponent.prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectors, functionArgs, functionContext, supportBooleanFloatAndDouble);
}
else
{
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBDisjunction.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBDisjunction.java
index 4d2f99db87..1f088be04e 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBDisjunction.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBDisjunction.java
@@ -63,22 +63,22 @@ public class DBDisjunction extends BaseDisjunction implements DBQueryBuilderComp
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
- throw new QueryModelException("Disjunctions are not suported");
+ //throw new QueryModelException("Disjunctions are not suported");
-// for (Constraint constraint : getConstraints())
-// {
-// if (constraint instanceof DBQueryBuilderComponent)
-// {
-// DBQueryBuilderComponent dbQueryBuilderComponent = (DBQueryBuilderComponent) constraint;
-// dbQueryBuilderComponent.prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, selectors, functionArgs, functionContext);
-// }
-// else
-// {
-// throw new UnsupportedOperationException();
-// }
-// }
+ for (Constraint constraint : getConstraints())
+ {
+ if (constraint instanceof DBQueryBuilderComponent)
+ {
+ DBQueryBuilderComponent dbQueryBuilderComponent = (DBQueryBuilderComponent) constraint;
+ dbQueryBuilderComponent.prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectors, functionArgs, functionContext, supportBooleanFloatAndDouble);
+ }
+ else
+ {
+ throw new UnsupportedOperationException();
+ }
+ }
}
/* (non-Javadoc)
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBFunctionalConstraint.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBFunctionalConstraint.java
index 2616baf598..06a1fccecf 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBFunctionalConstraint.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBFunctionalConstraint.java
@@ -63,7 +63,7 @@ public class DBFunctionalConstraint extends BaseFunctionalConstraint implements
* @see org.alfresco.repo.search.impl.querymodel.impl.db.DBQueryBuilderComponent#prepare(org.alfresco.service.namespace.NamespaceService, org.alfresco.service.cmr.dictionary.DictionaryService, org.alfresco.repo.domain.qname.QNameDAO, org.alfresco.repo.domain.node.NodeDAO)
*/
@Override
- public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors, Map functionArgs, FunctionEvaluationContext functionContext)
+ public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors, Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
Function function = getFunction();
if(function != null)
@@ -71,7 +71,7 @@ public class DBFunctionalConstraint extends BaseFunctionalConstraint implements
if(function instanceof DBQueryBuilderComponent)
{
DBQueryBuilderComponent dbQueryBuilderComponent = (DBQueryBuilderComponent)function;
- dbQueryBuilderComponent.prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectors, getFunctionArguments(), functionContext);
+ dbQueryBuilderComponent.prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectors, getFunctionArguments(), functionContext, supportBooleanFloatAndDouble);
}
else
{
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBOrdering.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBOrdering.java
index 4a0f0214a1..8cfb9bdcd6 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBOrdering.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBOrdering.java
@@ -71,7 +71,7 @@ public class DBOrdering extends BaseOrdering implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
if (getColumn().getFunction().getName().equals(PropertyAccessor.NAME))
{
@@ -154,7 +154,7 @@ public class DBOrdering extends BaseOrdering implements DBQueryBuilderComponent
propertySupport.setPropertyQName(propertyQName);
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
propertySupport.setCommandType(DBQueryBuilderPredicatePartCommandType.ORDER);
propertySupport.setLeftOuter(true);
builderSupport = propertySupport;
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQuery.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQuery.java
index 586cca5324..cea8690450 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQuery.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQuery.java
@@ -194,7 +194,7 @@ public class DBQuery extends BaseQuery implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
selectorGroup = selectors;
if (selectorGroup != null)
@@ -204,7 +204,7 @@ public class DBQuery extends BaseQuery implements DBQueryBuilderComponent
Selector current = getSource().getSelector(selector);
if (current instanceof DBQueryBuilderComponent)
{
- ((DBQueryBuilderComponent) current).prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectorGroup, functionArgs, functionContext);
+ ((DBQueryBuilderComponent) current).prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectorGroup, functionArgs, functionContext, supportBooleanFloatAndDouble);
}
else
{
@@ -217,7 +217,7 @@ public class DBQuery extends BaseQuery implements DBQueryBuilderComponent
{
if (getConstraint() instanceof DBQueryBuilderComponent)
{
- ((DBQueryBuilderComponent) getConstraint()).prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectorGroup, functionArgs, functionContext);
+ ((DBQueryBuilderComponent) getConstraint()).prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectorGroup, functionArgs, functionContext, supportBooleanFloatAndDouble);
}
else
{
@@ -231,7 +231,7 @@ public class DBQuery extends BaseQuery implements DBQueryBuilderComponent
{
if(ordering instanceof DBQueryBuilderComponent)
{
- ((DBQueryBuilderComponent) ordering).prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectorGroup, functionArgs, functionContext);
+ ((DBQueryBuilderComponent) ordering).prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectorGroup, functionArgs, functionContext, supportBooleanFloatAndDouble);
}
else
{
@@ -744,7 +744,7 @@ public class DBQuery extends BaseQuery implements DBQueryBuilderComponent
* @param propertyQName QName
* @return String
*/
- public static String getFieldName(DictionaryService dictionaryService, QName propertyQName)
+ public static String getFieldName(DictionaryService dictionaryService, QName propertyQName, boolean supportBooleanFloatAndDouble)
{
if (propertyQName.equals(ContentModel.PROP_CREATED))
{
@@ -818,6 +818,18 @@ public class DBQuery extends BaseQuery implements DBQueryBuilderComponent
{
return "string_value";
}
+ else if (dataType.getName().equals(DataTypeDefinition.BOOLEAN) && supportBooleanFloatAndDouble)
+ {
+ return "boolean_value";
+ }
+ else if (dataType.getName().equals(DataTypeDefinition.FLOAT) && supportBooleanFloatAndDouble)
+ {
+ return "float_value";
+ }
+ else if (dataType.getName().equals(DataTypeDefinition.DOUBLE) && supportBooleanFloatAndDouble)
+ {
+ return "double_value";
+ }
else
{
throw new QueryModelException("Unsupported property type " + dataType.getName());
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryBuilderComponent.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryBuilderComponent.java
index 438324214a..19a798d567 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryBuilderComponent.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryBuilderComponent.java
@@ -58,7 +58,7 @@ public interface DBQueryBuilderComponent
* @param functionArgs Map
* @param functionContext FunctionEvaluationContext
*/
- public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors, Map functionArgs, FunctionEvaluationContext functionContext);
+ public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors, Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble);
/**
* Build the Set of required joins
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryBuilderPredicatePartCommand.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryBuilderPredicatePartCommand.java
index 4cd9d76d6c..25e206a5e3 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryBuilderPredicatePartCommand.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryBuilderPredicatePartCommand.java
@@ -34,8 +34,44 @@ public class DBQueryBuilderPredicatePartCommand
Object[] values;
String alias;
+
+ private DBQueryBuilderJoinCommandType joinCommandType;
private LuceneFunction function;
+
+ private Long qnameId;
+
+ /**
+ * @return the qnameId
+ */
+ public Long getQnameId()
+ {
+ return qnameId;
+ }
+
+ /**
+ * @param qnameId the qnameId to set
+ */
+ public void setQnameId(Long qnameId)
+ {
+ this.qnameId = qnameId;
+ }
+
+ /**
+ * @return the joinCommandType
+ */
+ public String getJoinCommandType()
+ {
+ return joinCommandType.toString();
+ }
+
+ /**
+ * @param joinCommandType the joinCommandType to set
+ */
+ public void setJoinCommandType(DBQueryBuilderJoinCommandType joinCommandType)
+ {
+ this.joinCommandType = joinCommandType;
+ }
/**
* @return the type
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryEngine.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryEngine.java
index 187a49b911..7db08de01c 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryEngine.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryEngine.java
@@ -27,6 +27,7 @@ import java.util.Map;
import java.util.Set;
import org.alfresco.model.ContentModel;
+import org.alfresco.repo.admin.patch.OptionalPatchApplicationCheckBootstrapBean;
import org.alfresco.repo.domain.node.Node;
import org.alfresco.repo.domain.node.NodeDAO;
import org.alfresco.repo.domain.qname.QNameDAO;
@@ -69,6 +70,13 @@ public class DBQueryEngine implements QueryEngine
private TenantService tenantService;
+ private OptionalPatchApplicationCheckBootstrapBean metadataIndexCheck2;
+
+ public void setMetadataIndexCheck2(OptionalPatchApplicationCheckBootstrapBean metadataIndexCheck2)
+ {
+ this.metadataIndexCheck2 = metadataIndexCheck2;
+ }
+
public void setTenantService(TenantService tenantService)
{
this.tenantService = tenantService;
@@ -184,7 +192,7 @@ public class DBQueryEngine implements QueryEngine
}
dbQuery.setSinceTxId(sinceTxId);
- dbQuery.prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectorGroup, null, functionContext);
+ dbQuery.prepare(namespaceService, dictionaryService, qnameDAO, nodeDAO, tenantService, selectorGroup, null, functionContext, metadataIndexCheck2.getPatchApplied());
List nodes = template.selectList(SELECT_BY_DYNAMIC_QUERY, dbQuery);
LinkedHashSet set = new LinkedHashSet(nodes.size());
for(Node node : nodes)
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBSelector.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBSelector.java
index 0b85a008a3..2c0046eea7 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBSelector.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBSelector.java
@@ -75,7 +75,7 @@ public class DBSelector extends BaseSelector implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
ClassDefinition classDef = dictionaryService.getClass(getType());
List qnameIds = new ArrayList();
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/ParentSupport.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/ParentSupport.java
index 7cf4296eaf..8b5aea78b3 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/ParentSupport.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/ParentSupport.java
@@ -90,7 +90,7 @@ public class ParentSupport implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
}
@@ -103,12 +103,16 @@ public class ParentSupport implements DBQueryBuilderComponent
@Override
public void buildJoins(Map singleJoins, List multiJoins)
{
- DBQueryBuilderJoinCommand join = new DBQueryBuilderJoinCommand();
- alias = "PARENT_" + multiJoins.size();
- join.setAlias(alias);
- join.setOuter(leftOuter);
- join.setType(DBQueryBuilderJoinCommandType.PARENT);
- multiJoins.add(join);
+ alias = "PARENT";
+ if(commandType == DBQueryBuilderPredicatePartCommandType.ORDER)
+ {
+ DBQueryBuilderJoinCommand join = new DBQueryBuilderJoinCommand();
+ alias = "PARENT_" + multiJoins.size();
+ join.setAlias(alias);
+ join.setOuter(leftOuter);
+ join.setType(DBQueryBuilderJoinCommandType.PARENT);
+ multiJoins.add(join);
+ }
}
@@ -122,6 +126,7 @@ public class ParentSupport implements DBQueryBuilderComponent
public void buildPredicateCommands(List predicatePartCommands)
{
DBQueryBuilderPredicatePartCommand command = new DBQueryBuilderPredicatePartCommand();
+ command.setJoinCommandType(DBQueryBuilderJoinCommandType.PARENT);
command.setAlias(alias);
command.setType(commandType);
command.setValue(dbid);
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/PropertySupport.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/PropertySupport.java
index 124b8c6c9b..1892c87548 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/PropertySupport.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/PropertySupport.java
@@ -153,7 +153,7 @@ public class PropertySupport implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
}
@@ -166,31 +166,36 @@ public class PropertySupport implements DBQueryBuilderComponent
@Override
public void buildJoins(Map singleJoins, List multiJoins)
{
- DBQueryBuilderJoinCommand join = singleJoins.get(propertyQName);
- if (join == null)
+ // JOIN is only required for ordering - predicts are done via semi-join
+ alias = "PROP";
+ if(commandType == DBQueryBuilderPredicatePartCommandType.ORDER)
{
- if (pair != null)
+ DBQueryBuilderJoinCommand join = singleJoins.get(propertyQName);
+ if (join == null)
{
- join = new DBQueryBuilderJoinCommand();
- alias = "PROP_" + singleJoins.size();
- join.setAlias(alias);
- join.setOuter(leftOuter);
- join.setType(joinCommandType);
- join.setQnameId(pair.getFirst());
- singleJoins.put(propertyQName, join);
+ if (pair != null)
+ {
+ join = new DBQueryBuilderJoinCommand();
+ alias = "PROP_" + singleJoins.size();
+ join.setAlias(alias);
+ join.setOuter(leftOuter);
+ join.setType(joinCommandType);
+ join.setQnameId(pair.getFirst());
+ singleJoins.put(propertyQName, join);
+ }
+ else
+ {
+ // there is no value for this property in the DB
+ }
}
- else
+
+ if(join != null)
{
- // there is no value for this property in the DB
- }
- }
-
- if(join != null)
- {
- alias = join.getAlias();
- if(leftOuter)
- {
- join.setOuter(true);
+ alias = join.getAlias();
+ if(leftOuter)
+ {
+ join.setOuter(true);
+ }
}
}
}
@@ -206,6 +211,7 @@ public class PropertySupport implements DBQueryBuilderComponent
if (pair == null)
{
DBQueryBuilderPredicatePartCommand command = new DBQueryBuilderPredicatePartCommand();
+ command.setJoinCommandType(DBQueryBuilderJoinCommandType.NODE);
switch(joinCommandType)
{
case NODE:
@@ -232,8 +238,9 @@ public class PropertySupport implements DBQueryBuilderComponent
}
else
{
-
DBQueryBuilderPredicatePartCommand command = new DBQueryBuilderPredicatePartCommand();
+ command.setJoinCommandType(joinCommandType);
+ command.setQnameId(pair.getFirst());
switch(joinCommandType)
{
case NODE:
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/TypeSupport.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/TypeSupport.java
index a8f409d928..df1ad34415 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/TypeSupport.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/TypeSupport.java
@@ -78,7 +78,7 @@ public class TypeSupport implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
}
@@ -105,6 +105,7 @@ public class TypeSupport implements DBQueryBuilderComponent
public void buildPredicateCommands(List predicatePartCommands)
{
DBQueryBuilderPredicatePartCommand command = new DBQueryBuilderPredicatePartCommand();
+ command.setJoinCommandType(DBQueryBuilderJoinCommandType.NODE);
command.setAlias("node");
command.setFieldName("type_qname_id");
command.setType(commandType);
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/UUIDSupport.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/UUIDSupport.java
index 1a23e9f3a7..6645e1f2a4 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/UUIDSupport.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/UUIDSupport.java
@@ -104,7 +104,7 @@ public class UUIDSupport implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
}
@@ -125,6 +125,7 @@ public class UUIDSupport implements DBQueryBuilderComponent
public void buildPredicateCommands(List predicatePartCommands)
{
DBQueryBuilderPredicatePartCommand command = new DBQueryBuilderPredicatePartCommand();
+ command.setJoinCommandType(DBQueryBuilderJoinCommandType.NODE);
command.setAlias("node");
command.setType(commandType);
command.setFieldName("uuid");
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBChild.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBChild.java
index 787424c63c..2102b43fa5 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBChild.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBChild.java
@@ -61,7 +61,7 @@ public class DBChild extends Child implements DBQueryBuilderComponent
* @see org.alfresco.repo.search.impl.querymodel.impl.db.DBQueryBuilderComponent#prepare(org.alfresco.service.namespace.NamespaceService, org.alfresco.service.cmr.dictionary.DictionaryService, org.alfresco.repo.domain.qname.QNameDAO, org.alfresco.repo.domain.node.NodeDAO)
*/
@Override
- public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors, Map functionArgs, FunctionEvaluationContext functionContext)
+ public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors, Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
Argument argument = functionArgs.get(ARG_PARENT);
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBDescendant.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBDescendant.java
index dda39a9792..9cc701f888 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBDescendant.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBDescendant.java
@@ -63,7 +63,7 @@ public class DBDescendant extends Descendant implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
throw new QueryModelException("Descendant/IN_TREE() is unsupported");
}
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBEquals.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBEquals.java
index 9c3db66e1e..e4e688c891 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBEquals.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBEquals.java
@@ -72,7 +72,7 @@ public class DBEquals extends Equals implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
setPropertyAndStaticArguments(functionArgs);
Serializable staticValue = getStaticArgument().getValue(functionContext);
@@ -150,7 +150,7 @@ public class DBEquals extends Equals implements DBQueryBuilderComponent
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
propertySupport.setCommandType(DBQueryBuilderPredicatePartCommandType.EQUALS);
propertySupport.setLuceneFunction(functionContext.getLuceneFunction(getFunctionArgument()));
builderSupport = propertySupport;
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBExists.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBExists.java
index ee39e20411..1b99436007 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBExists.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBExists.java
@@ -73,7 +73,7 @@ public class DBExists extends Exists implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
PropertyArgument propertyArgument = (PropertyArgument) functionArgs.get(ARG_PROPERTY);
Argument inverseArgument = functionArgs.get(ARG_NOT);
@@ -186,7 +186,7 @@ public class DBExists extends Exists implements DBQueryBuilderComponent
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
if ((not != null) && (not.equals(Boolean.TRUE)))
{
propertySupport.setCommandType(DBQueryBuilderPredicatePartCommandType.NOTEXISTS);
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSFuzzyTerm.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSFuzzyTerm.java
index 2e8dafae09..097bd8f097 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSFuzzyTerm.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSFuzzyTerm.java
@@ -57,7 +57,7 @@ public class DBFTSFuzzyTerm extends FTSFuzzyTerm implements DBQueryBuilderCompo
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
throw new QueryModelException("Fuzzy term is unsupported");
}
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSPhrase.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSPhrase.java
index 5ae2c6cf94..ab8b390eb9 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSPhrase.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSPhrase.java
@@ -73,7 +73,7 @@ public class DBFTSPhrase extends FTSPhrase implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
Argument argument = functionArgs.get(ARG_PHRASE);
@@ -135,7 +135,7 @@ public class DBFTSPhrase extends FTSPhrase implements DBQueryBuilderComponent
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
propertySupport.setCommandType(DBQueryBuilderPredicatePartCommandType.EQUALS);
builderSupport = propertySupport;
}
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSPrefixTerm.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSPrefixTerm.java
index 3c34c0828e..f35e11d295 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSPrefixTerm.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSPrefixTerm.java
@@ -68,7 +68,7 @@ public class DBFTSPrefixTerm extends FTSPrefixTerm implements DBQueryBuilderComp
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
Argument argument = functionArgs.get(ARG_TERM);
String term = (String) argument.getValue(functionContext);
@@ -91,7 +91,7 @@ public class DBFTSPrefixTerm extends FTSPrefixTerm implements DBQueryBuilderComp
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
propertySupport.setCommandType(DBQueryBuilderPredicatePartCommandType.LIKE);
builderSupport = propertySupport;
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSProximity.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSProximity.java
index 0de69ce6dd..4a5a7fbf71 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSProximity.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSProximity.java
@@ -57,7 +57,7 @@ public class DBFTSProximity extends FTSProximity implements DBQueryBuilderCompon
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
throw new QueryModelException("Proximity term is unsupported");
}
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSRange.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSRange.java
index 6dace0d545..d3d8b21ff3 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSRange.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSRange.java
@@ -57,7 +57,7 @@ public class DBFTSRange extends FTSRange implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
throw new QueryModelException("Range term is unsupported");
}
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSTerm.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSTerm.java
index 7e6989533c..26bdcf4e3f 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSTerm.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSTerm.java
@@ -72,7 +72,7 @@ public class DBFTSTerm extends FTSTerm implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
Argument argument = functionArgs.get(ARG_TERM);
String term = (String) argument.getValue(functionContext);
@@ -133,7 +133,7 @@ public class DBFTSTerm extends FTSTerm implements DBQueryBuilderComponent
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
propertySupport.setCommandType(DBQueryBuilderPredicatePartCommandType.EQUALS);
builderSupport = propertySupport;
}
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSWildTerm.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSWildTerm.java
index fa5ababd09..784cd87d63 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSWildTerm.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBFTSWildTerm.java
@@ -57,7 +57,7 @@ public class DBFTSWildTerm extends FTSWildTerm implements DBQueryBuilderCompone
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
throw new QueryModelException("Wild term is unsupported");
}
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBGreaterThan.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBGreaterThan.java
index 1a6998d904..e0e0670e5b 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBGreaterThan.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBGreaterThan.java
@@ -64,7 +64,7 @@ public class DBGreaterThan extends GreaterThan implements DBQueryBuilderComponen
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
setPropertyAndStaticArguments(functionArgs);
Serializable staticValue = getStaticArgument().getValue(functionContext);
@@ -109,7 +109,7 @@ public class DBGreaterThan extends GreaterThan implements DBQueryBuilderComponen
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
propertySupport.setCommandType(getStaticPosition().equals(ARG_RHS) ? DBQueryBuilderPredicatePartCommandType.GT : DBQueryBuilderPredicatePartCommandType.GT.propertyAndValueReversed());
propertySupport.setLuceneFunction(functionContext.getLuceneFunction(getFunctionArgument()));
builderSupport = propertySupport;
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBGreaterThanOrEquals.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBGreaterThanOrEquals.java
index f34bafe58d..bac9e31b69 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBGreaterThanOrEquals.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBGreaterThanOrEquals.java
@@ -69,7 +69,7 @@ public class DBGreaterThanOrEquals extends GreaterThanOrEquals implements DBQuer
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
setPropertyAndStaticArguments(functionArgs);
Serializable staticValue = getStaticArgument().getValue(functionContext);
@@ -114,7 +114,7 @@ public class DBGreaterThanOrEquals extends GreaterThanOrEquals implements DBQuer
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
propertySupport.setCommandType(getStaticPosition().equals(ARG_RHS) ? DBQueryBuilderPredicatePartCommandType.GTE : DBQueryBuilderPredicatePartCommandType.GTE.propertyAndValueReversed());
propertySupport.setLuceneFunction(functionContext.getLuceneFunction(getFunctionArgument()));
builderSupport = propertySupport;
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBIn.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBIn.java
index 826261b24b..09f92be5e5 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBIn.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBIn.java
@@ -73,7 +73,7 @@ public class DBIn extends In implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
PropertyArgument propertyArgument = (PropertyArgument) functionArgs.get(ARG_PROPERTY);
@@ -209,7 +209,7 @@ public class DBIn extends In implements DBQueryBuilderComponent
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
if((not != null) && (not.equals(Boolean.TRUE)))
{
propertySupport.setCommandType(DBQueryBuilderPredicatePartCommandType.NOTIN);
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLessThan.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLessThan.java
index 59e5eb928a..1ce1c606b8 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLessThan.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLessThan.java
@@ -69,7 +69,7 @@ public class DBLessThan extends LessThan implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
setPropertyAndStaticArguments(functionArgs);
Serializable staticValue = getStaticArgument().getValue(functionContext);
@@ -114,7 +114,7 @@ public class DBLessThan extends LessThan implements DBQueryBuilderComponent
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
propertySupport.setCommandType(getStaticPosition().equals(ARG_RHS) ? DBQueryBuilderPredicatePartCommandType.LT : DBQueryBuilderPredicatePartCommandType.LT.propertyAndValueReversed());
propertySupport.setLuceneFunction(functionContext.getLuceneFunction(getFunctionArgument()));
builderSupport = propertySupport;
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLessThanOrEquals.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLessThanOrEquals.java
index c33fedae62..f0fab7b7eb 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLessThanOrEquals.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLessThanOrEquals.java
@@ -64,7 +64,7 @@ public class DBLessThanOrEquals extends LessThanOrEquals implements DBQueryBuild
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
setPropertyAndStaticArguments(functionArgs);
Serializable staticValue = getStaticArgument().getValue(functionContext);
@@ -109,7 +109,7 @@ public class DBLessThanOrEquals extends LessThanOrEquals implements DBQueryBuild
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
propertySupport.setCommandType(getStaticPosition().equals(ARG_RHS) ? DBQueryBuilderPredicatePartCommandType.LTE : DBQueryBuilderPredicatePartCommandType.LTE.propertyAndValueReversed());
propertySupport.setLuceneFunction(functionContext.getLuceneFunction(getFunctionArgument()));
builderSupport = propertySupport;
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLike.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLike.java
index cba4a85e50..52a662e498 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLike.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLike.java
@@ -64,7 +64,7 @@ public class DBLike extends Like implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
PropertyArgument propertyArgument = (PropertyArgument) functionArgs.get(ARG_PROPERTY);
Argument inverseArgument = functionArgs.get(ARG_NOT);
@@ -103,7 +103,7 @@ public class DBLike extends Like implements DBQueryBuilderComponent
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
if((not != null) && (not.equals(Boolean.TRUE)))
{
propertySupport.setCommandType(DBQueryBuilderPredicatePartCommandType.NOTLIKE);
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLower.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLower.java
index 4b39fad5af..50d5ed9f59 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLower.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBLower.java
@@ -59,7 +59,7 @@ public class DBLower extends Lower implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
// TODO Auto-generated method stub
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBNotEquals.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBNotEquals.java
index 72465c98fe..0485d6b62f 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBNotEquals.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBNotEquals.java
@@ -67,7 +67,7 @@ public class DBNotEquals extends NotEquals implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
setPropertyAndStaticArguments(functionArgs);
Serializable staticValue = getStaticArgument().getValue(functionContext);
@@ -143,7 +143,7 @@ public class DBNotEquals extends NotEquals implements DBQueryBuilderComponent
propertySupport.setPropertyDataType(DBQuery.getDataTypeDefinition(dictionaryService, propertyQName));
propertySupport.setPair(qnameDAO.getQName(propertyQName));
propertySupport.setJoinCommandType(DBQuery.getJoinCommandType(propertyQName));
- propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName));
+ propertySupport.setFieldName(DBQuery.getFieldName(dictionaryService, propertyQName, supportBooleanFloatAndDouble));
propertySupport.setCommandType(DBQueryBuilderPredicatePartCommandType.NOTEQUALS);
propertySupport.setLuceneFunction(functionContext.getLuceneFunction(getFunctionArgument()));
builderSupport = propertySupport;
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBPropertyAccessor.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBPropertyAccessor.java
index b54275e08b..b0bd418b5b 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBPropertyAccessor.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBPropertyAccessor.java
@@ -57,7 +57,7 @@ public class DBPropertyAccessor extends PropertyAccessor implements DBQueryBuild
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
// TODO Auto-generated method stub
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBScore.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBScore.java
index efd2914c1c..a22a4744b8 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBScore.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBScore.java
@@ -57,7 +57,7 @@ public class DBScore extends Score implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
// TODO Auto-generated method stub
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBUpper.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBUpper.java
index ef396782a6..71bad1f387 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBUpper.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/functions/DBUpper.java
@@ -57,7 +57,7 @@ public class DBUpper extends Upper implements DBQueryBuilderComponent
*/
@Override
public void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set selectors,
- Map functionArgs, FunctionEvaluationContext functionContext)
+ Map functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
{
// TODO Auto-generated method stub
diff --git a/source/java/org/alfresco/repo/search/impl/solr/DbAftsQueryLanguage.java b/source/java/org/alfresco/repo/search/impl/solr/DbAftsQueryLanguage.java
index 67856a8156..f2bf88c83c 100644
--- a/source/java/org/alfresco/repo/search/impl/solr/DbAftsQueryLanguage.java
+++ b/source/java/org/alfresco/repo/search/impl/solr/DbAftsQueryLanguage.java
@@ -18,10 +18,7 @@
*/
package org.alfresco.repo.search.impl.solr;
-import org.alfresco.repo.admin.patch.AppliedPatch;
import org.alfresco.repo.admin.patch.OptionalPatchApplicationCheckBootstrapBean;
-import org.alfresco.repo.admin.patch.PatchService;
-import org.alfresco.repo.search.IndexerAndSearcher;
import org.alfresco.repo.search.impl.lucene.ADMLuceneSearcherImpl;
import org.alfresco.repo.search.impl.lucene.AbstractAlfrescoFtsQueryLanguage;
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
@@ -30,7 +27,6 @@ import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.SearchParameters;
import org.alfresco.service.namespace.NamespacePrefixResolver;
import org.alfresco.service.namespace.NamespaceService;
-import org.springframework.beans.factory.InitializingBean;
/**
* @author Andy
@@ -42,18 +38,28 @@ public class DbAftsQueryLanguage extends AbstractAlfrescoFtsQueryLanguage
DictionaryService dictionaryService;
- OptionalPatchApplicationCheckBootstrapBean optionalPatchApplicationCheckBootstrapBean;
+ OptionalPatchApplicationCheckBootstrapBean metadataIndexCheck1;
+ OptionalPatchApplicationCheckBootstrapBean metadataIndexCheck2;
+
/**
- * @param optionalPatchApplicationCheckBootstrapBean the optionalPatchApplicationCheckBootstrapBean to set
+ * @param metadataIndexCheck1 the metadataIndexCheck1 to set
*/
- public void setOptionalPatchApplicationCheckBootstrapBean(OptionalPatchApplicationCheckBootstrapBean optionalPatchApplicationCheckBootstrapBean)
+ public void setMetadataIndexCheck1(OptionalPatchApplicationCheckBootstrapBean metadataIndexCheck1)
{
- this.optionalPatchApplicationCheckBootstrapBean = optionalPatchApplicationCheckBootstrapBean;
+ this.metadataIndexCheck1 = metadataIndexCheck1;
}
/**
- * @param namespaceService the namespaceService to set
+ * @param metadataIndexCheck2 the metadataIndexCheck2 to set
+ */
+ public void setMetadataIndexCheck2(OptionalPatchApplicationCheckBootstrapBean metadataIndexCheck2)
+ {
+ this.metadataIndexCheck2 = metadataIndexCheck2;
+ }
+
+ /**
+ ** @param namespaceService the namespaceService to set
*/
public void setNamespaceService(NamespaceService namespaceService)
{
@@ -94,7 +100,7 @@ public class DbAftsQueryLanguage extends AbstractAlfrescoFtsQueryLanguage
@Override
public ResultSet executeQuery(SearchParameters searchParameters, ADMLuceneSearcherImpl admLuceneSearcher)
{
- if(optionalPatchApplicationCheckBootstrapBean.getPatchApplied())
+ if(metadataIndexCheck1.getPatchApplied())
{
return super.executeQuery(searchParameters, admLuceneSearcher);
}
diff --git a/source/java/org/alfresco/repo/search/impl/solr/DbCmisQueryLanguage.java b/source/java/org/alfresco/repo/search/impl/solr/DbCmisQueryLanguage.java
index 25adf78c44..f164c0ca40 100644
--- a/source/java/org/alfresco/repo/search/impl/solr/DbCmisQueryLanguage.java
+++ b/source/java/org/alfresco/repo/search/impl/solr/DbCmisQueryLanguage.java
@@ -50,14 +50,27 @@ public class DbCmisQueryLanguage extends AbstractLuceneQueryLanguage
private CMISDictionaryService cmisDictionaryService;
- OptionalPatchApplicationCheckBootstrapBean optionalPatchApplicationCheckBootstrapBean;
+ OptionalPatchApplicationCheckBootstrapBean metadataIndexCheck1;
+ OptionalPatchApplicationCheckBootstrapBean metadataIndexCheck2;
+
+
+
/**
- * @param optionalPatchApplicationCheckBootstrapBean the optionalPatchApplicationCheckBootstrapBean to set
+ * @param metadataIndexCheck1 the metadataIndexCheck1 to set
*/
- public void setOptionalPatchApplicationCheckBootstrapBean(OptionalPatchApplicationCheckBootstrapBean optionalPatchApplicationCheckBootstrapBean)
+ public void setMetadataIndexCheck1(OptionalPatchApplicationCheckBootstrapBean metadataIndexCheck1)
{
- this.optionalPatchApplicationCheckBootstrapBean = optionalPatchApplicationCheckBootstrapBean;
+ this.metadataIndexCheck1 = metadataIndexCheck1;
+ }
+
+
+ /**
+ * @param metadataIndexCheck2 the metadataIndexCheck2 to set
+ */
+ public void setMetadataIndexCheck2(OptionalPatchApplicationCheckBootstrapBean metadataIndexCheck2)
+ {
+ this.metadataIndexCheck2 = metadataIndexCheck2;
}
@@ -90,7 +103,7 @@ public class DbCmisQueryLanguage extends AbstractLuceneQueryLanguage
@Override
public ResultSet executeQuery(SearchParameters searchParameters, ADMLuceneSearcherImpl admLuceneSearcher)
{
- if(optionalPatchApplicationCheckBootstrapBean.getPatchApplied())
+ if(metadataIndexCheck1.getPatchApplied())
{
return executeQueryImpl(searchParameters, admLuceneSearcher);
}