diff --git beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java index 75f7d38..a1e07a0 100644 --- beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java +++ beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java @@ -82,6 +82,8 @@ //This can be set for old behavior of nulls printed as empty strings private boolean nullEmptyString = false; + private boolean truncateTable = false; + private final File rcFile = new File(saveDir(), "beeline.properties"); private String historyFile = new File(saveDir(), "history").getAbsolutePath(); @@ -490,5 +492,13 @@ public String getNullString(){ public void setHiveConfVariables(Map hiveConfVariables) { this.hiveConfVariables = hiveConfVariables; } + + public boolean getTruncateTable() { + return truncateTable; + } + + public void setTruncateTable(boolean truncateTable) { + this.truncateTable = truncateTable; + } } diff --git beeline/src/java/org/apache/hive/beeline/TableOutputFormat.java beeline/src/java/org/apache/hive/beeline/TableOutputFormat.java index 0e8dffd..2753568 100644 --- beeline/src/java/org/apache/hive/beeline/TableOutputFormat.java +++ beeline/src/java/org/apache/hive/beeline/TableOutputFormat.java @@ -49,7 +49,9 @@ public int print(Rows rows) { for (; rows.hasNext();) { Rows.Row row = (Rows.Row) rows.next(); ColorBuffer cbuf = getOutputString(rows, row); - cbuf = cbuf.truncate(width); + if (beeLine.getOpts().getTruncateTable()) { + cbuf = cbuf.truncate(width); + } if (index == 0) { sb.setLength(0); @@ -61,9 +63,10 @@ public int print(Rows rows) { } headerCols = cbuf; - header = beeLine.getColorBuffer() - .green(sb.toString()) - .truncate(headerCols.getVisibleLength()); + header = beeLine.getColorBuffer().green(sb.toString()); + if (beeLine.getOpts().getTruncateTable()) { + header = header.truncate(headerCols.getVisibleLength()); + } } if (beeLine.getOpts().getShowHeader()) { diff --git beeline/src/main/resources/BeeLine.properties beeline/src/main/resources/BeeLine.properties index 390d062..ddb0ba7 100644 --- beeline/src/main/resources/BeeLine.properties +++ beeline/src/main/resources/BeeLine.properties @@ -167,6 +167,7 @@ cmd-usage: Usage: java org.apache.hive.cli.beeline.BeeLine \n \ \ --silent=[true/false] be more silent\n \ \ --autosave=[true/false] automatically save preferences\n \ \ --outputformat=[table/vertical/csv/tsv] format mode for result display\n \ +\ --truncateTable=[true/false] truncate table column when it exceeds length\n \ \ --isolation=LEVEL set the transaction isolation level\n \ \ --nullemptystring=[true/false] set to true to get historic behavior of printing null as empty string\n \ \ --help display this message diff --git beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java index b78b7ad..8329db8 100644 --- beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java +++ beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java @@ -104,12 +104,14 @@ public void testHiveConfAndVars() throws Exception { @Test public void testBeelineOpts() throws Exception { TestBeeline bl = new TestBeeline(); - String args[] = new String[] {"-u", "url", "-n", "name", - "-p", "password", "-d", "driver", "--autoCommit=true", "--verbose"}; + String args[] = + new String[] { "-u", "url", "-n", "name", "-p", "password", "-d", "driver", + "--autoCommit=true", "--verbose", "--truncateTable" }; Assert.assertTrue(bl.initArgs(args)); Assert.assertTrue(bl.connectArgs.equals("url name password driver")); Assert.assertTrue(bl.getOpts().getAutoCommit()); Assert.assertTrue(bl.getOpts().getVerbose()); + Assert.assertTrue(bl.getOpts().getTruncateTable()); } /**