diff --git a/e2e-test/java/org/alfresco/rest/search/sql/SearchSQLAPITest.java b/e2e-test/java/org/alfresco/rest/search/sql/SearchSQLAPITest.java index ef6e9fe51..8f1b2037a 100644 --- a/e2e-test/java/org/alfresco/rest/search/sql/SearchSQLAPITest.java +++ b/e2e-test/java/org/alfresco/rest/search/sql/SearchSQLAPITest.java @@ -599,4 +599,31 @@ public class SearchSQLAPITest extends AbstractSearchTest restClient.authenticateUser(userModel).withSearchSqlAPI().searchSql(sqlRequest); restClient.assertStatusCodeIs(expectedStatus); } + + @Test(groups = { TestGroup.SEARCH, TestGroup.REST_API, TestGroup.INSIGHT_10 }, priority = 14) + public void testSelectStar() throws Exception + { + // Select * with Limit, json format + SearchSqlRequest sqlRequest = new SearchSqlRequest(); + sqlRequest.setSql("select * from alfresco"); + sqlRequest.setLimit(1); + + RestResponse response = searchSql(sqlRequest); + + restClient.assertStatusCodeIs(HttpStatus.OK); + response.assertThat().body("list.pagination.maxItems", Matchers.equalTo(1)); + restClient.onResponse().assertThat().body("list.entries.entry[0][0].label", Matchers.equalToIgnoringCase("PATH")); + + // Select * with Limit, solr format: Also covered in JDBC + sqlRequest = new SearchSqlRequest(); + sqlRequest.setSql("select * from alfresco"); + sqlRequest.setFormat("solr"); + sqlRequest.setIncludeMetadata(true); + sqlRequest.setLimit(1); + + response = searchSql(sqlRequest); + + restClient.assertStatusCodeIs(HttpStatus.OK); + restClient.onResponse().assertThat().body("result-set.docs[0].aliases.PATH", Matchers.notNullValue()); + } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/search/sql/SearchSQLViaJDBCTest.java b/e2e-test/java/org/alfresco/rest/search/sql/SearchSQLViaJDBCTest.java index a53b347fa..25a1f01ca 100644 --- a/e2e-test/java/org/alfresco/rest/search/sql/SearchSQLViaJDBCTest.java +++ b/e2e-test/java/org/alfresco/rest/search/sql/SearchSQLViaJDBCTest.java @@ -150,4 +150,44 @@ public class SearchSQLViaJDBCTest extends AbstractSearchTest // Record set is null Assert.assertNull(rs); } + + @Test(groups = { TestGroup.SEARCH, TestGroup.REST_API, TestGroup.INSIGHT_10 }, priority = 06) + public void testQuerySelectStar() throws SQLException + { + // Select * query with limit clause + String sql = "select * from alfresco limit 5"; + sqlRequest.setSql(sql); + sqlRequest.setAuthUser(userModel); + + // Select * with limit clause works: No error is retrieved + ResultSet rs = restClient.withSearchSqlViaJDBC().executeQueryViaJDBC(sqlRequest); + Assert.assertNotNull(rs); + Assert.assertNull(sqlRequest.getErrorDetails()); + + while (rs.next()) + { + // Field values are retrieved + Assert.assertNotNull(rs.getString("PATH")); + Assert.assertNotNull(rs.getString("DBID")); + Assert.assertNotNull(rs.getString("cm_name")); + } + + // Select * query Without limit clause: No error is retrieved + sql = "select * from alfresco"; + sqlRequest.setSql(sql); + sqlRequest.setAuthUser(userModel); + + // No error is retrieved when SQL is incorrect + rs = restClient.withSearchSqlViaJDBC().executeQueryViaJDBC(sqlRequest); + Assert.assertNotNull(rs); + Assert.assertNull(sqlRequest.getErrorDetails()); + + while (rs.next()) + { + // Field values are retrieved + Assert.assertNotNull(rs.getString("PATH")); + Assert.assertNotNull(rs.getString("DBID")); + Assert.assertNotNull(rs.getString("cm_name")); + } + } } \ No newline at end of file