Repository: tajo
Updated Branches:
  refs/heads/index_support 62bd3a340 -> a5298fb21


TAJO-1128: Implement a select box for database at web interface. (Jongyoung 
Park via hyunsik)

Closes #222


Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/a3e5bdd6
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/a3e5bdd6
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/a3e5bdd6

Branch: refs/heads/index_support
Commit: a3e5bdd69833b87b666c1db567dbf464d84d35f7
Parents: 3e305b1
Author: Hyunsik Choi <[email protected]>
Authored: Mon Nov 10 01:56:59 2014 -0800
Committer: Hyunsik Choi <[email protected]>
Committed: Mon Nov 10 01:57:13 2014 -0800

----------------------------------------------------------------------
 CHANGES                                            |  3 +++
 .../apache/tajo/webapp/QueryExecutorServlet.java   | 17 ++++++++++++-----
 .../resources/webapps/admin/query_executor.jsp     | 16 ++++++++++++++--
 3 files changed, 29 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/a3e5bdd6/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index c699a34..665313b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -30,6 +30,9 @@ Release 0.9.1 - unreleased
 
     TAJO-1121: Remove the 'v2' storage package. (Hyoungjun Kim)
 
+    TAJO-1128: Implement a select box for database at web interface. 
+    (Jongyoung Park via hyunsik)
+
   BUG FIXES
 
     TAJO-1154: TajoCli doesn't pause while running the non-forwarded 

http://git-wip-us.apache.org/repos/asf/tajo/blob/a3e5bdd6/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java 
b/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
index 7790ac6..23311ac 100644
--- a/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
+++ b/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
@@ -69,8 +69,6 @@ public class QueryExecutorServlet extends HttpServlet {
 
   private ExecutorService queryRunnerExecutor = 
Executors.newFixedThreadPool(5);
 
-  private QueryRunnerCleaner queryRunnerCleaner;
-
   @Override
   public void init(ServletConfig config) throws ServletException {
     om.getDeserializationConfig().disable(
@@ -80,8 +78,7 @@ public class QueryExecutorServlet extends HttpServlet {
       tajoConf = new TajoConf();
       tajoClient = new TajoClientImpl(tajoConf);
 
-      queryRunnerCleaner = new QueryRunnerCleaner();
-      queryRunnerCleaner.start();
+      new QueryRunnerCleaner().start();
     } catch (IOException e) {
       LOG.error(e.getMessage());
     }
@@ -121,7 +118,8 @@ public class QueryExecutorServlet extends HttpServlet {
             }
           }
         }
-        QueryRunner queryRunner = new QueryRunner(queryRunnerId, query);
+        String database = request.getParameter("database");
+        QueryRunner queryRunner = new QueryRunner(queryRunnerId, query, 
database);
         try {
           queryRunner.sizeLimit = 
Integer.parseInt(request.getParameter("limitSize"));
         } catch (java.lang.NumberFormatException nfe) {
@@ -249,6 +247,7 @@ public class QueryExecutorServlet extends HttpServlet {
     AtomicBoolean stop = new AtomicBoolean(false);
     QueryId queryId;
     String query;
+    String database;
     long resultRows;
     int sizeLimit;
     long numOfRows;
@@ -261,8 +260,13 @@ public class QueryExecutorServlet extends HttpServlet {
     List<List<Object>> queryResult;
 
     public QueryRunner(String queryRunnerId, String query) {
+      this (queryRunnerId, query, "default");
+    }
+
+    public QueryRunner(String queryRunnerId, String query, String database) {
       this.queryRunnerId = queryRunnerId;
       this.query = query;
+      this.database = database;
     }
 
     public void setStop() {
@@ -275,6 +279,9 @@ public class QueryExecutorServlet extends HttpServlet {
       try {
         tajoClient = TajoHAClientUtil.getTajoClient(tajoConf, tajoClient);
 
+        if (!tajoClient.getCurrentDatabase().equals(database))
+          tajoClient.selectDatabase(database);
+
         response = tajoClient.executeQuery(query);
 
         if (response == null) {

http://git-wip-us.apache.org/repos/asf/tajo/blob/a3e5bdd6/tajo-core/src/main/resources/webapps/admin/query_executor.jsp
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/resources/webapps/admin/query_executor.jsp 
b/tajo-core/src/main/resources/webapps/admin/query_executor.jsp
index 85debe5..c46fcb1 100644
--- a/tajo-core/src/main/resources/webapps/admin/query_executor.jsp
+++ b/tajo-core/src/main/resources/webapps/admin/query_executor.jsp
@@ -91,11 +91,12 @@ function runQuery() {
   }
   init();
   var query = $("#query").val();
+  var sbox = document.getElementById("selectDatabase");
 
   $.ajax({
     type: "POST",
     url: "query_exec",
-    data: { action: "runQuery", query: query, limitSize:SIZE_LIMIT }
+    data: { action: "runQuery", query: query, limitSize:SIZE_LIMIT, database: 
sbox.options[sbox.selectedIndex].text }
   })
   .done(function(msg) {
     var resultJson = $.parseJSON(msg);
@@ -289,7 +290,18 @@ function getPage() {
   <h2>Tajo Master: <%=master.getMasterName()%> <%=activeLabel%></h2>
   <hr/>
   <h3>Query</h3>
-  <textarea id="query" style="width:800px; height:250px; font-family:Tahoma; 
font-size:12px;"></textarea>
+  Database :  
+  <select id="selectDatabase" name="database" width="190" style="width: 190px">
+    <%
+       for (String databaseName : master.getCatalog().getAllDatabaseNames()) {
+       %>
+         <option value="<%=databaseName%>"><%=databaseName%></option>
+       <%
+       }
+       %>
+  </select>
+  <p />
+<textarea id="query" style="width:800px; height:250px; font-family:Tahoma; 
font-size:12px;"></textarea>
   <p />
   Limit : <input id="sizeLimit" type="text" value="10" style="width:30px; 
text-align:center;" /> MB
   <p />

Reply via email to