Skip to content

Commit

Permalink
[KYUUBI apache#4305][Bug] Backport HIVE-15820: comment at the head of…
Browse files Browse the repository at this point in the history
… beeline -e

### _Why are the changes needed?_

close [apache#4305](apache#4305)

### manual tests

```sql
bin/beeline -u jdbc:hive2://X:10009 -e "
--asd
select 1 as a
"
```

![image](https://user-images.githubusercontent.com/18713676/218910222-b829d447-e5b7-4d80-842b-2ddd4f47a26d.png)

### _How was this patch tested?_
- [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

- [x] Add screenshots for manual tests if appropriate

- [ ] [Run test](https://kyuubi.readthedocs.io/en/master/develop_tools/testing.html#running-tests) locally before make a pull request

Closes apache#4333 from lsm1/fix/beeline_comment_header.

Closes apache#4305

f932d4e [senmiaoliu] reformat
9a071fb [senmiaoliu] added multi line ut
425c536 [senmiaoliu] added ut
d4dc21a [senmiaoliu] comment at the head of beeline -e

Authored-by: senmiaoliu <senmiaoliu@trip.com>
Signed-off-by: Fu Chen <cfmcgrady@gmail.com>
  • Loading branch information
lsm1 authored and cfmcgrady committed Feb 16, 2023
1 parent 70f7c09 commit c489e29
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.hive.common.util.HiveStringUtils;

public class KyuubiBeeLine extends BeeLine {
public static final String KYUUBI_BEELINE_DEFAULT_JDBC_DRIVER =
Expand Down Expand Up @@ -192,4 +193,9 @@ int initArgs(String[] args) {
}
return code;
}

@Override
boolean dispatch(String line) {
return super.dispatch(HiveStringUtils.removeComments(line));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.sql.*;
import java.util.*;
import org.apache.hive.beeline.logs.KyuubiBeelineInPlaceUpdateStream;
import org.apache.hive.common.util.HiveStringUtils;
import org.apache.kyuubi.jdbc.hive.KyuubiStatement;
import org.apache.kyuubi.jdbc.hive.Utils;
import org.apache.kyuubi.jdbc.hive.logs.InPlaceUpdateStream;
Expand Down Expand Up @@ -499,7 +500,7 @@ public boolean connect(Properties props) throws IOException {

@Override
public String handleMultiLineCmd(String line) throws IOException {
int[] startQuote = {-1};
line = HiveStringUtils.removeComments(line);
Character mask =
(System.getProperty("jline.terminal", "").equals("jline.UnsupportedTerminal"))
? null
Expand Down Expand Up @@ -530,7 +531,8 @@ public String handleMultiLineCmd(String line) throws IOException {
if (extra == null) { // it happens when using -f and the line of cmds does not end with ;
break;
}
if (!extra.isEmpty()) {
extra = HiveStringUtils.removeComments(extra);
if (extra != null && !extra.isEmpty()) {
line += "\n" + extra;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,17 @@ public void testKyuubiBeelineWithoutArgs() {
int result = kyuubiBeeLine.initArgs(new String[0]);
assertEquals(0, result);
}

@Test
public void testKyuubiBeelineComment() {
KyuubiBeeLine kyuubiBeeLine = new KyuubiBeeLine();
int result = kyuubiBeeLine.initArgsFromCliVars(new String[] {"-e", "--comment show database;"});
assertEquals(0, result);
result = kyuubiBeeLine.initArgsFromCliVars(new String[] {"-e", "--comment\n show database;"});
assertEquals(1, result);
result =
kyuubiBeeLine.initArgsFromCliVars(
new String[] {"-e", "--comment line 1 \n --comment line 2 \n show database;"});
assertEquals(1, result);
}
}

0 comments on commit c489e29

Please sign in to comment.