doPhase1(ast, qb, ctx_1, null); qbexpr.setOpcode(QBExpr.Opcode.NULLOP); qbexpr.setQB(qb); switch (ast.getToken().getType()) { case HiveParser.TOK_UNIONALL: qbexpr.setOpcode(QBExpr.Opcode.UNION); break; case HiveParser.TOK_INTERSECTALL: qbexpr.setOpcode(QBExpr.Opcode.INTERSECTALL); break; case HiveParser.TOK_INTERSECTDISTINCT: qbexpr.setOpcode(QBExpr.Opcode.INTERSECT); break; case HiveParser.TOK_EXCEPTALL: qbexpr.setOpcode(QBExpr.Opcode.EXCEPTALL); break; case HiveParser.TOK_EXCEPTDISTINCT: qbexpr.setOpcode(QBExpr.Opcode.EXCEPT); break; default:
doPhase1(ast, qb, ctx_1, null); qbexpr.setOpcode(QBExpr.Opcode.NULLOP); qbexpr.setQB(qb); switch (ast.getToken().getType()) { case HiveParser.TOK_UNIONALL: qbexpr.setOpcode(QBExpr.Opcode.UNION); break; case HiveParser.TOK_INTERSECTALL: qbexpr.setOpcode(QBExpr.Opcode.INTERSECTALL); break; case HiveParser.TOK_INTERSECTDISTINCT: qbexpr.setOpcode(QBExpr.Opcode.INTERSECT); break; case HiveParser.TOK_EXCEPTALL: qbexpr.setOpcode(QBExpr.Opcode.EXCEPTALL); break; case HiveParser.TOK_EXCEPTDISTINCT: qbexpr.setOpcode(QBExpr.Opcode.EXCEPT); break; default:
@SuppressWarnings("nls") public void doPhase1QBExpr(ASTNode ast, QBExpr qbexpr, String id, String alias) throws SemanticException { assert (ast.getToken() != null); switch (ast.getToken().getType()) { case HiveParser.TOK_QUERY: { QB qb = new QB(id, alias, true); doPhase1(ast, qb, initPhase1Ctx()); qbexpr.setOpcode(QBExpr.Opcode.NULLOP); qbexpr.setQB(qb); } break; case HiveParser.TOK_UNION: { qbexpr.setOpcode(QBExpr.Opcode.UNION); // query 1 assert (ast.getChild(0) != null); QBExpr qbexpr1 = new QBExpr(alias + "-subquery1"); doPhase1QBExpr((ASTNode) ast.getChild(0), qbexpr1, id + "-subquery1", alias + "-subquery1"); qbexpr.setQBExpr1(qbexpr1); // query 2 assert (ast.getChild(0) != null); QBExpr qbexpr2 = new QBExpr(alias + "-subquery2"); doPhase1QBExpr((ASTNode) ast.getChild(1), qbexpr2, id + "-subquery2", alias + "-subquery2"); qbexpr.setQBExpr2(qbexpr2); } break; } }