diff --git beeline/src/java/org/apache/hive/beeline/Commands.java beeline/src/java/org/apache/hive/beeline/Commands.java index 08f3846..22e2066 100644 --- beeline/src/java/org/apache/hive/beeline/Commands.java +++ beeline/src/java/org/apache/hive/beeline/Commands.java @@ -179,10 +179,12 @@ public boolean addlocaldriverjar(String line) { public boolean history(String line) { Iterator hist = beeLine.getConsoleReader().getHistory().entries(); - int index = 1; + String[] tmp; while(hist.hasNext()){ - beeLine.output(beeLine.getColorBuffer().pad(index + ".", 6) - .append(hist.next().toString())); + tmp = hist.next().toString().split(":", 2); + tmp[0] = Integer.toString(Integer.parseInt(tmp[0]) + 1); + beeLine.output(beeLine.getColorBuffer().pad(tmp[0], 6) + .append(":" + tmp[1])); } return true; } diff --git beeline/src/test/org/apache/hive/beeline/TestBeeLineHistory.java beeline/src/test/org/apache/hive/beeline/TestBeeLineHistory.java index 91e812f..e861976 100644 --- beeline/src/test/org/apache/hive/beeline/TestBeeLineHistory.java +++ beeline/src/test/org/apache/hive/beeline/TestBeeLineHistory.java @@ -40,6 +40,14 @@ public static void beforeTests() throws Exception { PrintWriter writer = new PrintWriter(fileName); writer.println("select 1;"); writer.println("select 2;"); + writer.println("select 3;"); + writer.println("select 4;"); + writer.println("select 5;"); + writer.println("select 6;"); + writer.println("select 7;"); + writer.println("select 8;"); + writer.println("select 9;"); + writer.println("select 10;"); writer.close(); } @@ -54,7 +62,23 @@ public void testNumHistories() throws Exception { beeline.dispatch("!history"); String output = os.toString("UTF-8"); int numHistories = output.split("\n").length; - Assert.assertEquals(numHistories, 2); + Assert.assertEquals(numHistories, 10); + beeline.close(); + } + + @Test + public void testHistory() throws Exception { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + PrintStream ops = new PrintStream(os); + BeeLine beeline = new BeeLine(); + beeline.getOpts().setHistoryFile(fileName); + beeline.setOutputStream(ops); + beeline.getConsoleReader(null); + beeline.dispatch("!history"); + String output = os.toString("UTF-8"); + String[] tmp = output.split("\n"); + Assert.assertTrue(tmp[0].equals("1 : select 1;")); + Assert.assertTrue(tmp[9].equals("10 : select 10;")); beeline.close(); }