Compare commits

...

4 Commits

Author SHA1 Message Date
heng zhao
b6966a4046 fix(TUP-21754)When use the db query in job, it will get a different
result from its result in sql builder
2019-05-22 10:48:16 +08:00
Tao Tao
f06bd3faa9 fix(TUP-21754):When use the db query in job, it will get a different
result from its result in sql builder.

https://jira.talendforge.org/browse/TUP-21754
2019-05-15 15:24:27 +08:00
Tao Tao
a3120381db fix(TUP-21754):When use the db query in job, it will get a different
result from its result in sql builder.

https://jira.talendforge.org/browse/TUP-21754
2019-05-15 15:12:05 +08:00
Tao Tao
339f2434aa fix(TUP-21754):When use the db query in job, it will get a different
result from its result in sql builder.

https://jira.talendforge.org/browse/TUP-21754
2019-05-15 15:09:37 +08:00
5 changed files with 42 additions and 69 deletions

View File

@@ -229,6 +229,8 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
private ConnectionPart selectedConnectionPart = null;
private boolean sqlChange = false;
/**
* TalendEditorDropTargetListener constructor comment.
*
@@ -246,7 +248,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
if (obj instanceof RepositoryNode) {
RepositoryNode sourceNode = (RepositoryNode) obj;
if (PluginChecker.isCDCPluginLoaded()) {
ICDCProviderService service = (ICDCProviderService) GlobalServiceRegister.getDefault().getService(
ICDCProviderService service = GlobalServiceRegister.getDefault().getService(
ICDCProviderService.class);
if (service != null && (service.isSubscriberTableNode(sourceNode) || service.isSystemSubscriberTable(sourceNode))) {
@@ -259,7 +261,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
}
IOozieService oozieService = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(IOozieService.class)) {
oozieService = (IOozieService) GlobalServiceRegister.getDefault().getService(IOozieService.class);
oozieService = GlobalServiceRegister.getDefault().getService(IOozieService.class);
}
if (oozieService != null && oozieService.isOozieNode(sourceNode)) {
return false;
@@ -267,7 +269,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
ISAPProviderService sapService = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(ISAPProviderService.class)) {
sapService = (ISAPProviderService) GlobalServiceRegister.getDefault().getService(ISAPProviderService.class);
sapService = GlobalServiceRegister.getDefault().getService(ISAPProviderService.class);
}
if (sapService != null && sapService.isSAPNode(sourceNode)) {
return false;
@@ -734,7 +736,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
String propertyId = property.getId();
String propertyLabel = property.getLabel();
List<Map> values = (List<Map>) sqlPatternValue.getValue();
Map<String, String> patternMap = new HashMap<String, String>();
Map<String, String> patternMap = new HashMap<>();
boolean contains = false;
for (Map map : values) {
String compoundId = (String) map.get(SQLPatternUtils.SQLPATTERNLIST);
@@ -774,7 +776,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
if (item instanceof ContextItem) {
ContextItem contextItem = (ContextItem) item;
EList context = contextItem.getContext();
Set<String> contextSet = new HashSet<String>();
Set<String> contextSet = new HashSet<>();
Iterator iterator = context.iterator();
while (iterator.hasNext()) {
Object obj = iterator.next();
@@ -805,7 +807,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
if (addedVars != null && !addedVars.isEmpty()
&& !ConnectionContextHelper.isAddContextVar(contextItem, contextManager, contextSet)) {
// show
Map<String, Set<String>> addedVarsMap = new HashMap<String, Set<String>>();
Map<String, Set<String>> addedVarsMap = new HashMap<>();
addedVarsMap.put(item.getProperty().getLabel(), contextSet);
if (ConnectionContextHelper.showContextdialog(process, contextItem, process.getContextManager(),
addedVarsMap, contextSet)) {
@@ -830,7 +832,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
}
private List<Object> getSelectSource() {
List<Object> sourceList = new ArrayList<Object>();
List<Object> sourceList = new ArrayList<>();
Iterator iterator = getSelection().iterator();
while (iterator.hasNext()) {
Object obj = iterator.next();
@@ -1037,8 +1039,8 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
boolean quickCreateInput = event1.detail == DND.DROP_LINK;
boolean quickCreateOutput = event1.detail == DND.DROP_COPY;
Iterator iterator = getSelection().iterator();
List<TempStore> list = new ArrayList<TempStore>();
List<IComponent> components = new ArrayList<IComponent>();
List<TempStore> list = new ArrayList<>();
List<IComponent> components = new ArrayList<>();
while (iterator.hasNext()) {
Object obj = iterator.next();
if (obj instanceof RepositoryNode) {
@@ -1050,7 +1052,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
Item item = sourceNode.getObject().getProperty().getItem();
if (GlobalServiceRegister.getDefault().isServiceRegistered(ITestContainerProviderService.class)) {
ITestContainerProviderService testContainerService = (ITestContainerProviderService) GlobalServiceRegister
ITestContainerProviderService testContainerService = GlobalServiceRegister
.getDefault().getService(ITestContainerProviderService.class);
if (testContainerService != null && testContainerService.isTestContainerItem(item)) {
continue;
@@ -1213,7 +1215,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
}
private List<NodePart> getAllNodePart(AbstractEditPart part) {
List<NodePart> partList = new ArrayList<NodePart>();
List<NodePart> partList = new ArrayList<>();
if (part.getChildren() != null && part.getChildren().size() > 0) {
for (int i = 0; i < part.getChildren().size(); i++) {
if (part.getChildren().get(i) instanceof AbstractEditPart) {
@@ -1332,10 +1334,10 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
.isHL7PluginLoaded())) {
if (originalConnection instanceof HL7ConnectionImpl) {
if (((HL7ConnectionImpl) originalConnection).getRoot() != null) {
List<Map<String, String>> mapList = new ArrayList<Map<String, String>>();
List<Map<String, String>> mapList = new ArrayList<>();
for (Object obj : ((HL7ConnectionImpl) originalConnection).getRoot()) {
if (obj instanceof HL7FileNode) {
Map<String, String> newMap = new HashMap<String, String>();
Map<String, String> newMap = new HashMap<>();
newMap.put(IHL7Constant.ATTRIBUTE, ((HL7FileNode) obj).getAttribute());
newMap.put(IHL7Constant.PATH, ((HL7FileNode) obj).getFilePath());
newMap.put(IHL7Constant.COLUMN, ((HL7FileNode) obj).getRelatedColumn());
@@ -1376,12 +1378,12 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
.isBRMSPluginLoaded())) {
if (originalConnection instanceof BRMSConnectionImpl) {
if (((BRMSConnectionImpl) originalConnection).getRoot() != null) {
List<Map<String, String>> rootList = new ArrayList<Map<String, String>>();
List<Map<String, String>> loopList = new ArrayList<Map<String, String>>();
List<Map<String, String>> groupList = new ArrayList<Map<String, String>>();
List<Map<String, String>> rootList = new ArrayList<>();
List<Map<String, String>> loopList = new ArrayList<>();
List<Map<String, String>> groupList = new ArrayList<>();
for (Object obj : ((BRMSConnectionImpl) originalConnection).getRoot()) {
if (obj instanceof XMLFileNode) {
Map<String, String> rootMap = new HashMap<String, String>();
Map<String, String> rootMap = new HashMap<>();
rootMap.put("ATTRIBUTE", ((XMLFileNode) obj).getAttribute()); //$NON-NLS-1$
rootMap.put("PATH", ((XMLFileNode) obj).getXMLPath()); //$NON-NLS-1$
rootMap.put("COLUMN", ((XMLFileNode) obj).getRelatedColumn()); //$NON-NLS-1$
@@ -1393,7 +1395,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
}
for (Object obj : ((BRMSConnectionImpl) originalConnection).getLoop()) {
if (obj instanceof XMLFileNode) {
Map<String, String> loopMap = new HashMap<String, String>();
Map<String, String> loopMap = new HashMap<>();
loopMap.put("ATTRIBUTE", ((XMLFileNode) obj).getAttribute()); //$NON-NLS-1$
loopMap.put("PATH", ((XMLFileNode) obj).getXMLPath()); //$NON-NLS-1$
loopMap.put("COLUMN", ((XMLFileNode) obj).getRelatedColumn()); //$NON-NLS-1$
@@ -1404,7 +1406,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
}
for (Object obj : ((BRMSConnectionImpl) originalConnection).getGroup()) {
if (obj instanceof XMLFileNode) {
Map<String, String> groupMap = new HashMap<String, String>();
Map<String, String> groupMap = new HashMap<>();
groupMap.put("ATTRIBUTE", ((XMLFileNode) obj).getAttribute()); //$NON-NLS-1$
groupMap.put("PATH", ((XMLFileNode) obj).getXMLPath()); //$NON-NLS-1$
groupMap.put("COLUMN", ((XMLFileNode) obj).getRelatedColumn()); //$NON-NLS-1$
@@ -1436,7 +1438,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
}
IProxyRepositoryFactory factory = DesignerPlugin.getDefault().getProxyRepositoryFactory();
Map<String, IMetadataTable> repositoryTableMap = new HashMap<String, IMetadataTable>();
Map<String, IMetadataTable> repositoryTableMap = new HashMap<>();
if (!originalConnection.isReadOnly()) {
for (Object tableObj : ConnectionHelper.getTables(originalConnection)) {
@@ -1503,6 +1505,11 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
QueryRepositoryObject object = (QueryRepositoryObject) selectedNode.getObject();
Query query = object.getQuery();
if (!sqlChange) {
String sql = query.getValue();
query.setValue(TalendTextUtils.addStrInQuery(sql));
sqlChange = true;
}
String value = originalConnectionItem.getProperty().getId() + " - " + query.getLabel(); //$NON-NLS-1$
if (queryParam != null) {
RepositoryChangeQueryCommand command3 = new RepositoryChangeQueryCommand(node, query, queryParam.getName()
@@ -1869,7 +1876,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
}
}
List<String> componentNameList = new ArrayList<String>();
List<String> componentNameList = new ArrayList<>();
for (IComponent component : neededComponents) {
componentNameList.add(component.getName());
}
@@ -1965,7 +1972,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
// special handle hbase to support tpigLoad
String hbaseName = EDatabaseTypeName.HBASE.getDisplayName().toUpperCase();
if (rcSetting != null && (hbaseName).equals(rcSetting.toString())) {
IComponentsService service = (IComponentsService) GlobalServiceRegister.getDefault().getService(
IComponentsService service = GlobalServiceRegister.getDefault().getService(
IComponentsService.class);
String componentProductname = null;
Collection<IComponent> components = service.getComponentsFactory().readComponents();
@@ -2119,7 +2126,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
EConnectionType connectionType = EConnectionType.FLOW_MAIN;
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICamelDesignerCoreService.class)) {
ICamelDesignerCoreService camelService = (ICamelDesignerCoreService) GlobalServiceRegister.getDefault()
ICamelDesignerCoreService camelService = GlobalServiceRegister.getDefault()
.getService(ICamelDesignerCoreService.class);
if (camelService.isRouteBuilderNode(node)) {
connectionType = camelService.getTargetConnectionType(node);
@@ -2137,7 +2144,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
// FIXME perhaps, this is not good fix, need check it later
// bug 21411
if (PluginChecker.isJobLetPluginLoaded()) {
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
IJobletProviderService.class);
if (service != null && service.isJobletComponent(targetConnection.getTarget())) {
if (targetConnection.getTarget() instanceof Node) {
@@ -2271,7 +2278,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
private boolean isLock(JobletContainerPart part) {
INode jobletNode = ((JobletContainer) part.getModel()).getNode();
if (PluginChecker.isJobLetPluginLoaded()) {
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
IJobletProviderService.class);
if (service != null) {
return service.isLock(jobletNode);
@@ -2286,7 +2293,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
Node jobletNode = ((JobletContainer) part.getModel()).getNode();
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (PluginChecker.isJobLetPluginLoaded()) {
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
IJobletProviderService.class);
if (service != null) {
openEditor = (AbstractMultiPageTalendEditor) service.openJobletEditor(jobletNode, page);

View File

@@ -2360,7 +2360,7 @@ public abstract class AbstractElementPropertySectionController implements Proper
*/
protected String openSQLBuilder(String repositoryType, String propertyName, String query) {
if (repositoryType.equals(EmfComponent.BUILTIN)) {
connParameters.setQuery(query);
connParameters.setQuery(query, true);
if (connParameters.isShowConfigParamDialog()) {
if (!isUseExistingConnection()) {
initConnectionParametersWithContext(elem, part.getProcess().getContextManager().getDefaultContext());

View File

@@ -171,10 +171,9 @@ public class SqlMemoController extends AbstractElementPropertySectionController
// return new PropertyChangeCommand(elem, propertyName, contextSql);
// }
// return null;
} else {
// if the input query isn't contextmode or it's a standard query in perl
query = this.removeStrInQuery(query);
}
query = TalendTextUtils.removeStrInQuery(query);
initConnectionParametersWithContext(elem, part == null ? new EmptyContextManager().getDefaultContext() : part
.getProcess().getContextManager().getDefaultContext());
String sql = openSQLBuilder(repositoryType, propertyName, query);
@@ -185,28 +184,6 @@ public class SqlMemoController extends AbstractElementPropertySectionController
return null;
}
/**
* DOC ftang Comment method "removeStrInQuery".
*
* @param input
* @return
*/
private String removeStrInQuery(String input) {
// String out = removeSlash(input);
return TalendTextUtils.removeQuotes(input);
}
/**
* DOC ftang Comment method "removeSlash".
*
* @param input
* @return
*/
private String removeSlash(String input) {
String out = input.replaceAll("\\\\", ""); //$NON-NLS-1$ //$NON-NLS-2$
return out;
}
/*
* (non-Javadoc)
*
@@ -462,7 +439,7 @@ public class SqlMemoController extends AbstractElementPropertySectionController
connParameters.setRepositoryId(item.getProperty().getId());
}
connParameters.setQueryObject(query);
connParameters.setQuery(query.getValue());
connParameters.setQuery(query.getValue(), true);
TextUtil.setDialogTitle(TextUtil.SQL_BUILDER_TITLE_REP);
@@ -485,7 +462,7 @@ public class SqlMemoController extends AbstractElementPropertySectionController
if (Window.OK == sqlBuilder.open()) {
sql = connParameters.getQuery();
sql = TalendTextUtils.addQuotes(sql);
}
if (sql != null && !queryText.isDisposed()) {
queryText.setText(sql);

View File

@@ -22,7 +22,6 @@ import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.widgets.Display;
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
import org.talend.core.model.metadata.builder.database.DriverShim;
import org.talend.core.sqlbuilder.util.TextUtil;
import org.talend.metadata.managment.ui.utils.ConnectionContextHelper;
import org.talend.metadata.managment.utils.MetadataConnectionUtils;
import org.talend.repository.model.RepositoryNode;
@@ -167,7 +166,7 @@ public class ExecSQLAction extends AbstractEditorAction {
return;
}
QueryTokenizer qt = new QueryTokenizer(getSQLToBeExecuted(), queryDelimiter, alternateDelimiter, commentDelimiter);
QueryTokenizer qt = new QueryTokenizer(editor.getSQLToBeExecuted(), queryDelimiter, alternateDelimiter, commentDelimiter);
List<String> queryStrings = new ArrayList<String>();
while (qt.hasQuery()) {
@@ -208,16 +207,4 @@ public class ExecSQLAction extends AbstractEditorAction {
}
}
}
/**
* Gets sql for executing.
*
* @return string
*/
public String getSQLToBeExecuted() {
String sql = editor.getSQLToBeExecuted();
sql = TextUtil.calEscapeValue(sql);
return sql;
}
}

View File

@@ -65,6 +65,7 @@ import org.talend.core.model.properties.Item;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.RepositoryElementDelta;
import org.talend.core.model.update.RepositoryUpdateManager;
import org.talend.core.model.utils.TalendTextUtils;
import org.talend.core.sqlbuilder.util.ConnectionParameters;
import org.talend.core.sqlbuilder.util.TextUtil;
import org.talend.cwm.helper.ConnectionHelper;
@@ -605,8 +606,9 @@ public class SQLBuilderDialog extends Dialog implements ISQLBuilderDialog, IRepo
// }
// sql = QueryUtil.checkAndAddQuotes(sql);
sql = TalendTextUtils.addStrInQuery(sql);
connParameters.setQuery(sql);
connParameters.setQuery(sql, true);
if (connParameters.isFromRepository() && !connParameters.isNodeReadOnly()) {
List<Query> qs = new ArrayList<Query>();