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);