Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -695,7 +695,8 @@ static boolean shouldReturnResultSet(String query) {
|| GET_PATTERN.matcher(trimmedQuery).find()
|| REMOVE_PATTERN.matcher(trimmedQuery).find()
|| LIST_PATTERN.matcher(trimmedQuery).find()
|| BEGIN_PATTERN_FOR_SQL_SCRIPT.matcher(trimmedQuery).find();
|| BEGIN_PATTERN_FOR_SQL_SCRIPT.matcher(trimmedQuery).find()
|| CALL_PATTERN.matcher(trimmedQuery).find();

// Otherwise, it should not return a ResultSet
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,15 +159,17 @@ public enum FakeServiceType {
public static final Pattern DECLARE_PATTERN =
Pattern.compile("^(\\s*\\()*\\s*DECLARE", Pattern.CASE_INSENSITIVE);
public static final Pattern PUT_PATTERN =
Pattern.compile("^(\\s*\\()*\\s*GET", Pattern.CASE_INSENSITIVE);
public static final Pattern GET_PATTERN =
Pattern.compile("^(\\s*\\()*\\s*PUT", Pattern.CASE_INSENSITIVE);
public static final Pattern GET_PATTERN =
Pattern.compile("^(\\s*\\()*\\s*GET", Pattern.CASE_INSENSITIVE);
public static final Pattern REMOVE_PATTERN =
Pattern.compile("^(\\s*\\()*\\s*REMOVE", Pattern.CASE_INSENSITIVE);
public static final Pattern LIST_PATTERN =
Pattern.compile("^(\\s*\\()*\\s*LIST", Pattern.CASE_INSENSITIVE);
public static final Pattern INSERT_PATTERN =
Pattern.compile("^(\\s*\\()*\\s*INSERT\\s+INTO", Pattern.CASE_INSENSITIVE);
public static final Pattern CALL_PATTERN =
Pattern.compile("^(\\s*\\()*\\s*CALL", Pattern.CASE_INSENSITIVE);

/** Maximum number of parameters allowed in a single Databricks query */
public static final int MAX_QUERY_PARAMETERS = 256;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -675,6 +675,14 @@ public void testShouldReturnResultSet_CommentSurroundingQuery() {
assertTrue(DatabricksStatement.shouldReturnResultSet(query));
}

@Test
public void testShouldReturnResultSet_CallStatement() {
String query =
"-- Single-line comment\n/* Multi-line comment */ CALL send_notifications(12); /* Another comment */ -- End comment";
assertTrue(DatabricksStatement.shouldReturnResultSet(query));
assertTrue(DatabricksStatement.shouldReturnResultSet("CALL send_notifications(12);"));
}

@Test
public void testShouldReturnResultSet_StartWithBegin() {
assertTrue(DatabricksStatement.shouldReturnResultSet("BEGIN"));
Expand Down
Loading