提交 bfcd53e4 编写于 作者: S Serge Rider

#1750 MySQL: database size property

上级 63962ff4
......@@ -59,6 +59,8 @@ meta.org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog.name.name=Schema Name
meta.org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog.defaultCharset.name=Default Charset
meta.org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog.defaultCollation.name=Default Collation
meta.org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog.sqlPath.name=SQL Path
meta.org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog.databaseSize.name=Database size
meta.org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog.databaseSize.description=Database size (data length + index length in bytes)
meta.org.jkiss.dbeaver.ext.mysql.model.MySQLCharset.name.name=Charset
meta.org.jkiss.dbeaver.ext.mysql.model.MySQLCharset.defaultCollation.name=Default Collation
meta.org.jkiss.dbeaver.ext.mysql.model.MySQLCharset.maxLength.name=Max length
......
......@@ -67,6 +67,7 @@ public class MySQLCatalog implements DBSCatalog, DBPSaveableObject, DBPRefreshab
private MySQLCharset defaultCharset;
private MySQLCollation defaultCollation;
private String sqlPath;
private Long databaseSize;
private boolean persisted;
public MySQLCatalog(MySQLDataSource dataSource, ResultSet dbResult)
......@@ -165,6 +166,31 @@ public class MySQLCatalog implements DBSCatalog, DBPSaveableObject, DBPRefreshab
this.sqlPath = sqlPath;
}
@Property(viewable = true, expensive = true, order = 20)
public Long getDatabaseSize(DBRProgressMonitor monitor) throws DBException {
if (databaseSize == null) {
try (JDBCSession session = DBUtils.openUtilSession(monitor, getDataSource(), "Read database size")) {
try (JDBCPreparedStatement dbStat = session.prepareStatement(
"SELECT SUM((DATA_LENGTH+INDEX_LENGTH))\n" +
"FROM INFORMATION_SCHEMA.TABLES \n" +
"WHERE TABLE_SCHEMA=?"))
{
dbStat.setString(1, getName());
try (JDBCResultSet dbResult = dbStat.executeQuery()) {
if (dbResult.next()) {
databaseSize = dbResult.getLong(1);
} else {
databaseSize = 0l;
}
}
}
} catch (SQLException e) {
throw new DBException(e, getDataSource());
}
}
return databaseSize;
}
public TableCache getTableCache()
{
return tableCache;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册