Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 1 addition & 30 deletions hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,6 @@ stmt :
| while_stmt
| unconditional_loop_stmt
| label
| hive
| host
| null_stmt
| expr_stmt
| semicolon_stmt // Placed here to allow null statements ;;...
Expand Down Expand Up @@ -1195,30 +1193,7 @@ expr_file :
file_name
| expr
;

hive :
T_HIVE hive_item*
;

hive_item :
T_SUB qident expr
| T_SUB qident L_ID T_EQUAL expr
| T_SUB qident
;

host :
'!' host_cmd ';' // OS command
| host_stmt
;

host_cmd :
.*?
;

host_stmt :
T_HOST expr
;

file_name :
L_FILE | ('/' | '.' '/')? qident ('/' qident)*
;
Expand Down Expand Up @@ -1395,8 +1370,6 @@ non_reserved_words : // Tokens that are not reserved words
| T_HASH
| T_HAVING
| T_HDFS
| T_HIVE
| T_HOST
| T_IDENTITY
| T_IF
| T_IGNORE
Expand Down Expand Up @@ -1718,9 +1691,7 @@ T_GROUP : G R O U P ;
T_HANDLER : H A N D L E R ;
T_HASH : H A S H ;
T_HAVING : H A V I N G ;
T_HDFS : H D F S ;
T_HIVE : H I V E ;
T_HOST : H O S T ;
T_HDFS : H D F S ;
T_IDENTITY : I D E N T I T Y ;
T_IF : I F ;
T_IGNORE : I G N O R E ;
Expand Down
95 changes: 0 additions & 95 deletions hplsql/src/main/java/org/apache/hive/hplsql/Exec.java
Original file line number Diff line number Diff line change
Expand Up @@ -2283,101 +2283,6 @@ public Integer visitDelete_stmt(HplsqlParser.Delete_stmtContext ctx) {
public Integer visitMerge_stmt(HplsqlParser.Merge_stmtContext ctx) {
return stmt.merge(ctx);
}

/**
* Run a Hive command line
*/
@Override
public Integer visitHive(@NotNull HplsqlParser.HiveContext ctx) {
trace(ctx, "HIVE");
ArrayList<String> cmd = new ArrayList<>();
cmd.add("hive");
Var params = new Var(Var.Type.STRINGLIST, cmd);
stackPush(params);
visitChildren(ctx);
stackPop();
try {
String[] cmdarr = new String[cmd.size()];
cmd.toArray(cmdarr);
if(trace) {
trace(ctx, "HIVE Parameters: " + Utils.toString(cmdarr, ' '));
}
if (!offline) {
Process p = Runtime.getRuntime().exec(cmdarr);
new StreamGobbler(p.getInputStream(), console).start();
new StreamGobbler(p.getErrorStream(), console).start();
int rc = p.waitFor();
if (trace) {
trace(ctx, "HIVE Process exit code: " + rc);
}
}
} catch (Exception e) {
setSqlCode(SqlCodes.ERROR);
signal(Signal.Type.SQLEXCEPTION, e.getMessage(), e);
return -1;
}
return 0;
}

@Override
@SuppressWarnings("unchecked")
public Integer visitHive_item(HplsqlParser.Hive_itemContext ctx) {
Var params = stackPeek();
ArrayList<String> a = (ArrayList<String>)params.value;
String param = ctx.getChild(1).getText();
switch (param) {
case "e":
a.add("-e");
a.add(evalPop(ctx.expr()).toString());
break;
case "f":
a.add("-f");
a.add(evalPop(ctx.expr()).toString());
break;
case "hiveconf":
a.add("-hiveconf");
a.add(ctx.L_ID().toString() + "=" + evalPop(ctx.expr()).toString());
break;
}
return 0;
}

/**
* Executing OS command
*/
@Override
public Integer visitHost_cmd(HplsqlParser.Host_cmdContext ctx) {
trace(ctx, "HOST");
execHost(ctx, ctx.start.getInputStream().getText(
new org.antlr.v4.runtime.misc.Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex())));
return 0;
}

@Override
public Integer visitHost_stmt(HplsqlParser.Host_stmtContext ctx) {
trace(ctx, "HOST");
execHost(ctx, evalPop(ctx.expr()).toString());
return 0;
}

public void execHost(ParserRuleContext ctx, String cmd) {
try {
if (trace) {
trace(ctx, "HOST Command: " + cmd);
}
Process p = Runtime.getRuntime().exec(cmd);
new StreamGobbler(p.getInputStream(), console).start();
new StreamGobbler(p.getErrorStream(), console).start();
int rc = p.waitFor();
if (trace) {
trace(ctx, "HOST Process exit code: " + rc);
}
setHostCode(rc);
} catch (Exception e) {
setHostCode(1);
signal(Signal.Type.SQLEXCEPTION);
}
}

/**
* Standalone expression (as a statement)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -333,11 +333,6 @@ public void testReturn() throws Exception {
run("return");
}

@Test
public void testSetError() throws Exception {
run("seterror");
}

@Test
public void testSub() throws Exception {
run("sub");
Expand Down
8 changes: 0 additions & 8 deletions hplsql/src/test/queries/local/seterror.sql

This file was deleted.

2 changes: 1 addition & 1 deletion hplsql/src/test/results/local/invalid_syntax.out.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Syntax error at line 1:27 no viable alternative at input 'b,'
Syntax error at line 1:27 mismatched input ',' expecting {<EOF>, '@', '#', '!', T_ACTION, T_ADD2, T_ALL, T_ALLOCATE, T_ALTER, T_AND, T_ANSI_NULLS, T_ANSI_PADDING, T_AS, T_ASC, T_ASSOCIATE, T_AT, T_AUTO_INCREMENT, T_AVG, T_BATCHSIZE, T_BEGIN, T_BETWEEN, T_BIGINT, T_BINARY_DOUBLE, T_BINARY_FLOAT, T_BIT, T_BODY, T_BREAK, T_BULK, T_BY, T_BYTE, T_CALL, T_CALLER, T_CASCADE, T_CASE, T_CASESPECIFIC, T_CAST, T_CHAR, T_CHARACTER, T_CHARSET, T_CLIENT, T_CLOSE, T_CLUSTERED, T_CMP, T_COLLECT, T_COLLECTION, T_COLUMN, T_COMMENT, T_CONSTANT, T_COMMIT, T_COMPRESS, T_CONCAT, T_CONDITION, T_CONSTRAINT, T_CONTINUE, T_COPY, T_COUNT, T_COUNT_BIG, T_CREATE, T_CREATION, T_CREATOR, T_CS, T_CURRENT, T_CURRENT_SCHEMA, T_CURSOR, T_DATABASE, T_DATA, T_DATE, T_DATETIME, T_DAY, T_DAYS, T_DEC, T_DECIMAL, T_DECLARE, T_DEFAULT, T_DEFERRED, T_DEFINED, T_DEFINER, T_DEFINITION, T_DELETE, T_DELIMITED, T_DELIMITER, T_DESC, T_DESCRIBE, T_DIAGNOSTICS, T_DIR, T_DIRECTORY, T_DISTINCT, T_DISTRIBUTE, T_DO, T_DOUBLE, T_DROP, T_DYNAMIC, T_ENABLE, T_END, T_ENGINE, T_ESCAPED, T_EXCEPT, T_EXEC, T_EXECUTE, T_EXCEPTION, T_EXCLUSIVE, T_EXISTS, T_EXIT, T_FALLBACK, T_FALSE, T_FETCH, T_FIELDS, T_FILE, T_FILES, T_FLOAT, T_FOR, T_FOREIGN, T_FORMAT, T_FOUND, T_FROM, T_FULL, T_FUNCTION, T_GET, T_GLOBAL, T_GO, T_GRANT, T_GROUP, T_HANDLER, T_HASH, T_HAVING, T_HDFS, T_HIVE, T_HOST, T_IDENTITY, T_IF, T_IGNORE, T_IMMEDIATE, T_IN, T_INCLUDE, T_INDEX, T_INITRANS, T_INNER, T_INOUT, T_INSERT, T_INT, T_INT2, T_INT4, T_INT8, T_INTEGER, T_INTERSECT, T_INTERVAL, T_INTO, T_INVOKER, T_IS, T_ISOPEN, T_ITEMS, T_JOIN, T_KEEP, T_KEY, T_KEYS, T_LANGUAGE, T_LEAVE, T_LEFT, T_LIKE, T_LIMIT, T_LINES, T_LOCAL, T_LOCATION, T_LOCATOR, T_LOCATORS, T_LOCKS, T_LOG, T_LOGGED, T_LOGGING, T_LOOP, T_MAP, T_MATCHED, T_MAX, T_MAXTRANS, T_MERGE, T_MESSAGE_TEXT, T_MICROSECOND, T_MICROSECONDS, T_MIN, T_MULTISET, T_NCHAR, T_NEW, T_NVARCHAR, T_NO, T_NOCOUNT, T_NOCOMPRESS, T_NOLOGGING, T_NONE, T_NOT, T_NOTFOUND, T_NULL, T_NUMERIC, T_NUMBER, T_OBJECT, T_OFF, T_ON, T_ONLY, T_OPEN, T_OR, T_ORDER, T_OUT, T_OUTER, T_OVER, T_OVERWRITE, T_OWNER, T_PACKAGE, T_PARTITION, T_PCTFREE, T_PCTUSED, T_PRECISION, T_PRESERVE, T_PRIMARY, T_PRINT, T_PROC, T_PROCEDURE, T_QUALIFY, T_QUERY_BAND, T_QUIT, T_QUOTED_IDENTIFIER, T_RAISE, T_REAL, T_REFERENCES, T_REGEXP, T_REPLACE, T_RESIGNAL, T_RESTRICT, T_RESULT, T_RESULT_SET_LOCATOR, T_RETURN, T_RETURNS, T_REVERSE, T_RIGHT, T_RLIKE, T_ROLE, T_ROLLBACK, T_ROW, T_ROWS, T_ROW_COUNT, T_RR, T_RS, T_PWD, T_TRIM, T_SCHEMA, T_SECOND, T_SECONDS, T_SECURITY, T_SEGMENT, T_SEL, T_SELECT, T_SET, T_SESSION, T_SESSIONS, T_SETS, T_SHARE, T_SIGNAL, T_SIMPLE_DOUBLE, T_SIMPLE_FLOAT, T_SMALLDATETIME, T_SMALLINT, T_SQL, T_SQLEXCEPTION, T_SQLINSERT, T_SQLSTATE, T_SQLWARNING, T_STATS, T_STATISTICS, T_STEP, T_STORAGE, T_STORED, T_STRING, T_SUBDIR, T_SUBSTRING, T_SUM, T_SUMMARY, T_SYS_REFCURSOR, T_TABLE, T_TABLESPACE, T_TEMPORARY, T_TERMINATED, T_TEXTIMAGE_ON, T_THEN, T_TIMESTAMP, T_TITLE, T_TO, T_TOP, T_TRANSACTION, T_TRUE, T_TRUNCATE, T_TYPE, T_UNIQUE, T_UPDATE, T_UR, T_USE, T_USING, T_VALUE, T_VALUES, T_VAR, T_VARCHAR, T_VARCHAR2, T_VARYING, T_VOLATILE, T_WHILE, T_WITH, T_WITHOUT, T_WORK, T_XACT_ABORT, T_XML, T_YES, T_ACTIVITY_COUNT, T_CUME_DIST, T_CURRENT_DATE, T_CURRENT_TIME_MILLIS, T_CURRENT_TIMESTAMP, T_CURRENT_USER, T_DENSE_RANK, T_FIRST_VALUE, T_LAG, T_LAST_VALUE, T_LEAD, T_MAX_PART_STRING, T_MIN_PART_STRING, T_MAX_PART_INT, T_MIN_PART_INT, T_MAX_PART_DATE, T_MIN_PART_DATE, T_PART_COUNT, T_PART_LOC, T_RANK, T_ROW_NUMBER, T_STDEV, T_SYSDATE, T_VARIANCE, T_USER, '+', '/', '.', '<', '*', '(', ';', '-', L_ID, L_S_STRING, L_D_STRING, L_INT, L_DEC, L_LABEL}
Syntax error at line 1:27 mismatched input ',' expecting {<EOF>, '@', '#', T_ACTION, T_ADD2, T_ALL, T_ALLOCATE, T_ALTER, T_AND, T_ANSI_NULLS, T_ANSI_PADDING, T_AS, T_ASC, T_ASSOCIATE, T_AT, T_AUTO_INCREMENT, T_AVG, T_BATCHSIZE, T_BEGIN, T_BETWEEN, T_BIGINT, T_BINARY_DOUBLE, T_BINARY_FLOAT, T_BIT, T_BODY, T_BREAK, T_BULK, T_BY, T_BYTE, T_CALL, T_CALLER, T_CASCADE, T_CASE, T_CASESPECIFIC, T_CAST, T_CHAR, T_CHARACTER, T_CHARSET, T_CLIENT, T_CLOSE, T_CLUSTERED, T_CMP, T_COLLECT, T_COLLECTION, T_COLUMN, T_COMMENT, T_CONSTANT, T_COMMIT, T_COMPRESS, T_CONCAT, T_CONDITION, T_CONSTRAINT, T_CONTINUE, T_COPY, T_COUNT, T_COUNT_BIG, T_CREATE, T_CREATION, T_CREATOR, T_CS, T_CURRENT, T_CURRENT_SCHEMA, T_CURSOR, T_DATABASE, T_DATA, T_DATE, T_DATETIME, T_DAY, T_DAYS, T_DEC, T_DECIMAL, T_DECLARE, T_DEFAULT, T_DEFERRED, T_DEFINED, T_DEFINER, T_DEFINITION, T_DELETE, T_DELIMITED, T_DELIMITER, T_DESC, T_DESCRIBE, T_DIAGNOSTICS, T_DIR, T_DIRECTORY, T_DISTINCT, T_DISTRIBUTE, T_DO, T_DOUBLE, T_DROP, T_DYNAMIC, T_ENABLE, T_END, T_ENGINE, T_ESCAPED, T_EXCEPT, T_EXEC, T_EXECUTE, T_EXCEPTION, T_EXCLUSIVE, T_EXISTS, T_EXIT, T_FALLBACK, T_FALSE, T_FETCH, T_FIELDS, T_FILE, T_FILES, T_FLOAT, T_FOR, T_FOREIGN, T_FORMAT, T_FOUND, T_FROM, T_FULL, T_FUNCTION, T_GET, T_GLOBAL, T_GO, T_GRANT, T_GROUP, T_HANDLER, T_HASH, T_HAVING, T_HDFS, T_IDENTITY, T_IF, T_IGNORE, T_IMMEDIATE, T_IN, T_INCLUDE, T_INDEX, T_INITRANS, T_INNER, T_INOUT, T_INSERT, T_INT, T_INT2, T_INT4, T_INT8, T_INTEGER, T_INTERSECT, T_INTERVAL, T_INTO, T_INVOKER, T_IS, T_ISOPEN, T_ITEMS, T_JOIN, T_KEEP, T_KEY, T_KEYS, T_LANGUAGE, T_LEAVE, T_LEFT, T_LIKE, T_LIMIT, T_LINES, T_LOCAL, T_LOCATION, T_LOCATOR, T_LOCATORS, T_LOCKS, T_LOG, T_LOGGED, T_LOGGING, T_LOOP, T_MAP, T_MATCHED, T_MAX, T_MAXTRANS, T_MERGE, T_MESSAGE_TEXT, T_MICROSECOND, T_MICROSECONDS, T_MIN, T_MULTISET, T_NCHAR, T_NEW, T_NVARCHAR, T_NO, T_NOCOUNT, T_NOCOMPRESS, T_NOLOGGING, T_NONE, T_NOT, T_NOTFOUND, T_NULL, T_NUMERIC, T_NUMBER, T_OBJECT, T_OFF, T_ON, T_ONLY, T_OPEN, T_OR, T_ORDER, T_OUT, T_OUTER, T_OVER, T_OVERWRITE, T_OWNER, T_PACKAGE, T_PARTITION, T_PCTFREE, T_PCTUSED, T_PRECISION, T_PRESERVE, T_PRIMARY, T_PRINT, T_PROC, T_PROCEDURE, T_QUALIFY, T_QUERY_BAND, T_QUIT, T_QUOTED_IDENTIFIER, T_RAISE, T_REAL, T_REFERENCES, T_REGEXP, T_REPLACE, T_RESIGNAL, T_RESTRICT, T_RESULT, T_RESULT_SET_LOCATOR, T_RETURN, T_RETURNS, T_REVERSE, T_RIGHT, T_RLIKE, T_ROLE, T_ROLLBACK, T_ROW, T_ROWS, T_ROW_COUNT, T_RR, T_RS, T_PWD, T_TRIM, T_SCHEMA, T_SECOND, T_SECONDS, T_SECURITY, T_SEGMENT, T_SEL, T_SELECT, T_SET, T_SESSION, T_SESSIONS, T_SETS, T_SHARE, T_SIGNAL, T_SIMPLE_DOUBLE, T_SIMPLE_FLOAT, T_SMALLDATETIME, T_SMALLINT, T_SQL, T_SQLEXCEPTION, T_SQLINSERT, T_SQLSTATE, T_SQLWARNING, T_STATS, T_STATISTICS, T_STEP, T_STORAGE, T_STORED, T_STRING, T_SUBDIR, T_SUBSTRING, T_SUM, T_SUMMARY, T_SYS_REFCURSOR, T_TABLE, T_TABLESPACE, T_TEMPORARY, T_TERMINATED, T_TEXTIMAGE_ON, T_THEN, T_TIMESTAMP, T_TITLE, T_TO, T_TOP, T_TRANSACTION, T_TRUE, T_TRUNCATE, T_TYPE, T_UNIQUE, T_UPDATE, T_UR, T_USE, T_USING, T_VALUE, T_VALUES, T_VAR, T_VARCHAR, T_VARCHAR2, T_VARYING, T_VOLATILE, T_WHILE, T_WITH, T_WITHOUT, T_WORK, T_XACT_ABORT, T_XML, T_YES, T_ACTIVITY_COUNT, T_CUME_DIST, T_CURRENT_DATE, T_CURRENT_TIME_MILLIS, T_CURRENT_TIMESTAMP, T_CURRENT_USER, T_DENSE_RANK, T_FIRST_VALUE, T_LAG, T_LAST_VALUE, T_LEAD, T_MAX_PART_STRING, T_MIN_PART_STRING, T_MAX_PART_INT, T_MIN_PART_INT, T_MAX_PART_DATE, T_MIN_PART_DATE, T_PART_COUNT, T_PART_LOC, T_RANK, T_ROW_NUMBER, T_STDEV, T_SYSDATE, T_VARIANCE, T_USER, '+', '/', '.', '<', '*', '(', ';', '-', L_ID, L_S_STRING, L_D_STRING, L_INT, L_DEC, L_LABEL}
Ln:1 identifier 'CREATE' must be declared.
5 changes: 0 additions & 5 deletions hplsql/src/test/results/local/seterror.out.txt

This file was deleted.

Loading