提交 a83bf665 编写于 作者: S Serge Rider 提交者: GitHub

Merge pull request #12242 from dbeaver/ref-panel-2#11201

#11201 use result of toString() method to differentiate different underlying queries in parent data container in references result container

Former-commit-id: 204aeb12
......@@ -63,6 +63,15 @@ class ReferencesResultsContainer implements IResultSetContainer {
private ResultSetViewer dataViewer;
private DBSDataContainer parentDataContainer;
/**
* Full name of the latest parentDataContainer. It is used for detection if the underlying data container has changed.
* See <a href="https://github.com/dbeaver/dbeaver/issues/11201">this ticket.</a>
*
*/
@Nullable
private String parentContainerFullName;
private DBSDataContainer dataContainer;
private final List<ReferenceKey> referenceKeys = new ArrayList<>();
......@@ -164,16 +173,24 @@ class ReferencesResultsContainer implements IResultSetContainer {
return mainComposite;
}
public void refreshReferences() {
void refreshReferences() {
dataViewer.resetHistory();
DBSDataContainer newParentContainer = this.parentController.getDataContainer();
if (newParentContainer != parentDataContainer) {
DBSDataContainer newParentContainer = parentController.getDataContainer();
if (newParentContainer != parentDataContainer || !Objects.equals(getDataContainerFullName(newParentContainer), parentContainerFullName)) {
refreshReferenceKeyList();
} else if (dataContainer != null) {
refreshKeyValues(false);
}
}
@Nullable
private static String getDataContainerFullName(@Nullable DBSDataContainer dataContainer) {
if (dataContainer == null) {
return null;
}
return DBUtils.getObjectFullName(dataContainer, DBPEvaluationContext.DDL);
}
/**
* Load list of referencing keys
*/
......@@ -192,9 +209,11 @@ class ReferencesResultsContainer implements IResultSetContainer {
}
parentDataContainer = parentController.getDataContainer();
parentContainerFullName = getDataContainerFullName(parentDataContainer);
if (parentDataContainer == null) {
return;
}
Set<DBSEntity> allEntities = new LinkedHashSet<>();
for (DBDAttributeBinding attr : visibleAttributes) {
DBSEntityAttribute entityAttribute = attr.getEntityAttribute();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册