mirror of
https://github.com/apache/zeppelin
synced 2026-05-24 09:38:26 +00:00
ZEPPELIN-215: Fix a case where the cursor is close after the end of the buffer
This commit is contained in:
parent
d2393d6ec8
commit
91ce7f432e
2 changed files with 6 additions and 5 deletions
|
|
@ -83,7 +83,8 @@ public class SqlCompleter extends StringsCompleter {
|
|||
|
||||
if (isBlank(argument)) {
|
||||
int argumentsCount = argumentList.getArguments().length;
|
||||
if (argumentsCount <= 0 || sqlDelimiter.isDelimiterChar(buffer, buffer.length() - 1)) {
|
||||
if (argumentsCount <= 0 || ((buffer.length() + 2) < cursor)
|
||||
|| sqlDelimiter.isDelimiterChar(buffer, cursor - 2)) {
|
||||
return -1;
|
||||
}
|
||||
argument = argumentList.getArguments()[argumentsCount - 1];
|
||||
|
|
|
|||
|
|
@ -64,8 +64,8 @@ public class SqlCompleterTest extends BasicJDBCTestCaseAdapter {
|
|||
@Test
|
||||
public void testEdges() {
|
||||
String buffer = " ORDER ";
|
||||
tester.buffer(buffer).from(0).to(7).expect(newHashSet("ORDER ")).test();
|
||||
tester.buffer(buffer).from(8).to(15).expect(EMPTY).test();
|
||||
tester.buffer(buffer).from(0).to(8).expect(newHashSet("ORDER ")).test();
|
||||
tester.buffer(buffer).from(9).to(15).expect(EMPTY).test();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -97,8 +97,8 @@ public class SqlCompleterTest extends BasicJDBCTestCaseAdapter {
|
|||
public void testDotDelimiter() {
|
||||
String buffer = " order.select ";
|
||||
tester.buffer(buffer).from(4).to(7).expect(newHashSet("order ")).test();
|
||||
tester.buffer(buffer).from(8).to(14).expect(newHashSet("select ")).test();
|
||||
tester.buffer(buffer).from(15).to(17).expect(EMPTY).test();
|
||||
tester.buffer(buffer).from(8).to(15).expect(newHashSet("select ")).test();
|
||||
tester.buffer(buffer).from(16).to(17).expect(EMPTY).test();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
Loading…
Reference in a new issue