I’ve created the jira: https://issues.apache.org/jira/browse/CALCITE-1801
and attached the test case in RelBuilderTest as suggested.  

Thanks,

-JD

> On May 19, 2017, at 8:12 PM, Julian Hyde <[email protected]> wrote:
> 
> You can create a bug by clicking the “create” button on Apache JIRA: 
> https://issues.apache.org/jira/browse/CALCITE.
> 
> A test case would be a piece of code that anyone could run to reproduce the 
> problem. Maybe you could add a method to RelBuilderTest similar to testRun().
> 
> Julian
> 
>> On May 19, 2017, at 2:40 PM, JD Zheng <[email protected]> wrote:
>> 
>> Hi, Julian,
>> 
>> Thank you for reply. I am new to the open source community. What do you
>> mean by "log a bug, with a test case"?
>> 
>> -JD
>> 
>> On May 19, 2017, at 11:52 AM, Julian Hyde <[email protected]> wrote:
>> 
>> Please log a bug, with a test case.
>> 
>> Maybe we use some callback to create a connection. And maybe if you are
>> using an anonymous class it causes the connection to be garbage-collected
>> sooner.
>> 
>> Julian
>> 
>> 
>> On May 19, 2017, at 1:24 PM, Laptop huawei <[email protected]> wrote:
>> 
>> Hi,
>> 
>> I am using RelRunners to execute pre-built relnode tree. It works perfectly
>> when I put the following code in the junit class:
>> 
>> protected String execute(RelNode rel) {
>>     try (final PreparedStatement preparedStatement = RelRunners.run(rel))
>> {
>>       final ResultSet resultSet = preparedStatement.executeQuery();
>>       return printResult(resultSet, true);
>>     } catch (SQLException e) {
>>       throw new RuntimeException(e);
>>     }
>> }
>> 
>> However,if I put these code inside a src class, the returned resultSet is
>> closed.
>> 
>> More interestingly, if I expand the RelRunners.run() in the method like
>> this:
>> 
>> public static ResultSet execute(RelNode rel) {
>> /*
>>     try (final PreparedStatement preparedStatement = RelRunners.run(rel))
>> {
>>       return preparedStatement.executeQuery();
>>     } catch (SQLException e) {
>>       throw new AQLExecuteErrorException(e);
>>     }
>>     */
>>     try (Connection connection =
>> DriverManager.getConnection("jdbc:calcite:"))
>> {
>>         final RelRunner runner = connection.unwrap(RelRunner.class);
>>         PreparedStatement preparedStatement = runner.prepare(rel);
>>         return preparedStatement.executeQuery();
>>       } catch (SQLException e) {
>>         throw new AQLExecuteErrorException(e);
>>       }
>> }
>> 
>> It works again.
>> 
>> Has anyone seen this behavior before or has any insights? Thanks,
>> 
>> -JD
> 

Reply via email to