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

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


The following commit(s) were added to refs/heads/master by this push:
     new 0afb02b1cc6 HIVE-28253: Unable to set the value for hplsql.onerror in 
hplsql mode. (Dayakar M, reviewed by Krisztian Kasa)
0afb02b1cc6 is described below

commit 0afb02b1cc6ba995d63c2c6c17ee31128c3b00e4
Author: Dayakar M <daya.apa...@gmail.com>
AuthorDate: Mon May 13 15:09:14 2024 +0530

    HIVE-28253: Unable to set the value for hplsql.onerror in hplsql mode. 
(Dayakar M, reviewed by Krisztian Kasa)
    
    Co-authored-by: mdayakar <mdaya...@cloudera.com>
---
 .../main/antlr4/org/apache/hive/hplsql/Hplsql.g4   |  4 ++--
 .../src/main/java/org/apache/hive/hplsql/Exec.java |  2 +-
 .../apache/hive/beeline/TestHplSqlViaBeeLine.java  | 27 ++++++++++++++++++++++
 3 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4 
b/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4
index 14cf034ad01..43a32984612 100644
--- a/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4
+++ b/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4
@@ -140,8 +140,8 @@ assignment_stmt_item :
      ;
 
 assignment_stmt_single_item : 
-       ident T_COLON? T_EQUAL expr
-     | T_OPEN_P ident T_CLOSE_P T_COLON? T_EQUAL expr
+       qident T_COLON? T_EQUAL expr
+     | T_OPEN_P qident T_CLOSE_P T_COLON? T_EQUAL expr
      ;
 
 assignment_stmt_collection_item :
diff --git a/hplsql/src/main/java/org/apache/hive/hplsql/Exec.java 
b/hplsql/src/main/java/org/apache/hive/hplsql/Exec.java
index 7386f9a58a5..ccfe5c5ce09 100644
--- a/hplsql/src/main/java/org/apache/hive/hplsql/Exec.java
+++ b/hplsql/src/main/java/org/apache/hive/hplsql/Exec.java
@@ -1635,7 +1635,7 @@ public class Exec extends HplsqlBaseVisitor<Integer> 
implements Closeable {
    */
   @Override 
   public Integer 
visitAssignment_stmt_single_item(HplsqlParser.Assignment_stmt_single_itemContext
 ctx) { 
-    String name = ctx.ident().getText();
+    String name = ctx.qident().getText();
     visit(ctx.expr());    
     Var var = setVariable(name);
     StringBuilder assignments = new StringBuilder();
diff --git 
a/itests/hive-unit/src/test/java/org/apache/hive/beeline/TestHplSqlViaBeeLine.java
 
b/itests/hive-unit/src/test/java/org/apache/hive/beeline/TestHplSqlViaBeeLine.java
index efe021e6598..0ae643c5526 100644
--- 
a/itests/hive-unit/src/test/java/org/apache/hive/beeline/TestHplSqlViaBeeLine.java
+++ 
b/itests/hive-unit/src/test/java/org/apache/hive/beeline/TestHplSqlViaBeeLine.java
@@ -1062,6 +1062,33 @@ public class TestHplSqlViaBeeLine {
     testScriptFile(SCRIPT_TEXT, args(), "^(.(?!(ClassCastException)))*$", 
OutStream.ERR);
   }
 
+  @Test
+  public void testSetHplsqlOnErrorStop() throws Throwable {
+    String SCRIPT_TEXT =
+        "SET hplsql.onerror='stop';\n" +
+            "insert into abc values('Tbl Not Exists');\n" +
+            "SELECT CURRENT_USER;";
+    testScriptFile(SCRIPT_TEXT, args(), "^(.(?!(" + 
System.getProperty("user.name") + ")))*$");
+  }
+
+  @Test
+  public void testSetHplsqlOnErrorSetError() throws Throwable {
+    String SCRIPT_TEXT =
+        "SET hplsql.onerror='seterror';\n" +
+            "insert into abc values('Tbl Not Exists');\n" +
+            "if SQLCODE < 0\n" + " PRINT 'SQL Error...';";
+    testScriptFile(SCRIPT_TEXT, args(), "SessionState: SQL Error...", 
OutStream.ERR);
+  }
+
+  @Test
+  public void testSetHplsqlOnErrorException() throws Throwable {
+    String SCRIPT_TEXT =
+        "SET hplsql.onerror='exception';\n" +
+            "insert into abc values('Tbl Not Exists');\n" +
+            "SELECT CURRENT_USER;";
+    testScriptFile(SCRIPT_TEXT, args(), "^(.(?!(" + 
System.getProperty("user.name") + ")))*$");
+  }
+
   private static List<String> args() {
     return Arrays.asList("-d", BeeLine.BEELINE_DEFAULT_JDBC_DRIVER,
             "-u", miniHS2.getBaseJdbcURL() + ";mode=hplsql", "-n", userName);

Reply via email to