提交 ce955b5f 编写于 作者: K Karl Grießer

table row count display

上级 4136b7c0
......@@ -70,6 +70,7 @@ meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.description.name
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.hasDistKey.name = Distribution key vorhanden
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.lastCommit.name = Letzte Transaktion
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.rawsize.name = Unkomprimierte Gr\u00F6\u00DFe
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.tableCount.name = Zeilenanzahl
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.compressedsize.name = Komprimierte Gr\u00F6\u00DFe
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.createTime.name = Angelegt am
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.deletePercentage.name = Prozent gel\u00F6schte S\u00E4tze
......
......@@ -49,3 +49,5 @@ editors_exasol_session_editor_title_kill_session_statement = Befehl terminieren
dialog_struct_edit_fk_label_fk_name=Fremschl\u00FCsselname
edit_exasol_constraint_manager_dialog_title=Prim\u00e4rschl\u00fcssel Anlegen
read_table_details=Tabellendetails lesen
......@@ -87,6 +87,7 @@ meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.description.name
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.hasDistKey.name = Has Distribution Key
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.lastCommit.name = Last Commit Timestamp
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.rawsize.name = Raw Size
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.tableCount.name = Number of rows
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.compressedsize.name = Compressed Size
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.createTime.name = Table Creation Time
meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.deletePercentage.name = Percentage of deleted Rows
......
......@@ -65,5 +65,7 @@ public class ExasolMessages extends NLS {
public static String dialog_struct_edit_fk_label_fk_name;
public static String edit_exasol_constraint_manager_dialog_title;
public static String read_table_details;
}
......@@ -37,5 +37,6 @@ editors_exasol_session_editor_confirm_action = {0} "{1}". Are you sure?
editors_exasol_session_editor_title_kill_session_statement = Terminate Statement
edit_exasol_constraint_manager_dialog_title=Create Primary Key
read_table_details=Read Table Details
......@@ -21,7 +21,9 @@ import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.ext.exasol.ExasolConstants;
import org.jkiss.dbeaver.ext.exasol.ExasolMessages;
import org.jkiss.dbeaver.ext.exasol.tools.ExasolUtils;
import org.jkiss.dbeaver.model.DBPEvaluationContext;
import org.jkiss.dbeaver.model.DBPNamedObject2;
import org.jkiss.dbeaver.model.DBPRefreshableObject;
import org.jkiss.dbeaver.model.DBPScriptObject;
......@@ -57,6 +59,7 @@ public class ExasolTable extends ExasolTableBase implements DBPRefreshableObject
private float deletePercentage;
private Timestamp createTime;
private Boolean hasRead;
private long tablecount;
private static String readAdditionalInfo = "select * from ("
+ "select" +
" table_schema," +
......@@ -102,6 +105,9 @@ public class ExasolTable extends ExasolTableBase implements DBPRefreshableObject
+ " order by table_schema,o.table_name";
private static String count = "select count(*) as COUNTER from %s";
public ExasolTable(DBRProgressMonitor monitor, ExasolSchema schema, ResultSet dbResult) {
super(monitor, schema, dbResult);
......@@ -116,7 +122,7 @@ public class ExasolTable extends ExasolTableBase implements DBPRefreshableObject
private void read(DBRProgressMonitor monitor) throws DBCException
{
JDBCSession session = DBUtils.openMetaSession(monitor, getDataSource(), "Read Table Details");
JDBCSession session = DBUtils.openMetaSession(monitor, getDataSource(), ExasolMessages.read_table_details );
try (JDBCStatement stmt = session.createStatement())
{
String sql = String.format(readAdditionalInfo,
......@@ -137,12 +143,28 @@ public class ExasolTable extends ExasolTableBase implements DBPRefreshableObject
this.sizeCompressed = JDBCUtils.safeGetLong(dbResult, "MEM_OBJECT_SIZE");
this.deletePercentage = JDBCUtils.safeGetFloat(dbResult, "DELETE_PERCENTAGE");
this.createTime = JDBCUtils.safeGetTimestamp(dbResult, "CREATED");
this.hasRead = true;
}
} catch (SQLException e) {
throw new DBCException(e,getDataSource());
}
try (JDBCStatement stmt = session.createStatement())
{
String sql = String.format(count, this.getFullyQualifiedName(DBPEvaluationContext.DML));
try (JDBCResultSet dbResult = stmt.executeQuery(sql))
{
dbResult.next();
this.tablecount = JDBCUtils.safeGetLong(dbResult, "COUNTER");
}
} catch (SQLException e) {
throw new DBCException(e,getDataSource());
}
this.hasRead = true;
}
@Override
......@@ -198,6 +220,15 @@ public class ExasolTable extends ExasolTableBase implements DBPRefreshableObject
return this.deletePercentage;
}
@Property(viewable = false, expensive = true, editable = false, order = 300, category = ExasolConstants.CAT_STATS)
public long getTableCount(DBRProgressMonitor monitor) throws DBCException {
if (! hasRead)
read(monitor);
return this.tablecount;
}
// -----------------
// Associations
// -----------------
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册