[ 
https://issues.apache.org/jira/browse/CALCITE-1527?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15724154#comment-15724154
 ] 

Julian Hyde commented on CALCITE-1527:
--------------------------------------

My main concern is that you have not implemented {{INSERT ... SELECT}}, only 
{{INSERT ... VALUES}}. Do I have that correct? Since Values is just a RelNode, 
I wonder whether you could push all supported RelNodes to the JDBC source; 
you'd get VALUES for free (so you could get rid of SQL_INSERT_VALUES_OPERATOR), 
and also many variants of SELECT (whatever that dialect of SQL supports).

Except for that, the change looks very good.

A few minor notes:
* Is the {{@Ignore("CALCITE-1527")}} needed?
* How about the commented lines {{doWithConnection(new SqlInsertFunction())}}?
* Can you explain why {{@FixMethodOrder(MethodSorters.NAME_ASCENDING)}} is 
needed?
* The {{if (modify.getOperation().equals(Operation.INSERT))}} block can be 
converted to a switch. Can you do so.
* Can you add javadoc for {{sourceExpressionList}} in {{TableModify}} (either 
the field or the constructor). Is it required for UPDATE? Is it not allowed for 
INSERT and DELETE? Add a {{Preconditions.checkArgument}} call to enforce the 
constraint.

> Support DML in the JDBC adapter
> -------------------------------
>
>                 Key: CALCITE-1527
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1527
>             Project: Calcite
>          Issue Type: Bug
>          Components: jdbc-adapter
>            Reporter: Christian Tzolov
>
> Currently the JDBC adapter does not support the DML operations: *INSERT*, 
> *DELETE* and  *UPDATE*.
> Solution needs to convert the parsed *Modify* and *Values* RelNodes into 
> *JdbcTableModify*, *JdbcValues* ... such and then in turn into corresponding 
> SqlInsert, SqlUpdate and SqlDelete.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to