You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2017/02/28 10:18:31 UTC

kylin git commit: KYLIN-2302 push the value in statement.setMaxRows(10) to storage

Repository: kylin
Updated Branches:
  refs/heads/master e875e8704 -> cda4df410


KYLIN-2302 push the value in statement.setMaxRows(10) to storage


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/cda4df41
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/cda4df41
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/cda4df41

Branch: refs/heads/master
Commit: cda4df4106551f17311fde737d349af91790b3da
Parents: e875e87
Author: Hongbin Ma <ma...@apache.org>
Authored: Tue Feb 28 18:18:36 2017 +0800
Committer: Hongbin Ma <ma...@apache.org>
Committed: Tue Feb 28 18:18:36 2017 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/storage/StorageContext.java    | 16 +++++++++++-----
 .../apache/kylin/query/relnode/OLAPLimitRel.java    |  2 ++
 2 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/cda4df41/core-storage/src/main/java/org/apache/kylin/storage/StorageContext.java
----------------------------------------------------------------------
diff --git a/core-storage/src/main/java/org/apache/kylin/storage/StorageContext.java b/core-storage/src/main/java/org/apache/kylin/storage/StorageContext.java
index 4713d71..a3a851f 100644
--- a/core-storage/src/main/java/org/apache/kylin/storage/StorageContext.java
+++ b/core-storage/src/main/java/org/apache/kylin/storage/StorageContext.java
@@ -20,6 +20,7 @@ package org.apache.kylin.storage;
 
 import java.util.concurrent.atomic.AtomicLong;
 
+import org.apache.kylin.common.debug.BackdoorToggles;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.metadata.realization.IRealization;
 import org.slf4j.Logger;
@@ -35,6 +36,7 @@ public class StorageContext {
 
     private String connUrl;
     private int limit = Integer.MAX_VALUE;
+    private boolean overlookOuterLimit = false;
     private int offset = 0;
     private int finalPushDownLimit = Integer.MAX_VALUE;
     private boolean hasSort = false;
@@ -62,7 +64,15 @@ public class StorageContext {
     }
 
     public int getLimit() {
-        return limit;
+        if (overlookOuterLimit) {
+            return limit;
+        } else {
+            return Math.min(limit, BackdoorToggles.getStatementMaxRows());
+        }
+    }
+
+    public void setOverlookOuterLimit() {
+        this.overlookOuterLimit = true;
     }
 
     public void setLimit(int l) {
@@ -81,10 +91,6 @@ public class StorageContext {
         this.offset = offset;
     }
 
-    public void enableLimit() {
-        this.limitEnabled = true;
-    }
-
     public boolean isLimitEnabled() {
         return this.limitEnabled;
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/cda4df41/query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java
index 8179807..2a248cc 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java
@@ -91,6 +91,8 @@ public class OLAPLimitRel extends SingleRel implements OLAPRel {
             }
 
             context.afterLimit = true;
+        } else {
+            this.context.storageContext.setOverlookOuterLimit();
         }
     }