[ https://issues.apache.org/jira/browse/SQOOP-2047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14290713#comment-14290713 ]
Veena Basavaraj commented on SQOOP-2047: ---------------------------------------- [~gwenshap] your thoughts on this? the connector upgrade API wil change and accept a list of these key-value pairs per version that changed. I would appreciate if you review this proposal, I can put up a doc if we think it makes sense Pros 1. We do not end up deleting inputs and input values, in real world this helps been optimal 2. We do not tamper with what was created in version 1, like every other app that edits a database row, we will edit it as well, instead of deleting and creating a new row I dont see any con to this at this point, may be there is:) > Optimal Connector Upgrade API > ----------------------------- > > Key: SQOOP-2047 > URL: https://issues.apache.org/jira/browse/SQOOP-2047 > Project: Sqoop > Issue Type: Sub-task > Reporter: Veena Basavaraj > Assignee: Veena Basavaraj > Fix For: 2.0.0 > > > As described in the parent ticket, the connector upgrade code can become a > bit more smarter. > It does not have to dump every single input/ config and its values on every > connector upgrade path, irrespective of anything changed or not. > We can just ask the connector to provide a list of keys that changed. > for new ones, for old ones and the deleted ones > New one, assuming foo does not exist, a new record will be created > {code} > "foo" : { "name" : "foo" , type : "String" , value : "default"} > {code} > Modified one, assuming foo exists, we will look up and modify, per connector > per job ( since it will modify for all jobs anyways, there is no way to have > a different input name for job 1 and job2 ) > {code > "foo" :{ "name" : "bar" , type : "Integer" , value : "newValue"} > {code} > Delete a key > {code} > foo : "" ( empty) value > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)