[
https://issues.apache.org/jira/browse/DRILL-7048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16801594#comment-16801594
]
ASF GitHub Bot commented on DRILL-7048:
---------------------------------------
vvysotskyi commented on pull request #1714: DRILL-7048: Implement JDBC
Statement.setMaxRows() with System Option
URL: https://github.com/apache/drill/pull/1714#discussion_r269039279
##########
File path: exec/jdbc/src/test/java/org/apache/drill/jdbc/StatementTest.java
##########
@@ -239,4 +246,173 @@ public void testNonTriggeredQueryTimeout() throws
SQLException {
}
}
+ ////////////////////////////////////////
+ // Query maxRows methods:
+
+ /**
+ * Test for reading of default max rows
+ */
+ @Test
+ public void testDefaultGetMaxRows() throws SQLException {
+ try(Statement stmt = connection.createStatement()) {
+ int maxRowsValue = stmt.getMaxRows();
+ assertEquals(0, maxRowsValue);
+ }
+ }
+
+ /**
+ * Test Invalid parameter by giving negative maxRows value
+ */
+ @Test
+ public void testInvalidSetMaxRows() throws SQLException {
+ try (Statement stmt = connection.createStatement()) {
+ // Setting negative value
+ int valueToSet = -10;
+ try {
+ stmt.setMaxRows(valueToSet);
+ } catch ( final SQLException e) {
+ assertThat( e.getMessage(), containsString("VALIDATION ERROR: Option
exec.query.max_rows must be between 0 and ") );
+ }
+ }
+ }
+
+ /**
+ * Test setting a valid maxRows value
+ */
+ @Test
+ public void testValidSetMaxRows() throws SQLException {
+ try (Statement stmt = connection.createStatement()) {
+ // Setting positive value
+ int valueToSet = RANDOMIZER.nextInt(59)+1;
+ logger.info("Setting maximum resultset size as {} rows", valueToSet);
+ stmt.setMaxRows(valueToSet);
+ assertEquals( valueToSet, stmt.getMaxRows() );
+ }
+ }
+
+ /**
+ * Test setting maxSize as zero (i.e. no Limit)
+ */
+ @Test
+ public void testSetMaxRowsAsZero() throws SQLException {
+ try (Statement stmt = connection.createStatement()) {
+ stmt.setMaxRows(0);
+ stmt.executeQuery(SYS_OPTIONS_SQL);
+ ResultSet rs = stmt.getResultSet();
Review comment:
`ResultSet` should be also closed.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> Implement JDBC Statement.setMaxRows() with System Option
> --------------------------------------------------------
>
> Key: DRILL-7048
> URL: https://issues.apache.org/jira/browse/DRILL-7048
> Project: Apache Drill
> Issue Type: New Feature
> Components: Client - JDBC, Query Planning & Optimization
> Affects Versions: 1.15.0
> Reporter: Kunal Khatua
> Assignee: Kunal Khatua
> Priority: Major
> Labels: doc-impacting
> Fix For: 1.17.0
>
>
> With DRILL-6960, the webUI will get an auto-limit on the number of results
> fetched.
> Since more of the plumbing is already there, it makes sense to provide the
> same for the JDBC client.
> In addition, it would be nice if the Server can have a pre-defined value as
> well (default 0; i.e. no limit) so that an _admin_ would be able to ensure a
> max limit on the resultset size as well.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)