You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2015/09/17 07:52:07 UTC
hive git commit: HIVE-11779 Beeline-cli: Format the output of
describe pretty table command in new CLI[beeline-cli branch](Ke Jia,
reviewed by Ferdinand Xu)
Repository: hive
Updated Branches:
refs/heads/beeline-cli 6e3b17368 -> 4a91efc3c
HIVE-11779 Beeline-cli: Format the output of describe pretty table command in new CLI[beeline-cli branch](Ke Jia, reviewed by Ferdinand Xu)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/4a91efc3
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/4a91efc3
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/4a91efc3
Branch: refs/heads/beeline-cli
Commit: 4a91efc3c4b0d05b8f333049e0b0e0c1a5517bc3
Parents: 6e3b173
Author: Jia Ke <ke...@intel.com>
Authored: Thu Sep 17 01:50:13 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Thu Sep 17 01:50:13 2015 -0400
----------------------------------------------------------------------
.../formatting/MetaDataPrettyFormatUtils.java | 24 +-
.../clientpositive/describe_pretty.q.out | 366 +++++++++----------
2 files changed, 199 insertions(+), 191 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/4a91efc3/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataPrettyFormatUtils.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataPrettyFormatUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataPrettyFormatUtils.java
index 8f939e6..c653252 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataPrettyFormatUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataPrettyFormatUtils.java
@@ -89,7 +89,8 @@ public final class MetaDataPrettyFormatUtils {
String columnHeaders[] = MetaDataFormatUtils.getColumnsHeader(null);
formatOutputPretty(columnHeaders[0], columnHeaders[1], columnHeaders[2],
columnInformation, maxColNameLen, prettyOutputNumCols);
- columnInformation.append(MetaDataFormatUtils.LINE_DELIM);
+ columnInformation.append(MetaDataFormatUtils.FIELD_DELIM)
+ .append(MetaDataFormatUtils.FIELD_DELIM).append(MetaDataFormatUtils.LINE_DELIM);
}
private static void formatAllFieldsPretty(StringBuilder tableInfo,
@@ -202,6 +203,7 @@ public final class MetaDataPrettyFormatUtils {
String delim = StringUtils.repeat(" ", delimCount);
sb.append(paddedText);
sb.append(delim);
+ sb.append(MetaDataFormatUtils.FIELD_DELIM);
return paddedText.length() + delim.length();
}
@@ -209,23 +211,29 @@ public final class MetaDataPrettyFormatUtils {
private static void formatOutputPretty(String colName, String colType,
String colComment, StringBuilder tableInfo, int maxColNameLength,
int prettyOutputNumCols) {
- int colsConsumed = 0;
- colsConsumed += appendFormattedColumn(tableInfo, colName, maxColNameLength + 1);
- colsConsumed += appendFormattedColumn(tableInfo, colType, PRETTY_ALIGNMENT);
+ int colsNameConsumed = appendFormattedColumn(tableInfo, colName, maxColNameLength + 1);
+ int colsTypeConsumed =appendFormattedColumn(tableInfo, colType, PRETTY_ALIGNMENT);
- colComment = breakCommentIntoMultipleLines(colComment, colsConsumed, prettyOutputNumCols);
+ colComment = breakCommentIntoMultipleLines(colComment, colsNameConsumed + colsTypeConsumed,
+ prettyOutputNumCols);
/* Comment indent processing for multi-line comments.
* Comments should be indented the same amount on each line
* if the first line comment starts indented by k,
- * the following line comments should also be indented by k.
+ * the following line comments should also be indented by k
+ * The following line comments will as a new line,so we need to
+ * add colsNameConsumed spaces as the first column and
+ * colsTypeConsumed spaces as the second column and the
+ * comment as the last column.we use two FIELD_DELIM to
+ * split them.
*/
String[] commentSegments = colComment.split("\n|\r|\r\n");
tableInfo.append(trimTrailingWS(commentSegments[0]));
tableInfo.append(MetaDataFormatUtils.LINE_DELIM);
for (int i = 1; i < commentSegments.length; i++) {
- tableInfo.append(StringUtils.repeat(" ", colsConsumed));
- tableInfo.append(trimTrailingWS(commentSegments[i]));
+ tableInfo.append(String.format(
+ "%" + colsNameConsumed + "s" + MetaDataFormatUtils.FIELD_DELIM + "%" + colsTypeConsumed
+ + "s" + MetaDataFormatUtils.FIELD_DELIM + "%s", "", "", commentSegments[i]));
tableInfo.append(MetaDataFormatUtils.LINE_DELIM);
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/4a91efc3/ql/src/test/results/clientpositive/describe_pretty.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/describe_pretty.q.out b/ql/src/test/results/clientpositive/describe_pretty.q.out
index 1c05e0d..279f567 100644
--- a/ql/src/test/results/clientpositive/describe_pretty.q.out
+++ b/ql/src/test/results/clientpositive/describe_pretty.q.out
@@ -72,136 +72,136 @@ POSTHOOK: query: -- There will be an extra tab at the end of each comment line i
DESCRIBE PRETTY test_table
POSTHOOK: type: DESCTABLE
POSTHOOK: Input: default@test_table
-col_name data_type comment
-
-col1 int col1 one line comment
-col2 string col2
- two lines comment
-col3 string col3
- three lines
- comment
-col4 string col4 very long comment that is greater than 80
- chars and is likely to spill into multiple
- lines
-col5 string col5 very long multi-line comment where each
- line is very long by itself and is likely to
- spill
- into multiple lines. Lorem ipsum dolor sit
- amet, consectetur adipiscing elit. Proin in
- dolor nisl, sodales
- adipiscing tortor. Integer venenatis
-col6 string This comment has a very long single word ABCDEF
- GHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvzxyz12
- 3 which will not fit in a line by itself for
- small column widths.
-col7_nocomment string
+col_name data_type comment
+
+col1 int col1 one line comment
+col2 string col2
+ two lines comment
+col3 string col3
+ three lines
+ comment
+col4 string col4 very long comment that is greater than 80
+ chars and is likely to spill into multiple
+ lines
+col5 string col5 very long multi-line comment where each
+ line is very long by itself and is likely to
+ spill
+ into multiple lines. Lorem ipsum dolor sit
+ amet, consectetur adipiscing elit. Proin in
+ dolor nisl, sodales
+ adipiscing tortor. Integer venenatis
+col6 string This comment has a very long single word ABCDEF
+ GHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvzxyz12
+ 3 which will not fit in a line by itself for
+ small column widths.
+col7_nocomment string
PREHOOK: query: DESCRIBE PRETTY test_table
PREHOOK: type: DESCTABLE
PREHOOK: Input: default@test_table
POSTHOOK: query: DESCRIBE PRETTY test_table
POSTHOOK: type: DESCTABLE
POSTHOOK: Input: default@test_table
-col_name data_type comment
-
-col1 int col1 one line comment
-col2 string col2
- two lines comment
-col3 string col3
- three lines
- comment
-col4 string col4 very long comment that is greater than 80 chars and is likely to spill into multiple lines
-col5 string col5 very long multi-line comment where each line is very long by itself and is likely to spill
- into multiple lines. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in dolor nisl, sodales
- adipiscing tortor. Integer venenatis
-col6 string This comment has a very long single word ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvzxyz123 which will not fit in a line by itself for small column widths.
-col7_nocomment string
+col_name data_type comment
+
+col1 int col1 one line comment
+col2 string col2
+ two lines comment
+col3 string col3
+ three lines
+ comment
+col4 string col4 very long comment that is greater than 80 chars and is likely to spill into multiple lines
+col5 string col5 very long multi-line comment where each line is very long by itself and is likely to spill
+ into multiple lines. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in dolor nisl, sodales
+ adipiscing tortor. Integer venenatis
+col6 string This comment has a very long single word ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvzxyz123 which will not fit in a line by itself for small column widths.
+col7_nocomment string
PREHOOK: query: DESCRIBE PRETTY test_table
PREHOOK: type: DESCTABLE
PREHOOK: Input: default@test_table
POSTHOOK: query: DESCRIBE PRETTY test_table
POSTHOOK: type: DESCTABLE
POSTHOOK: Input: default@test_table
-col_name data_type comment
-
-col1 int col1 one line
- comment
-col2 string col2
- two lines comment
-col3 string col3
- three lines
- comment
-col4 string col4 very long
- comment that is
- greater than 80
- chars and is
- likely to spill
- into multiple
- lines
-col5 string col5 very long
- multi-line
- comment where
- each line is very
- long by itself
- and is likely to
- spill
- into multiple
- lines. Lorem
- ipsum dolor sit
- amet, consectetur
- adipiscing elit.
- Proin in dolor
- nisl, sodales
- adipiscing
- tortor. Integer
- venenatis
-col6 string This comment has
- a very long
- single word ABCDE
- FGHIJKLMNOPQRSTUV
- XYZabcdefghijklmn
- opqrstuvzxyz123
- which will not
- fit in a line by
- itself for small
- column widths.
-col7_nocomment string
+col_name data_type comment
+
+col1 int col1 one line
+ comment
+col2 string col2
+ two lines comment
+col3 string col3
+ three lines
+ comment
+col4 string col4 very long
+ comment that is
+ greater than 80
+ chars and is
+ likely to spill
+ into multiple
+ lines
+col5 string col5 very long
+ multi-line
+ comment where
+ each line is very
+ long by itself
+ and is likely to
+ spill
+ into multiple
+ lines. Lorem
+ ipsum dolor sit
+ amet, consectetur
+ adipiscing elit.
+ Proin in dolor
+ nisl, sodales
+ adipiscing
+ tortor. Integer
+ venenatis
+col6 string This comment has
+ a very long
+ single word ABCDE
+ FGHIJKLMNOPQRSTUV
+ XYZabcdefghijklmn
+ opqrstuvzxyz123
+ which will not
+ fit in a line by
+ itself for small
+ column widths.
+col7_nocomment string
PREHOOK: query: DESCRIBE PRETTY test_table
PREHOOK: type: DESCTABLE
PREHOOK: Input: default@test_table
POSTHOOK: query: DESCRIBE PRETTY test_table
POSTHOOK: type: DESCTABLE
POSTHOOK: Input: default@test_table
-col_name data_type comment
-
-col1 int col1 one line comment
-col2 string col2
- two lines comment
-col3 string col3
- three lines
- comment
-col4 string col4 very long comment that
- is greater than 80 chars
- and is likely to spill into
- multiple lines
-col5 string col5 very long multi-line
- comment where each line is
- very long by itself and is
- likely to spill
- into multiple lines. Lorem
- ipsum dolor sit amet,
- consectetur adipiscing
- elit. Proin in dolor nisl,
- sodales
- adipiscing tortor. Integer
- venenatis
-col6 string This comment has a very
- long single word ABCDEFGHIJ
- KLMNOPQRSTUVXYZabcdefghijkl
- mnopqrstuvzxyz123 which
- will not fit in a line by
- itself for small column
- widths.
-col7_nocomment string
+col_name data_type comment
+
+col1 int col1 one line comment
+col2 string col2
+ two lines comment
+col3 string col3
+ three lines
+ comment
+col4 string col4 very long comment that
+ is greater than 80 chars
+ and is likely to spill into
+ multiple lines
+col5 string col5 very long multi-line
+ comment where each line is
+ very long by itself and is
+ likely to spill
+ into multiple lines. Lorem
+ ipsum dolor sit amet,
+ consectetur adipiscing
+ elit. Proin in dolor nisl,
+ sodales
+ adipiscing tortor. Integer
+ venenatis
+col6 string This comment has a very
+ long single word ABCDEFGHIJ
+ KLMNOPQRSTUVXYZabcdefghijkl
+ mnopqrstuvzxyz123 which
+ will not fit in a line by
+ itself for small column
+ widths.
+col7_nocomment string
PREHOOK: query: CREATE TABLE test_table_very_long_column_name(
col1 INT COMMENT 'col1 one line comment',
col2_abcdefghiklmnopqrstuvxyz STRING COMMENT 'col2
@@ -230,48 +230,48 @@ PREHOOK: Input: default@test_table_very_long_column_name
POSTHOOK: query: DESCRIBE PRETTY test_table_very_long_column_name
POSTHOOK: type: DESCTABLE
POSTHOOK: Input: default@test_table_very_long_column_name
-col_name data_type comment
-
-col1 int col1 one line comment
-col2_abcdefghiklmnopqrstuvxyz string col2
- two lines comment
-col3 string col3
- three lines
- comment
-col4 string col4 very long comment that is
- greater than 80 chars and is
- likely to spill into multiple
- lines
+col_name data_type comment
+
+col1 int col1 one line comment
+col2_abcdefghiklmnopqrstuvxyz string col2
+ two lines comment
+col3 string col3
+ three lines
+ comment
+col4 string col4 very long comment that is
+ greater than 80 chars and is
+ likely to spill into multiple
+ lines
PREHOOK: query: DESCRIBE PRETTY test_table_very_long_column_name
PREHOOK: type: DESCTABLE
PREHOOK: Input: default@test_table_very_long_column_name
POSTHOOK: query: DESCRIBE PRETTY test_table_very_long_column_name
POSTHOOK: type: DESCTABLE
POSTHOOK: Input: default@test_table_very_long_column_name
-col_name data_type comment
-
-col1 int col1 one
- line
- comment
-col2_abcdefghiklmnopqrstuvxyz string col2
- two lines
- comment
-col3 string col3
- three
- lines
- comment
-col4 string col4 very
- long
- comment
- that is
- greater
- than 80
- chars and
- is likely
- to spill
- into
- multiple
- lines
+col_name data_type comment
+
+col1 int col1 one
+ line
+ comment
+col2_abcdefghiklmnopqrstuvxyz string col2
+ two lines
+ comment
+col3 string col3
+ three
+ lines
+ comment
+col4 string col4 very
+ long
+ comment
+ that is
+ greater
+ than 80
+ chars and
+ is likely
+ to spill
+ into
+ multiple
+ lines
PREHOOK: query: CREATE TABLE test_table_partitioned(
col1 INT COMMENT 'col1 one line comment',
col2 STRING COMMENT 'col2
@@ -316,40 +316,40 @@ PREHOOK: Input: default@test_table_partitioned
POSTHOOK: query: DESCRIBE PRETTY test_table_partitioned
POSTHOOK: type: DESCTABLE
POSTHOOK: Input: default@test_table_partitioned
-col_name data_type comment
-
-col1 int col1 one line comment
-col2 string col2
- two lines comment
-col3 string col3
- three lines
- comment
-col4 string col4 very long comment that
- is greater than 80 chars
- and is likely to spill into
- multiple lines
-col5 string col5 very long multi-line
- comment where each line is
- very long by itself and is
- likely to spill
- into multiple lines. Lorem
- ipsum dolor sit amet,
- consectetur adipiscing
- elit. Proin in dolor nisl,
- sodales
- adipiscing tortor. Integer
- venenatis
-col6 string This comment has a very
- long single word ABCDEFGHIJ
- KLMNOPQRSTUVXYZabcdefghijkl
- mnopqrstuvzxyz123 which
- will not fit in a line by
- itself for small column
- widths.
-col7_nocomment string
-ds string
+col_name data_type comment
+
+col1 int col1 one line comment
+col2 string col2
+ two lines comment
+col3 string col3
+ three lines
+ comment
+col4 string col4 very long comment that
+ is greater than 80 chars
+ and is likely to spill into
+ multiple lines
+col5 string col5 very long multi-line
+ comment where each line is
+ very long by itself and is
+ likely to spill
+ into multiple lines. Lorem
+ ipsum dolor sit amet,
+ consectetur adipiscing
+ elit. Proin in dolor nisl,
+ sodales
+ adipiscing tortor. Integer
+ venenatis
+col6 string This comment has a very
+ long single word ABCDEFGHIJ
+ KLMNOPQRSTUVXYZabcdefghijkl
+ mnopqrstuvzxyz123 which
+ will not fit in a line by
+ itself for small column
+ widths.
+col7_nocomment string
+ds string
# Partition Information
-col_name data_type comment
-
-ds string
+col_name data_type comment
+
+ds string