Thanks Julian. appreciate the insights…   Herman.

> On Mar 16, 2017, at 21:08, Julian Hyde <[email protected]> wrote:
> 
> The best way to learn this stuff is to run JdbcAdapterTest in a debugger. You 
> will see that the SqlDialect is deduced from the product name etc. that come 
> out of the JDBC driver.
> 
> Yes, Calcite “optimizes” the query. It parses the SQL, converts the AST to 
> RelNodes, and applies rules to convert as many of those RelNodes into JDBC 
> RelNodes, based on the capabilities of the target database. Then that tree is 
> converted back to SQL, based on the dialect.
> 
> There isn’t extensive documentation. This is a framework, and the number of 
> users ~~ the number of developers. So the users have to be self-starting.
> 
> Julian
> 
>> On Mar 15, 2017, at 6:39 PM, [email protected] wrote:
>> 
>> Hi Julian,
>> 
>> Thanks for the information and direction.  I did some reading and here are 
>> couple more questions:
>> 
>> 1. It seems to me that the “conformance” property is for different SQL 
>> standards (e.g. PRAGMATIC_2003, STRICT_92) or Oracle (ORACLE_10, ORACLE_12). 
>> For a specific database that I am migrating off (e.g. greenplum), what value 
>> should be set for “conformance” or do we need to add a customized 
>> implementation to support database specific SQL syntax and functions?
>> 2. For SQL dialect, where SQL dialect is set? I don’t see it is as a valid 
>> JDBC properties. 
>> 3. I did find a list of enum values for SQL dialect, however, is it possible 
>> to specify the version of the target database product? Different versions of 
>> same database product may have different level of support in terms of SQL 
>> syntax..
>> 3. As you mentioned below, this will be through JDBC adapter. When the 
>> target database is running on Hadoop (e.g. Hive), after parsing SQL, does 
>> Calcite JDBC do query optimization? or it just generates Hive QL and then 
>> push down to Hive for query optimization and execution?
>> 
>> I am new to Calcite and sorry if these are too detail for a dev mailing 
>> list. I didn’t find detail architecture diagrams/documents online and 
>> haven’t gone through source codes yet…
>> 
>> Thanks
>> Herman
>> 
>> 
>>> On Mar 13, 2017, at 23:17, Julian Hyde <[email protected]> wrote:
>>> 
>>> We already have the switches you’d need: you can control the dialect 
>>> accepted by Calcite’s parser by setting the “conformance” property [1], and 
>>> the JDBC adapter generates SQL appropriate for the target database by 
>>> inferring the target database's “dialect” [2].
>>> 
>>> What’s missing is a lot of testing of the various combinations of source 
>>> and target dialects.
>>> 
>>> Julian
>>> 
>>> 
>>> [1] 
>>> https://calcite.apache.org/apidocs/org/apache/calcite/sql/validate/SqlConformance.html
>>>  
>>> <https://calcite.apache.org/apidocs/org/apache/calcite/sql/validate/SqlConformance.html>
>>> 
>>> [2] 
>>> https://calcite.apache.org/apidocs/org/apache/calcite/sql/SqlDialect.html 
>>> <https://calcite.apache.org/apidocs/org/apache/calcite/sql/SqlDialect.html>
>>> 
>>>> On Mar 13, 2017, at 8:11 PM, [email protected] wrote:
>>>> 
>>>> I am thinking Calcite should be helpful for a SQL migration (making SQL 
>>>> wrote for database A work with database B, includes SQL syntax and 
>>>> potential query optimization), I am new to Calcite and this mailing list, 
>>>> I’d appreciate if anyone here can help point me to a direction where to 
>>>> start.
>>>> 
>>>> Thanks
>>>> Herman
>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to