From 2c860d549f2d479b9b9bb5c8d9ffc8947561b7f4 Mon Sep 17 00:00:00 2001 From: Dongkyu Hwangbo Date: Mon, 16 Nov 2015 10:40:04 +0900 Subject: [PATCH 1/4] blank support in ConnectDatabaseCommand --- .../cli/tsql/commands/ConnectDatabaseCommand.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/ConnectDatabaseCommand.java b/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/ConnectDatabaseCommand.java index 8c614b4795..a390d6a5cd 100644 --- a/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/ConnectDatabaseCommand.java +++ b/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/ConnectDatabaseCommand.java @@ -41,8 +41,17 @@ public void invoke(String[] cmd) throws Exception { context.getOutput().write(String.format("You are now connected to database \"%s\" as user \"%s\".%n", client.getCurrentDatabase(), client.getUserInfo().getUserName())); - } else if (cmd.length == 2) { - final String databaseName = cmd[1].replace("\"", ""); + } else if (cmd.length >= 2) { + + StringBuilder sb = new StringBuilder(); + for (int i = 1; i < cmd.length; i++) { + if (i != 1) { + sb.append(" "); + } + sb.append(cmd[i]); + } + + final String databaseName = sb.toString().replace("\"", ""); try { client.selectDatabase(databaseName); From 74a0f6536236ce6a41becac0c7a929a0d442201a Mon Sep 17 00:00:00 2001 From: Dongkyu Hwangbo Date: Mon, 16 Nov 2015 10:49:05 +0900 Subject: [PATCH 2/4] blank support in DescTableCommand --- .../cli/tsql/commands/ConnectDatabaseCommand.java | 8 ++++---- .../tajo/cli/tsql/commands/DescTableCommand.java | 12 +++++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/ConnectDatabaseCommand.java b/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/ConnectDatabaseCommand.java index a390d6a5cd..6f8a6d2829 100644 --- a/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/ConnectDatabaseCommand.java +++ b/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/ConnectDatabaseCommand.java @@ -43,15 +43,15 @@ public void invoke(String[] cmd) throws Exception { } else if (cmd.length >= 2) { - StringBuilder sb = new StringBuilder(); + StringBuilder databaseNameMaker = new StringBuilder(); for (int i = 1; i < cmd.length; i++) { if (i != 1) { - sb.append(" "); + databaseNameMaker.append(" "); } - sb.append(cmd[i]); + databaseNameMaker.append(cmd[i]); } - final String databaseName = sb.toString().replace("\"", ""); + final String databaseName = databaseNameMaker.toString().replace("\"", ""); try { client.selectDatabase(databaseName); diff --git a/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/DescTableCommand.java b/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/DescTableCommand.java index 55553aaec5..12d23cf3a0 100644 --- a/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/DescTableCommand.java +++ b/tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/DescTableCommand.java @@ -47,9 +47,15 @@ public String getCommand() { @Override public void invoke(String[] cmd) throws TajoException { - if (cmd.length == 2) { - String tableName = cmd[1]; - tableName = tableName.replace("\"", ""); + if (cmd.length >= 2) { + StringBuilder tableNameMaker = new StringBuilder(); + for (int i = 1; i < cmd.length; i++) { + if (i != 1) { + tableNameMaker.append(" "); + } + tableNameMaker.append(cmd[i]); + } + String tableName = tableNameMaker.toString().replace("\"", ""); TableDesc desc = client.getTableDesc(tableName); if (desc == null) { context.getOutput().println("Did not find any relation named \"" + tableName + "\""); From 313e776b09d14ce3bd3934dc9de2f4d5bf09ce1d Mon Sep 17 00:00:00 2001 From: Dongkyu Hwangbo Date: Mon, 16 Nov 2015 13:57:08 +0900 Subject: [PATCH 3/4] add unit test --- .../org/apache/tajo/cli/tsql/TestTajoCli.java | 36 ++++++++++++++----- .../results/TestTajoCli/testDescTable1.result | 27 ++++++++++++++ .../results/TestTajoCli/testDescTable2.result | 27 ++++++++++++++ 3 files changed, 81 insertions(+), 9 deletions(-) create mode 100644 tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable1.result create mode 100644 tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable2.result diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java b/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java index ad2d50b710..2988fd3d59 100644 --- a/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java +++ b/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java @@ -190,14 +190,13 @@ public void testLocalQueryWithoutFrom() throws Exception { assertOutputResult(consoleResult); } - @Test - public void testConnectDatabase() throws Exception { + public void verifyConnectDatabase(String testDatabaseName) throws Exception { String databaseName; if (cluster.isHiveCatalogStoreRunning()) { - databaseName = "TEST_CONNECTION_DATABASE".toLowerCase(); + databaseName = testDatabaseName.toLowerCase(); } else { - databaseName = "TEST_CONNECTION_DATABASE"; + databaseName = testDatabaseName; } String sql = "create database \"" + databaseName + "\";"; @@ -213,6 +212,16 @@ public void testConnectDatabase() throws Exception { assertEquals(databaseName, tajoCli.getContext().getCurrentDatabase()); } + @Test + public void testConnectDatabase() throws Exception { + verifyConnectDatabase("TEST_CONNECTION_DATABASE"); + } + + @Test + public void testConnectDatabaseNamedWithSpace() throws Exception { + verifyConnectDatabase("TEST CONNECTION DATABASE"); + } + private void verifyDescTable(String sql, String tableName, String resultFileName) throws Exception { setVar(tajoCli, SessionVars.CLI_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName()); tajoCli.executeScript(sql); @@ -228,17 +237,26 @@ private void verifyDescTable(String sql, String tableName, String resultFileName } } - @Test - public void testDescTable() throws Exception { + public void testDescTable(String testTableName, String resultFileName) throws Exception { String tableName; if (cluster.isHiveCatalogStoreRunning()) { - tableName = "TEST_DESC_TABLE".toLowerCase(); + tableName = testTableName.toLowerCase(); } else { - tableName = "TEST_DESC_TABLE"; + tableName = testTableName; } String sql = "create table \"" + tableName + "\" (col1 int4, col2 int4);"; - verifyDescTable(sql, tableName, "testDescTable.result"); + verifyDescTable(sql, tableName, resultFileName); + } + + @Test + public void testDescTable() throws Exception { + testDescTable("TEST_DESC_TABLE", "testDescTable1.result"); + } + + @Test + public void testDescTableNamedWithSpace() throws Exception { + testDescTable("TEST DESC TABLE", "testDescTable2.result"); } @Test diff --git a/tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable1.result b/tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable1.result new file mode 100644 index 0000000000..f065e6e4db --- /dev/null +++ b/tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable1.result @@ -0,0 +1,27 @@ +OK + +table name: default.TEST_DESC_TABLE +table uri: ${table.path} +store type: TEXT +number of rows: 0 +volume: 0 B +Options: + 'text.delimiter'='|' + +schema: +col1 INT4 +col2 INT4 + + + +table name: default.TEST_DESC_TABLE +table uri: ${table.path} +store type: TEXT +number of rows: 0 +volume: 0 B +Options: + 'text.delimiter'='|' + +schema: +col1 INT4 +col2 INT4 \ No newline at end of file diff --git a/tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable2.result b/tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable2.result new file mode 100644 index 0000000000..8534299f0d --- /dev/null +++ b/tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable2.result @@ -0,0 +1,27 @@ +OK + +table name: default.TEST DESC TABLE +table uri: ${table.path} +store type: TEXT +number of rows: 0 +volume: 0 B +Options: + 'text.delimiter'='|' + +schema: +col1 INT4 +col2 INT4 + + + +table name: default.TEST DESC TABLE +table uri: ${table.path} +store type: TEXT +number of rows: 0 +volume: 0 B +Options: + 'text.delimiter'='|' + +schema: +col1 INT4 +col2 INT4 \ No newline at end of file From 3a8bded39cebd97e8441a20b2c87c752362c7a22 Mon Sep 17 00:00:00 2001 From: Dongkyu Hwangbo Date: Tue, 17 Nov 2015 10:11:22 +0900 Subject: [PATCH 4/4] remove unused file --- .../results/TestTajoCli/testDescTable.result | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable.result diff --git a/tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable.result b/tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable.result deleted file mode 100644 index f065e6e4db..0000000000 --- a/tajo-core-tests/src/test/resources/results/TestTajoCli/testDescTable.result +++ /dev/null @@ -1,27 +0,0 @@ -OK - -table name: default.TEST_DESC_TABLE -table uri: ${table.path} -store type: TEXT -number of rows: 0 -volume: 0 B -Options: - 'text.delimiter'='|' - -schema: -col1 INT4 -col2 INT4 - - - -table name: default.TEST_DESC_TABLE -table uri: ${table.path} -store type: TEXT -number of rows: 0 -volume: 0 B -Options: - 'text.delimiter'='|' - -schema: -col1 INT4 -col2 INT4 \ No newline at end of file