incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject git commit: Working on BLUR-401
Date Tue, 13 Jan 2015 15:27:01 GMT
Repository: incubator-blur
Updated Branches:
  refs/heads/master a587dc158 -> f07b1a6be


Working on BLUR-401


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

Branch: refs/heads/master
Commit: f07b1a6be1e6c2cc4ac92a33e5a349927aabc24a
Parents: a587dc1
Author: Aaron McCurry <amccurry@gmail.com>
Authored: Tue Jan 13 10:26:50 2015 -0500
Committer: Aaron McCurry <amccurry@gmail.com>
Committed: Tue Jan 13 10:26:50 2015 -0500

----------------------------------------------------------------------
 blur-shell/pom.xml                              | 101 +++++++++----------
 .../org/apache/blur/shell/QueryCommand.java     |  68 ++++++++++++-
 2 files changed, 110 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f07b1a6b/blur-shell/pom.xml
----------------------------------------------------------------------
diff --git a/blur-shell/pom.xml b/blur-shell/pom.xml
index 54c53c4..c856767 100644
--- a/blur-shell/pom.xml
+++ b/blur-shell/pom.xml
@@ -1,22 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
@@ -24,7 +16,7 @@ under the License.
 		<groupId>org.apache.blur</groupId>
 		<artifactId>blur</artifactId>
 		<version>0.2.4-incubating-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
+		<relativePath>../pom.xml</relativePath>
 	</parent>
 	<groupId>org.apache.blur</groupId>
 	<artifactId>blur-shell</artifactId>
@@ -34,33 +26,34 @@ under the License.
 	<description>The Blur shell module contains a shell for interacting with Blur.  All
shell commands
 		can be called as a CLI program as well.</description>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.blur</groupId>
-            <artifactId>blur-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.blur</groupId>
-            <artifactId>blur-thrift</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>jline</groupId>
-            <artifactId>jline</artifactId>
-            <version>${jline.version}</version>
-        </dependency>
-        <dependency>
-        	<groupId>com.google.guava</groupId>
-        	<artifactId>guava</artifactId>
-        	<version>${guava.version}</version>
-        </dependency>
-    </dependencies>
+	<dependencies>
+		<dependency>
+			<groupId>jline</groupId>
+			<artifactId>jline</artifactId>
+			<version>${jline.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.blur</groupId>
+			<artifactId>blur-core</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.blur</groupId>
+			<artifactId>blur-thrift</artifactId>
+			<version>${project.version}</version>
+		</dependency>
 
-    <build>
-        <finalName>blur-shell-${project.version}</finalName>
+		<dependency>
+			<groupId>com.google.guava</groupId>
+			<artifactId>guava</artifactId>
+			<version>${guava.version}</version>
+		</dependency>
+	</dependencies>
 
-        <plugins>
+	<build>
+		<finalName>blur-shell-${project.version}</finalName>
+
+		<plugins>
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-surefire-plugin</artifactId>
@@ -74,16 +67,16 @@ under the License.
 					</systemPropertyVariables>
 				</configuration>
 			</plugin>
-		  <plugin>
-			<groupId>org.apache.maven.plugins</groupId>
-			<artifactId>maven-compiler-plugin</artifactId>
-			<configuration>
-			  <source>1.6</source>
-			  <target>1.6</target>
-			</configuration>
-		  </plugin>
-        </plugins>
-    </build>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.6</source>
+					<target>1.6</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
 
 	<profiles>
 		<profile>

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f07b1a6b/blur-shell/src/main/java/org/apache/blur/shell/QueryCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/QueryCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/QueryCommand.java
index fd4aa64..a7fc985 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/QueryCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/QueryCommand.java
@@ -43,7 +43,6 @@ import org.apache.blur.thrift.generated.BlurQuery;
 import org.apache.blur.thrift.generated.BlurResult;
 import org.apache.blur.thrift.generated.BlurResults;
 import org.apache.blur.thrift.generated.Column;
-import org.apache.blur.thrift.generated.ErrorType;
 import org.apache.blur.thrift.generated.FetchRecordResult;
 import org.apache.blur.thrift.generated.FetchResult;
 import org.apache.blur.thrift.generated.FetchRowResult;
@@ -91,10 +90,6 @@ public class QueryCommand extends Command implements TableFirstArgCommand
{
     if (commandLine.hasOption(QueryCommandHelper.WIDTH)) {
       _width = Integer.parseInt(commandLine.getOptionValue(QueryCommandHelper.WIDTH));
     }
-    ConsoleReader reader = getConsoleReader();
-    if (reader == null) {
-      throw new BlurException("This command can only be run with a proper jline environment.",
null, ErrorType.UNKNOWN);
-    }
 
     long s = System.nanoTime();
     BlurResults blurResults = client.query(tablename, blurQuery);
@@ -105,6 +100,18 @@ public class QueryCommand extends Command implements TableFirstArgCommand
{
       return;
     }
 
+    ConsoleReader reader = getConsoleReader();
+    if (reader == null) {
+      String description = blurResults.getTotalResults() + " results found in [" + timeInNanos
/ 1000000.0 + " ms].  "
+          + getFetchMetaData(blurResults);
+      out.println(description);
+      List<BlurResult> results = blurResults.getResults();
+      for (BlurResult result : results) {
+        print(out, result);
+      }
+      return;
+    }
+
     String prompt = reader.getPrompt();
     reader.setPrompt("");
     final TableDisplay tableDisplay = new TableDisplay(reader);
@@ -176,6 +183,57 @@ public class QueryCommand extends Command implements TableFirstArgCommand
{
     }
   }
 
+  private void print(PrintWriter out, BlurResult result) {
+    FetchResult fetchResult = result.getFetchResult();
+    FetchRowResult rowResult = fetchResult.getRowResult();
+    if (rowResult != null) {
+      print(out, rowResult);
+    } else {
+      FetchRecordResult recordResult = fetchResult.getRecordResult();
+      print(out, recordResult);
+    }
+  }
+
+  private void print(PrintWriter out, FetchRowResult rowResult) {
+    Row row = rowResult.getRow();
+    int totalRecords = rowResult.getTotalRecords();
+    String id = row.getId();
+    List<Record> records = row.getRecords();
+    int index = 0;
+    for (Record record : records) {
+      print(out, id, index + 1, totalRecords, record);
+      index++;
+    }
+  }
+
+  private void print(PrintWriter out, String rowId, int index, int totalRecords, Record record)
{
+    String recordId = record.getRecordId();
+    String family = record.getFamily();
+    out.print(rowId + "\t" + index + " of " + totalRecords + "\t" + recordId + "\t" + family);
+    print(out, record.getColumns());
+    out.println();
+  }
+
+  private void print(PrintWriter out, List<Column> columns) {
+    Collections.sort(columns, new Comparator<Column>() {
+      @Override
+      public int compare(Column o1, Column o2) {
+        String name1 = o1.getName();
+        String name2 = o2.getName();
+        return name1.compareTo(name2);
+      }
+    });
+    for (Column column : columns) {
+      out.print("\t" + column.getName() + ":" + column.getValue());
+    }
+  }
+
+  private void print(PrintWriter out, FetchRecordResult recordResult) {
+    String rowid = recordResult.getRowid();
+    Record record = recordResult.getRecord();
+    print(out, rowid, 0, 1, record);
+  }
+
   private String getFetchMetaData(BlurResults blurResults) {
     AtomicInteger rowCount = new AtomicInteger();
     AtomicInteger recordCount = new AtomicInteger();


Mime
View raw message