FAQ
Author: ekoifman
Date: Mon Apr 13 17:48:23 2015
New Revision: 1673249

URL: http://svn.apache.org/r1673249
Log:
HIVE-10152 ErrorMsg.formatToErrorMsgMap has bad regex (Eugene Koifman, reviewed by Alan Gates)

Modified:
     hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
     hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/TestErrorMsg.java
     hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java?rev=1673249&r1=1673248&r2=1673249&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java Mon Apr 13 17:48:23 2015
@@ -444,6 +444,9 @@ public enum ErrorMsg {
        "is controlled by hive.exec.max.dynamic.partitions and hive.exec.max.dynamic.partitions.pernode. "),
    PARTITION_SCAN_LIMIT_EXCEEDED(20005, "Number of partitions scanned (={0}) on table {1} exceeds limit" +
        " (={2}). This is controlled by hive.limit.query.max.table.partition.", true),
+ OP_NOT_ALLOWED_IN_AUTOCOMMIT(20006, "Operation {0} is not allowed when autoCommit=true.", true),//todo: better SQLState?
+ OP_NOT_ALLOWED_IN_TXN(20007, "Operation {0} is not allowed in a transaction. TransactionID={1}.", true),
+ OP_NOT_ALLOWED_WITHOUT_TXN(2008, "Operation {0} is not allowed since autoCommit=false and there is no active transaction", true),

    //========================== 30000 range starts here ========================//
    STATSPUBLISHER_NOT_OBTAINED(30000, "StatsPublisher cannot be obtained. " +
@@ -509,7 +512,7 @@ public enum ErrorMsg {
    static {
      for (ErrorMsg errorMsg : values()) {
        if (errorMsg.format != null) {
- String pattern = errorMsg.mesg.replaceAll("\\{.*\\}", ".*");
+ String pattern = errorMsg.mesg.replaceAll("\\{[0-9]+\\}", ".*");
          formatToErrorMsgMap.put(Pattern.compile("^" + pattern + "$"), errorMsg);
        } else {
          mesgToErrorMsgMap.put(errorMsg.getMsg().trim(), errorMsg);

Modified: hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/TestErrorMsg.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/TestErrorMsg.java?rev=1673249&r1=1673248&r2=1673249&view=diff
==============================================================================
--- hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/TestErrorMsg.java (original)
+++ hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/TestErrorMsg.java Mon Apr 13 17:48:23 2015
@@ -23,9 +23,11 @@ import java.util.Set;

  import junit.framework.Assert;
  import junit.framework.TestCase;
+import org.junit.Test;

-public class TestErrorMsg extends TestCase {
+public class TestErrorMsg {

+ @Test
    public void testUniqueErrorCode() {
      Set<Integer> numbers = new HashSet<Integer>();
      for (ErrorMsg err : ErrorMsg.values()) {
@@ -33,4 +35,15 @@ public class TestErrorMsg extends TestCa
        Assert.assertTrue("duplicated error number " + code, numbers.add(code));
      }
    }
+ @Test
+ public void testReverseMatch() {
+ testReverseMatch(ErrorMsg.OP_NOT_ALLOWED_IN_AUTOCOMMIT, "COMMIT");
+ testReverseMatch(ErrorMsg.OP_NOT_ALLOWED_IN_TXN, "ALTER TABLE", "1");
+ testReverseMatch(ErrorMsg.OP_NOT_ALLOWED_WITHOUT_TXN, "ROLLBACK");
+ }
+ private void testReverseMatch(ErrorMsg errorMsg, String... args) {
+ String parametrizedMsg = errorMsg.format(args);
+ ErrorMsg canonicalMsg = ErrorMsg.getErrorMsg(parametrizedMsg);
+ Assert.assertEquals("Didn't find expected msg", errorMsg.getErrorCode(), canonicalMsg.getErrorCode());
+ }
  }

Modified: hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java?rev=1673249&r1=1673248&r2=1673249&view=diff
==============================================================================
--- hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java Mon Apr 13 17:48:23 2015
@@ -17,15 +17,12 @@
   */
  package org.apache.hadoop.hive.ql.parse;

-import static org.junit.Assert.*;
-
  import java.io.File;
  import java.io.IOException;
  import java.util.Arrays;
  import java.util.HashMap;
  import java.util.Map;

-import junit.framework.Assert;
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  import org.apache.hadoop.fs.FSDataInputStream;
@@ -44,7 +41,6 @@ import org.apache.hadoop.hive.ql.metadat
  import org.apache.hadoop.hive.ql.plan.ExplainWork;
  import org.apache.hadoop.hive.ql.session.SessionState;
  import org.junit.Before;
-import org.junit.Ignore;
  import org.junit.Test;

  public class TestUpdateDeleteSemanticAnalyzer {

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupcommits @
categorieshive, hadoop
postedApr 13, '15 at 5:48p
activeApr 13, '15 at 5:48p
posts1
users1
websitehive.apache.org

1 user in discussion

Ekoifman: 1 post

People

Translate

site design / logo © 2021 Grokbase