calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Julian Hyde <jh...@apache.org>
Subject Re: RelNode to SQLNode converter
Date Mon, 07 Dec 2015 22:45:47 GMT
Can someone from the Drill team please review https://issues.apache.org/jira/browse/CALCITE-1003?


I know you guys have a JDBC adapter. And of course Calcite has a JDBC adapter. And now this
code that converts RelNodes (not necessarily in the JDBC adapter) to SQL. I don’t want to
have the same logic in 3 different places. Where is the right place for it to live?

If we do it right, all of us will be able to spend less time maintaining SQL-generation for
obscure databases and more time doing fun stuff. :)

Julian


> On Dec 2, 2015, at 10:59 PM, Amogh Margoor <amoghm@qubole.com> wrote:
> 
> Thanks Julian for your quick response and suggestions. I raised this JIRA
> to track this: https://issues.apache.org/jira/browse/CALCITE-1003.
> Will soon raise a PR with UTs in suggested format.
> 
> Regards,
> Amogh
> 
> 
> On Wed, Dec 2, 2015 at 3:13 AM, Julian Hyde <jhyde@apache.org> wrote:
> 
>> Yes, this would definitely be useful in Calcite. Thanks for offering.
>> 
>> I would like to reduce the amount of code copy-pasted from the JdbcXxx
>> relational expressions, but we can work on that after it is committed in
>> and when there are some unit tests.
>> 
>> Can you please create a JIRA case with an initial pull-request?
>> 
>> I think the unit tests could be of the following form:
>> 
>>  @Test public void testScan() {
>>    final String sql = “select * from emp”;
>>    final String after = "SELECT *\n”
>>        + "FROM \”EMP\””;
>>    check(sql, after);
>>  }
>> 
>> where “after” is the result of the round trip SQL -> SqlNode -> RelNode
->
>> SqlNode -> SQL, and your utility is performing the 3rd “->”.
>> 
>> Julian
>> 
>>> On Dec 1, 2015, at 12:28 AM, Amogh Margoor <amoghm@qubole.com> wrote:
>>> 
>>> Hi,
>>> We have an usecase where we need to just send back optimized query as
>> SQL,
>>> without executing it. So we needed an utility to convert RelNode back to
>>> SQL, and found most of the logic to be in JDBCRel. As we needed it for
>> non
>>> JDBC source, we created an utility to do so:
>>> 
>> https://github.com/amoghmargoor/incubator-calcite/blob/NEZ-52/core/src/main/java/org/apache/calcite/rel/rel2sql/RelToSqlConverter.java
>>> 
>>> Utility is almost completely copy-pasted from JDBCRels with few fixes
>> from
>>> our side to make it work. If such utility will be useful in Calcite then
>>> let us know, we can plan raising PRs with required UTs.
>>> 
>>> Regards,
>>> Amogh
>> 
>> 


Mime
View raw message