Author: thomasm
Date: Wed Mar 26 15:48:22 2014
New Revision: 1581892
URL: http://svn.apache.org/r1581892
Log:
OAK-1620 Index cost calculation integer overflow
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexLookup.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexLookup.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexLookup.java?rev=1581892&r1=1581891&r2=1581892&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexLookup.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexLookup.java
Wed Mar 26 15:48:22 2014
@@ -44,7 +44,7 @@ public class OrderedPropertyIndexLookup
/**
* we're slightly more expensive than the standard PropertyIndex.
*/
- private static final int COST_OVERHEAD = 3;
+ private static final double COST_OVERHEAD = 3;
public OrderedPropertyIndexLookup(NodeState root) {
super(root);
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java?rev=1581892&r1=1581891&r2=1581892&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
Wed Mar 26 15:48:22 2014
@@ -62,7 +62,7 @@ public class PropertyIndexLookup {
/**
* The cost overhead to use the index in number of read operations.
*/
- private static final int COST_OVERHEAD = 2;
+ private static final double COST_OVERHEAD = 2;
/**
* The maximum cost when the index can be used.
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java?rev=1581892&r1=1581891&r2=1581892&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
Wed Mar 26 15:48:22 2014
@@ -795,6 +795,9 @@ public class QueryImpl implements Query
if (LOG.isDebugEnabled()) {
LOG.debug("cost for " + index.getIndexName() + " is " + cost);
}
+ if (cost < 0) {
+ LOG.error("cost below 0 for " + index.getIndexName() + " is "
+ cost);
+ }
if (cost < bestCost) {
bestCost = cost;
bestIndex = index;