This is an automated email from the ASF dual-hosted git repository.

shaofengshi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/master by this push:
     new bfe1364  KYLIN-3748 No realization found exception thrown when a ready 
cube is building
bfe1364 is described below

commit bfe1364297df1d192fb70905d3ace19f67380a79
Author: nichunen <chunen...@kyligence.io>
AuthorDate: Fri Dec 28 22:26:07 2018 +0800

    KYLIN-3748 No realization found exception thrown when a ready cube is 
building
---
 .../apache/kylin/cube/CubeCapabilityChecker.java    | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git 
a/core-cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java 
b/core-cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
index d05a7a3..3ed4abe 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
@@ -77,8 +77,10 @@ public class CubeCapabilityChecker {
                         
cube.getDescriptor().listDimensionColumnsIncludingDerived());
             }
         } else {
-            //for non query-on-facttable 
-            if 
(cube.getSegments().get(0).getSnapshots().containsKey(digest.factTable) || 
cube.getSnapshots().containsKey(digest.factTable)) {
+            //for non query-on-facttable
+            CubeSegment latestReadySeg = cube.getLatestReadySegment();
+            if ((latestReadySeg != null && 
latestReadySeg.getSnapshots().containsKey(digest.factTable))
+                    || cube.getSnapshots().containsKey(digest.factTable)) {
 
                 Set<TblColRef> dimCols = 
Sets.newHashSet(cube.getModel().findFirstTable(digest.factTable).getColumns());
 
@@ -121,19 +123,22 @@ public class CubeCapabilityChecker {
                 && MassInTupleFilter.containsMassInTupleFilter(digest.filter)) 
{
             logger.info(
                     "Exclude cube " + cube.getName() + " because only v2 
storage + v2 query engine supports massin");
-            result.incapableCause = 
CapabilityResult.IncapableCause.create(CapabilityResult.IncapableType.UNSUPPORT_MASSIN);
+            result.incapableCause = CapabilityResult.IncapableCause
+                    .create(CapabilityResult.IncapableType.UNSUPPORT_MASSIN);
             return result;
         }
 
         if (digest.limitPrecedesAggr) {
             logger.info("Exclude cube " + cube.getName() + " because there's 
limit preceding aggregation");
-            result.incapableCause = 
CapabilityResult.IncapableCause.create(CapabilityResult.IncapableType.LIMIT_PRECEDE_AGGR);
+            result.incapableCause = CapabilityResult.IncapableCause
+                    .create(CapabilityResult.IncapableType.LIMIT_PRECEDE_AGGR);
             return result;
         }
 
         if (digest.isRawQuery && rootFactTable.equals(digest.factTable)) {
             if (cube.getConfig().isDisableCubeNoAggSQL()) {
-                result.incapableCause = 
CapabilityResult.IncapableCause.create(CapabilityResult.IncapableType.UNSUPPORT_RAWQUERY);
+                result.incapableCause = CapabilityResult.IncapableCause
+                        
.create(CapabilityResult.IncapableType.UNSUPPORT_RAWQUERY);
                 return result;
             } else {
                 result.influences.add(new CapabilityInfluence() {
@@ -213,7 +218,7 @@ public class CubeCapabilityChecker {
     }
 
     private static void tryDimensionAsMeasures(Collection<FunctionDesc> 
unmatchedAggregations, CapabilityResult result,
-                                               Set<TblColRef> dimCols) {
+            Set<TblColRef> dimCols) {
 
         Iterator<FunctionDesc> it = unmatchedAggregations.iterator();
         while (it.hasNext()) {
@@ -242,8 +247,8 @@ public class CubeCapabilityChecker {
 
     // custom measure types can cover unmatched dimensions or measures
     private static void tryCustomMeasureTypes(Collection<TblColRef> 
unmatchedDimensions,
-                                              Collection<FunctionDesc> 
unmatchedAggregations, SQLDigest digest, CubeInstance cube,
-                                              CapabilityResult result) {
+            Collection<FunctionDesc> unmatchedAggregations, SQLDigest digest, 
CubeInstance cube,
+            CapabilityResult result) {
         CubeDesc cubeDesc = cube.getDescriptor();
         List<String> influencingMeasures = Lists.newArrayList();
         for (MeasureDesc measure : cubeDesc.getMeasures()) {

Reply via email to