提交 8f000c53 编写于 作者: S Serge Rider

Generic tables refresh


Former-commit-id: 53e925c6
上级 b0e13159
......@@ -217,15 +217,7 @@ public class GenericTable extends JDBCTable<GenericDataSource, GenericStructCont
@Override
public synchronized DBSObject refreshObject(@NotNull DBRProgressMonitor monitor) throws DBException
{
this.getContainer().getTableCache().clearChildrenCache(this);
this.getContainer().getIndexCache().clearObjectCache(this);
this.getContainer().getPrimaryKeysCache().clearObjectCache(this);
this.getContainer().getForeignKeysCache().clearObjectCache(this);
triggers = null;
rowCount = null;
ddl = null;
return this;
return this.getContainer().getTableCache().refreshObject(monitor, getContainer(), this);
}
// Comment row count calculation - it works too long and takes a lot of resources without serious reason
......
......@@ -28,6 +28,7 @@ import org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCStatement;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCConstants;
import org.jkiss.dbeaver.model.impl.jdbc.cache.JDBCObjectLookup;
import org.jkiss.dbeaver.model.impl.jdbc.cache.JDBCStructCache;
import org.jkiss.dbeaver.model.struct.DBSDataType;
import org.jkiss.utils.CommonUtils;
......@@ -42,7 +43,7 @@ import java.util.Set;
/**
* Generic tables cache implementation
*/
public class TableCache extends JDBCStructCache<GenericStructContainer, GenericTable, GenericTableColumn> {
public class TableCache extends JDBCStructCache<GenericStructContainer, GenericTable, GenericTableColumn> implements JDBCObjectLookup<GenericStructContainer> {
private static final Log log = Log.getLog(TableCache.class);
......@@ -84,11 +85,7 @@ public class TableCache extends JDBCStructCache<GenericStructContainer, GenericT
protected JDBCStatement prepareObjectsStatement(@NotNull JDBCSession session, @NotNull GenericStructContainer owner)
throws SQLException
{
return session.getMetaData().getTables(
owner.getCatalog() == null ? null : owner.getCatalog().getName(),
owner.getSchema() == null ? null : owner.getSchema().getName(),
owner.getDataSource().getAllObjectsPattern(),
null).getSourceStatement();
return prepareLookupStatement(session, owner, null);
}
@Nullable
......@@ -205,4 +202,12 @@ public class TableCache extends JDBCStructCache<GenericStructContainer, GenericT
);
}
@Override
public JDBCStatement prepareLookupStatement(@NotNull JDBCSession session, @NotNull GenericStructContainer owner, @Nullable String objectName) throws SQLException {
return session.getMetaData().getTables(
owner.getCatalog() == null ? null : owner.getCatalog().getName(),
owner.getSchema() == null ? null : owner.getSchema().getName(),
objectName == null ? owner.getDataSource().getAllObjectsPattern() : objectName,
null).getSourceStatement();
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册