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

Reply via email to