Index: storage/src/main/java/org/apache/kylin/storage/StorageContext.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- storage/src/main/java/org/apache/kylin/storage/StorageContext.java	(revision 445ae274fffa52825fbc2fe0a72e4f3a13993ba9)
+++ storage/src/main/java/org/apache/kylin/storage/StorageContext.java	(revision )
@@ -44,6 +44,7 @@
     private String connUrl;
     private int threshold;
     private int limit;
+    private int offset;
     private boolean hasSort;
     private List<MeasureDesc> sortMeasures;
     private List<OrderEnum> sortOrders;
@@ -110,6 +111,14 @@
 
     public void setLimit(int l) {
         this.limit = l;
+    }
+
+    public int getOffset() {
+        return offset;
+    }
+
+    public void setOffset(int offset) {
+        this.offset = offset;
     }
 
     public void enableLimit() {
Index: query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java	(revision 445ae274fffa52825fbc2fe0a72e4f3a13993ba9)
+++ query/src/main/java/org/apache/kylin/query/relnode/OLAPLimitRel.java	(revision )
@@ -78,6 +78,11 @@
         Number limitValue = (Number) (((RexLiteral) localFetch).getValue());
         int limit = limitValue.intValue();
         this.context.storageContext.setLimit(limit);
+        if(localOffset != null) {
+            Number offsetValue = (Number) (((RexLiteral) localOffset).getValue());
+            int offset = offsetValue.intValue();
+            this.context.storageContext.setOffset(offset);
+        }
     }
 
     private ColumnRowType buildColumnRowType() {
Index: storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java	(revision 445ae274fffa52825fbc2fe0a72e4f3a13993ba9)
+++ storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java	(revision )
@@ -89,7 +89,7 @@
     @Override
     public boolean hasNext() {
         // 1. check limit
-        if (context.isLimitEnabled() && scanCount >= context.getLimit()) {
+        if (context.isLimitEnabled() && scanCount >= context.getLimit() + context.getOffset()) {
             return false;
         }
         // 2. check partial result
