You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by kh...@apache.org on 2017/02/24 02:56:28 UTC

hive git commit: HIVE-15668 : change REPL DUMP syntax to use "LIMIT" instead of "BATCH" keyword

Repository: hive
Updated Branches:
  refs/heads/master 27683610f -> 4f18acd0f


HIVE-15668 : change REPL DUMP syntax to use "LIMIT" instead of "BATCH" keyword


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

Branch: refs/heads/master
Commit: 4f18acd0ff52acce292daccb82207940c1d766cd
Parents: 2768361
Author: Sushanth Sowmyan <kh...@gmail.com>
Authored: Thu Feb 23 18:55:11 2017 -0800
Committer: Sushanth Sowmyan <kh...@gmail.com>
Committed: Thu Feb 23 18:56:24 2017 -0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hive/ql/parse/HiveLexer.g   |  1 -
 .../org/apache/hadoop/hive/ql/parse/HiveParser.g  |  8 ++++----
 .../ql/parse/ReplicationSemanticAnalyzer.java     | 18 +++++++-----------
 .../ql/parse/TestReplicationSemanticAnalyzer.java |  8 ++++----
 4 files changed, 15 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/4f18acd0/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
index f80642b..ad61f83 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
@@ -340,7 +340,6 @@ KW_MERGE: 'MERGE';
 KW_MATCHED: 'MATCHED';
 KW_REPL: 'REPL';
 KW_DUMP: 'DUMP';
-KW_BATCH: 'BATCH';
 KW_STATUS: 'STATUS';
 KW_VECTORIZATION: 'VECTORIZATION';
 KW_SUMMARY: 'SUMMARY';

http://git-wip-us.apache.org/repos/asf/hive/blob/4f18acd0/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
index b4b5bfb..61778f6 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
@@ -386,10 +386,10 @@ TOK_MERGE;
 TOK_MATCHED;
 TOK_NOT_MATCHED;
 TOK_UPDATE;
-TOK_DELETE;TOK_REPL_DUMP;
+TOK_DELETE;
+TOK_REPL_DUMP;
 TOK_REPL_LOAD;
 TOK_REPL_STATUS;
-TOK_BATCH;
 TOK_TO;
 TOK_ONLY;
 TOK_SUMMARY;
@@ -817,9 +817,9 @@ replDumpStatement
         (dbName=identifier) (DOT tblName=identifier)?
         (KW_FROM (eventId=Number)
           (KW_TO (rangeEnd=Number))?
-          (KW_BATCH (batchSize=Number))?
+          (KW_LIMIT (batchSize=Number))?
         )?
-    -> ^(TOK_REPL_DUMP $dbName $tblName? ^(TOK_FROM $eventId (TOK_TO $rangeEnd)? (TOK_BATCH $batchSize)?)? )
+    -> ^(TOK_REPL_DUMP $dbName $tblName? ^(TOK_FROM $eventId (TOK_TO $rangeEnd)? (TOK_LIMIT $batchSize)?)? )
     ;
 
 replLoadStatement

http://git-wip-us.apache.org/repos/asf/hive/blob/4f18acd0/ql/src/java/org/apache/hadoop/hive/ql/parse/ReplicationSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ReplicationSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ReplicationSemanticAnalyzer.java
index 37baca1..d24eb59 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ReplicationSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ReplicationSemanticAnalyzer.java
@@ -95,7 +95,7 @@ public class ReplicationSemanticAnalyzer extends BaseSemanticAnalyzer {
   private String tblNameOrPattern;
   private Long eventFrom;
   private Long eventTo;
-  private Integer batchSize;
+  private Integer maxEventLimit;
   // Base path for REPL LOAD
   private String path;
 
@@ -290,8 +290,8 @@ public class ReplicationSemanticAnalyzer extends BaseSemanticAnalyzer {
                 Long.parseLong(PlanUtils.stripQuotes(fromNode.getChild(numChild + 1).getText()));
             // skip the next child, since we already took care of it
             numChild++;
-          } else if (fromNode.getChild(numChild).getType() == TOK_BATCH) {
-            batchSize =
+          } else if (fromNode.getChild(numChild).getType() == TOK_LIMIT) {
+            maxEventLimit =
                 Integer.parseInt(PlanUtils.stripQuotes(fromNode.getChild(numChild + 1).getText()));
             // skip the next child, since we already took care of it
             numChild++;
@@ -311,7 +311,7 @@ public class ReplicationSemanticAnalyzer extends BaseSemanticAnalyzer {
   private void analyzeReplDump(ASTNode ast) throws SemanticException {
     LOG.debug("ReplicationSemanticAnalyzer.analyzeReplDump: " + String.valueOf(dbNameOrPattern)
         + "." + String.valueOf(tblNameOrPattern) + " from " + String.valueOf(eventFrom) + " to "
-        + String.valueOf(eventTo) + " batchsize " + String.valueOf(batchSize));
+        + String.valueOf(eventTo) + " maxEventLimit " + String.valueOf(maxEventLimit));
     String replRoot = conf.getVar(HiveConf.ConfVars.REPLDIR);
     Path dumpRoot = new Path(replRoot, getNextDumpDir());
     DumpMetaData dmd = new DumpMetaData(dumpRoot);
@@ -369,12 +369,8 @@ public class ReplicationSemanticAnalyzer extends BaseSemanticAnalyzer {
         }
 
         Integer maxRange = Ints.checkedCast(eventTo - eventFrom + 1);
-        if (batchSize == null){
-          batchSize = maxRange;
-        } else {
-          if (batchSize > maxRange){
-            batchSize = maxRange;
-          }
+        if ((maxEventLimit == null) || (maxEventLimit > maxRange)){
+          maxEventLimit = maxRange;
         }
 
         // TODO : instead of simply restricting by message format, we should eventually
@@ -392,7 +388,7 @@ public class ReplicationSemanticAnalyzer extends BaseSemanticAnalyzer {
             = new EventUtils.MSClientNotificationFetcher(db.getMSC());
 
         EventUtils.NotificationEventIterator evIter = new EventUtils.NotificationEventIterator(
-            evFetcher, eventFrom, batchSize, evFilter);
+            evFetcher, eventFrom, maxEventLimit, evFilter);
 
         while (evIter.hasNext()){
           NotificationEvent ev = evIter.next();

http://git-wip-us.apache.org/repos/asf/hive/blob/4f18acd0/ql/src/test/org/apache/hadoop/hive/ql/parse/TestReplicationSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestReplicationSemanticAnalyzer.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestReplicationSemanticAnalyzer.java
index 54b2bd1..af51524 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestReplicationSemanticAnalyzer.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestReplicationSemanticAnalyzer.java
@@ -72,7 +72,7 @@ public class TestReplicationSemanticAnalyzer {
     ParseDriver pd = new ParseDriver();
     String fromEventId = "100";
     String toEventId = "200";
-    String batchSize = "50";
+    String maxEventLimit = "50";
     ASTNode root;
     ASTNode child;
 
@@ -148,7 +148,7 @@ public class TestReplicationSemanticAnalyzer {
 
     query =
         "repl dump " + defaultDB + "." + tblName + " from " + fromEventId + " to " + toEventId
-            + " batch " + batchSize;
+            + " limit " + maxEventLimit;
 
     root = (ASTNode) pd.parse(query).getChild(0);
     assertEquals(root.getChildCount(), 3);
@@ -178,11 +178,11 @@ public class TestReplicationSemanticAnalyzer {
     assertEquals(child.getChildCount(), 0);
 
     child =  (ASTNode) root.getChild(3);
-    assertEquals(child.getText(), "TOK_BATCH");
+    assertEquals(child.getText(), "TOK_LIMIT");
     assertEquals(child.getChildCount(), 0);
 
     child =  (ASTNode) root.getChild(4);
-    assertEquals(child.getText(), batchSize);
+    assertEquals(child.getText(), maxEventLimit);
     assertEquals(child.getChildCount(), 0);
   }