use of org.apache.hive.service.cli.operation.SQLOperationDisplay in project hive by apache.
the class TestQueryDisplay method testQueryDisplay.
/**
* Test if query display captures information on current/historic SQL operations.
*/
@Test
public void testQueryDisplay() throws Exception {
HiveSession session = sessionManager.createSession(new SessionHandle(TProtocolVersion.HIVE_CLI_SERVICE_PROTOCOL_V8), TProtocolVersion.HIVE_CLI_SERVICE_PROTOCOL_V8, "testuser", "", "", new HashMap<String, String>(), false, "");
SessionState.start(conf);
OperationHandle opHandle1 = session.executeStatement("show databases", null);
SessionState.start(conf);
OperationHandle opHandle2 = session.executeStatement("show tables", null);
List<SQLOperationDisplay> liveSqlOperations, historicSqlOperations;
liveSqlOperations = sessionManager.getOperationManager().getLiveSqlOperations();
historicSqlOperations = sessionManager.getOperationManager().getHistoricalSQLOperations();
Assert.assertEquals(liveSqlOperations.size(), 2);
Assert.assertEquals(historicSqlOperations.size(), 0);
verifyDDL(liveSqlOperations.get(0), "show databases", opHandle1.getHandleIdentifier().toString(), false);
verifyDDL(liveSqlOperations.get(1), "show tables", opHandle2.getHandleIdentifier().toString(), false);
session.closeOperation(opHandle1);
liveSqlOperations = sessionManager.getOperationManager().getLiveSqlOperations();
historicSqlOperations = sessionManager.getOperationManager().getHistoricalSQLOperations();
Assert.assertEquals(liveSqlOperations.size(), 1);
Assert.assertEquals(historicSqlOperations.size(), 1);
verifyDDL(historicSqlOperations.get(0), "show databases", opHandle1.getHandleIdentifier().toString(), true);
verifyDDL(liveSqlOperations.get(0), "show tables", opHandle2.getHandleIdentifier().toString(), false);
session.closeOperation(opHandle2);
liveSqlOperations = sessionManager.getOperationManager().getLiveSqlOperations();
historicSqlOperations = sessionManager.getOperationManager().getHistoricalSQLOperations();
Assert.assertEquals(liveSqlOperations.size(), 0);
Assert.assertEquals(historicSqlOperations.size(), 2);
verifyDDL(historicSqlOperations.get(1), "show databases", opHandle1.getHandleIdentifier().toString(), true);
verifyDDL(historicSqlOperations.get(0), "show tables", opHandle2.getHandleIdentifier().toString(), true);
session.close();
}
use of org.apache.hive.service.cli.operation.SQLOperationDisplay in project hive by apache.
the class QueryProfileServlet method doGet.
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String opId = (String) request.getParameter("operationId");
ServletContext ctx = getServletContext();
SessionManager sessionManager = (SessionManager) ctx.getAttribute("hive.sm");
OperationManager opManager = sessionManager.getOperationManager();
SQLOperationDisplay sod = opManager.getSQLOperationDisplay(opId);
if (sod == null) {
LOG.debug("No display object found for operation {} ", opId);
return;
}
new QueryProfileTmpl().render(response.getWriter(), sod);
}
use of org.apache.hive.service.cli.operation.SQLOperationDisplay in project hive by apache.
the class TestQueryDisplay method verifyDDLHtml.
/**
* Sanity check if basic information is delivered in this html. Let's not go too crazy and
* assert each element, to make it easier to add UI improvements.
*/
private void verifyDDLHtml(String stmt, String opHandle) throws Exception {
StringWriter sw = new StringWriter();
SQLOperationDisplay sod = sessionManager.getOperationManager().getSQLOperationDisplay(opHandle);
new QueryProfileTmpl().render(sw, sod);
String html = sw.toString();
Assert.assertTrue(html.contains(stmt));
Assert.assertTrue(html.contains("testuser"));
}
Aggregations