Author: knguyen
Date: Wed Aug 22 17:50:40 2007
New Revision: 18240
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18240&repname=
=3Djahia
Log:
JAHIA-2146, MAN-15: fix and optimization for container ranking. =
use IN (1,2,3) syntax, nb ids max =3D 50.
Modified:
branches/JAHIA-4-1-BRANCH/etc/config/jahia.skeleton
branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/containers/Contai=
nerFactory.java
branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/containers/JahiaC=
ontainerUtilsDB.java
branches/JAHIA-4-1-BRANCH/src/java/org/jahia/settings/SettingsBean.java
branches/JAHIA-4-1-BRANCH/src/java/org/jahia/utils/JahiaTools.java
Modified: branches/JAHIA-4-1-BRANCH/etc/config/jahia.skeleton
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/etc/config/jahia.skeleton&rev=3D18240&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-4-1-BRANCH/etc/config/jahia.skeleton (original)
+++ branches/JAHIA-4-1-BRANCH/etc/config/jahia.skeleton Wed Aug 22 17:50:40=
2007
@@ -465,7 +465,7 @@
######################################################################
### Used for writing in an optimized way some sql queries ( like container=
sorting )
######################################################################
-sqlWhereMaxClauses =3D 10
+sqlWhereMaxClauses =3D 50
=
### Added settings ##################
=
Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/containers/=
ContainerFactory.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/services/containers/ContainerFactory.java&rev=3D182=
40&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/containers/Contai=
nerFactory.java (original)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/containers/Contai=
nerFactory.java Wed Aug 22 17:50:40 2007
@@ -395,8 +395,6 @@
resultBitSet =3D (BitSet) searchResult.bits ().clone (=
);
}
}
- boolean searchLimitedToOneCtnList =3D ( cSearcher =3D=3D null =
|| ( (cSearcher instanceof ContainerSearcher)
- && !((ContainerSearcher)cSearcher).isSiteModeSearching=
()) );
=
// Apply container list filtering if needed.
if ((searchResult =3D=3D null) ||
@@ -409,8 +407,6 @@
}
}
=
- boolean filteringLimitedToOneCtnList =3D ( cFilters =3D=3D nul=
l || !cFilters.isSiteModeFiltering() );
-
// Retrieve previous search and filtering bitset from cache
HttpSession session =3D params.getSession ();
BitSet cachedResultBitSet =3D null;
@@ -458,21 +454,10 @@
// so return the list of matching ctn ids, without sorting
=
try {
- Vector ctnIds =3D null;
- if (resultBitSet =3D=3D null ||
- (searchLimitedToOneCtnList && filteringLimited=
ToOneCtnList)) {
- ctnIds =3D
- ServicesRegistry.getInstance ()
+ if (resultBitSet =3D=3D null){
+ return ServicesRegistry.getInstance ()
.getJahiaContainersService ()
.getctnidsInList (clist.getID(), loadVersi=
on);
-
- return ctnIds;
- } else if (resultBitSet.length()=3D=3D0){
- return new Vector();
- } else if (resultBitSet.cardinality()=3D=3D1){
- ctnIds =3D new Vector();
- ctnIds.add(new Integer(resultBitSet.nextSetBit(0))=
);
- return ctnIds;
} else {
return ServicesRegistry.getInstance ()
.getJahiaContainersService ().getCtnIds (t=
rue, resultBitSet, loadVersion);
Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/containers/=
JahiaContainerUtilsDB.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/services/containers/JahiaContainerUtilsDB.java&rev=
=3D18240&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/containers/JahiaC=
ontainerUtilsDB.java (original)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/services/containers/JahiaC=
ontainerUtilsDB.java Wed Aug 22 17:50:40 2007
@@ -929,7 +929,6 @@
} // db_get_container_list_ids
*/
=
-
/**
* loads all the container ids of a container list. This list is sorted
* by rank.
@@ -1734,7 +1733,15 @@
public Vector db_get_all_containers_id (boolean orderByRanking, BitSet=
ids, EntryLoadRequest loadVersion)
throws JahiaException {
=
- Vector result;
+ if (ids =3D=3D null || ids.length()=3D=3D0){
+ return new Vector();
+ } else if (ids.cardinality()=3D=3D1){
+ Vector v =3D new Vector();
+ v.add(new Integer(ids.nextSetBit(0)));
+ return v;
+ }
+ =
+ Vector result =3D null;
Connection dbConn =3D null;
PreparedStatement stmt =3D null;
ResultSet rs =3D null;
Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/settings/SettingsBea=
n.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/settings/SettingsBean.java&rev=3D18240&repname=3Dja=
hia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-4-1-BRANCH/src/java/org/jahia/settings/SettingsBean.java=
(original)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/settings/SettingsBean.java=
Wed Aug 22 17:50:40 2007
@@ -229,7 +229,7 @@
private long pageGenerationWaitTime =3D 120000; // in milliseconds
=
// used by some sql queries to limit the scope of returned row
- private int sqlWhereMaxClauses =3D 10;
+ private int sqlWhereMaxClauses =3D 50;
=
/**
* Default constructor.
Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/utils/JahiaTools.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/utils/JahiaTools.java&rev=3D18240&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-4-1-BRANCH/src/java/org/jahia/utils/JahiaTools.java (ori=
ginal)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/utils/JahiaTools.java Wed =
Aug 22 17:50:40 2007
@@ -1257,14 +1257,33 @@
if (!alwaysPrefixWithWhereKeyword && prefixWithWhereKeyword){
buff.append(" WHERE ");
}
- buff.append(" ( ");
- for(int i=3Dids.nextSetBit(0); i>=3D0; i=3Dids.nextSetBit(i+1)=
) {
- buff.append(" ").append(columnName).append(valueOperator).=
append(String.valueOf(i)).append(" ");
- if ( ids.nextSetBit(i+1)>=3D0 ){
- buff.append(logicOperator);
+ boolean useIn =3D false;
+ if ( valueOperator.indexOf("!=3D") !=3D -1 || valueOperator.in=
dexOf("<>") !=3D -1 ){
+ buff.append(columnName).append(" NOT IN (");
+ useIn =3D true;
+ } else if ( valueOperator.indexOf("=3D") !=3D -1 ) {
+ useIn =3D true;
+ buff.append(columnName).append(" IN (");
+ } else {
+ buff.append(" ( ");
+ }
+ if ( !useIn ){
+ for(int i=3Dids.nextSetBit(0); i>=3D0; i=3Dids.nextSetBit(=
i+1)) {
+ buff.append(" ").append(columnName).append(valueOperat=
or).append(String.valueOf(i)).append(" ");
+ if ( ids.nextSetBit(i+1)>=3D0 ){
+ buff.append(logicOperator);
+ }
+ }
+ buff.append(" ) ").append(postFixString);
+ } else {
+ for(int i=3Dids.nextSetBit(0); i>=3D0; i=3Dids.nextSetBit(=
i+1)) {
+ buff.append(String.valueOf(i));
+ if ( ids.nextSetBit(i+1)>=3D0 ){
+ buff.append(",");
+ }
}
+ buff.append(") ").append(postFixString);
}
- buff.append(" ) ").append(postFixString);
}
return buff.toString();
}
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list