Thanks! Now, if someone on the list has time to look into it, it would be 
appreciated…


> On May 22, 2017, at 12:03 PM, Laptop huawei <jdh...@gmail.com> wrote:
> 
> 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 <jh...@apache.org> 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 <jdh...@gmail.com> 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 <jh...@apache.org> 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 <jdh...@gmail.com> 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