aboutsummaryrefslogtreecommitdiff
path: root/exec/java-exec/src/test/java/org/apache/drill/exec/util
diff options
context:
space:
mode:
authorSteven Phillips <sphillips@maprtech.com>2013-10-21 23:03:49 -0700
committerSteven Phillips <sphillips@maprtech.com>2013-10-30 15:31:37 -0700
commitfe94aa8147beb8c67fca5a184748b151c2b4b7ba (patch)
treeaafffaeee1b1adebe36a34591fbce6607129659a /exec/java-exec/src/test/java/org/apache/drill/exec/util
parent5ca503c141f76d8c01c89d0e3a58e1c117ef051f (diff)
DRILL-230: Addressing comments in code review, abstract out references to HazelCache and add comments
Diffstat (limited to 'exec/java-exec/src/test/java/org/apache/drill/exec/util')
-rw-r--r--exec/java-exec/src/test/java/org/apache/drill/exec/util/BatchPrinter.java93
1 files changed, 93 insertions, 0 deletions
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/util/BatchPrinter.java b/exec/java-exec/src/test/java/org/apache/drill/exec/util/BatchPrinter.java
new file mode 100644
index 000000000..aa68752b7
--- /dev/null
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/util/BatchPrinter.java
@@ -0,0 +1,93 @@
+/**
+ * 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.
+ */
+package org.apache.drill.exec.util;
+
+import com.beust.jcommander.internal.Lists;
+import org.apache.commons.lang.StringUtils;
+import org.apache.drill.exec.exception.SchemaChangeException;
+import org.apache.drill.exec.record.VectorAccessible;
+import org.apache.drill.exec.record.VectorWrapper;
+import org.apache.drill.exec.record.selection.SelectionVector4;
+import org.apache.drill.exec.rpc.RpcException;
+import org.apache.drill.exec.vector.ValueVector;
+
+import java.util.List;
+
+/**
+ * This is a tool for printing the content of record batches to screen. Used for debugging.
+ */
+public class BatchPrinter {
+ public static void printHyperBatch(VectorAccessible batch) {
+ List<String> columns = Lists.newArrayList();
+ List<ValueVector> vectors = Lists.newArrayList();
+ int numBatches = 0;
+ for (VectorWrapper vw : batch) {
+ columns.add(vw.getValueVectors()[0].getField().getName());
+ numBatches = vw.getValueVectors().length;
+ }
+ int width = columns.size();
+ for (int i = 0; i < numBatches; i++) {
+ int rows = batch.iterator().next().getValueVectors()[i].getMetadata().getValueCount();
+ for (int j = 0; j < rows; j++) {
+ for (VectorWrapper vw : batch) {
+ Object o = vw.getValueVectors()[i].getAccessor().getObject(j);
+ if (o instanceof byte[]) {
+ String value = new String((byte[]) o);
+ System.out.printf("| %-15s",value.length() <= 15 ? value : value.substring(0, 14));
+ } else {
+ String value = o.toString();
+ System.out.printf("| %-15s",value.length() <= 15 ? value : value.substring(0,14));
+ }
+ }
+ System.out.printf("|\n");
+ }
+ }
+ System.out.printf("|\n");
+ }
+ public static void printBatch(VectorAccessible batch) {
+ List<String> columns = Lists.newArrayList();
+ List<ValueVector> vectors = Lists.newArrayList();
+ for (VectorWrapper vw : batch) {
+ columns.add(vw.getValueVector().getField().getName());
+ vectors.add(vw.getValueVector());
+ }
+ int width = columns.size();
+ int rows = vectors.get(0).getMetadata().getValueCount();
+ for (int row = 0; row < rows; row++) {
+ if (row%50 == 0) {
+ System.out.println(StringUtils.repeat("-", width * 17 + 1));
+ for (String column : columns) {
+ System.out.printf("| %-15s", width <= 15 ? column : column.substring(0, 14));
+ }
+ System.out.printf("|\n");
+ System.out.println(StringUtils.repeat("-", width*17 + 1));
+ }
+ for (ValueVector vv : vectors) {
+ Object o = vv.getAccessor().getObject(row);
+ if (o instanceof byte[]) {
+ String value = new String((byte[]) o);
+ System.out.printf("| %-15s",value.length() <= 15 ? value : value.substring(0, 14));
+ } else {
+ String value = o.toString();
+ System.out.printf("| %-15s",value.length() <= 15 ? value : value.substring(0,14));
+ }
+ }
+ System.out.printf("|\n");
+ }
+ }
+}