mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 04:56:00 +00:00
perspectives: show row count
This commit is contained in:
@@ -37,6 +37,7 @@ export class PerspectiveCacheTable {
|
||||
loadedAll: boolean;
|
||||
loadedRows: any[] = [];
|
||||
bindingGroups: { [bindingKey: string]: PerspectiveBindingGroup } = {};
|
||||
allRowCount: number = null;
|
||||
|
||||
get loadedCount() {
|
||||
return this.loadedRows.length;
|
||||
|
||||
@@ -142,4 +142,32 @@ export class PerspectiveDataLoader {
|
||||
if (response.errorMessage) return response;
|
||||
return response.rows;
|
||||
}
|
||||
|
||||
async loadRowCount(props: PerspectiveDataLoadProps) {
|
||||
const { schemaName, pureName, bindingColumns, bindingValues, dataColumns, orderBy, condition } = props;
|
||||
|
||||
const select: Select = {
|
||||
commandType: 'select',
|
||||
from: {
|
||||
name: { schemaName, pureName },
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
exprType: 'raw',
|
||||
sql: 'COUNT(*)',
|
||||
alias: 'count',
|
||||
},
|
||||
],
|
||||
where: this.buildCondition(props),
|
||||
};
|
||||
|
||||
const response = await this.apiCall('database-connections/sql-select', {
|
||||
conid: props.databaseConfig.conid,
|
||||
database: props.databaseConfig.database,
|
||||
select,
|
||||
});
|
||||
|
||||
if (response.errorMessage) return response;
|
||||
return response.rows[0];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,4 +203,23 @@ export class PerspectiveDataProvider {
|
||||
|
||||
return tableCache.getRowsResult(props);
|
||||
}
|
||||
|
||||
async loadRowCount(props: PerspectiveDataLoadProps): Promise<number> {
|
||||
const tableCache = this.cache.getTableCache(props);
|
||||
|
||||
if (tableCache.allRowCount != null) {
|
||||
return tableCache.allRowCount;
|
||||
}
|
||||
|
||||
const result = await this.loader.loadRowCount({
|
||||
...props,
|
||||
});
|
||||
|
||||
if (result.errorMessage) {
|
||||
throw new Error(result.errorMessage);
|
||||
}
|
||||
|
||||
tableCache.allRowCount = parseInt(result.count);
|
||||
return tableCache.allRowCount;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user