extend the ListDatabasesRequest to allow more information to be returned (#10186)

* database detail

* revert sts change

* reuse databaseInfo interface
This commit is contained in:
Alan Ren
2020-04-28 13:32:19 -07:00
committed by GitHub
parent 7b6d24c3c6
commit 4ec281313f
7 changed files with 14 additions and 9 deletions

View File

@@ -210,7 +210,7 @@ export class MainThreadDataProtocol extends Disposable implements MainThreadData
getMetadata(connectionUri: string): Thenable<azdata.ProviderMetadata> {
return self._proxy.$getMetadata(handle, connectionUri);
},
getDatabases(connectionUri: string): Thenable<string[]> {
getDatabases(connectionUri: string): Thenable<string[] | azdata.DatabaseInfo[]> {
return self._proxy.$getDatabases(handle, connectionUri);
},
getTableInfo(connectionUri: string, metadata: azdata.ObjectMetadata): Thenable<azdata.ColumnMetadata[]> {

View File

@@ -411,7 +411,7 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape {
return this._resolveProvider<azdata.MetadataProvider>(handle).getMetadata(connectionUri);
}
public $getDatabases(handle: number, connectionUri: string): Thenable<string[]> {
public $getDatabases(handle: number, connectionUri: string): Thenable<string[] | azdata.DatabaseInfo[]> {
return this._resolveProvider<azdata.MetadataProvider>(handle).getDatabases(connectionUri);
}

View File

@@ -113,7 +113,7 @@ export abstract class ExtHostDataProtocolShape {
*/
$getMetadata(handle: number, connectionUri: string): Thenable<azdata.ProviderMetadata> { throw ni(); }
$getDatabases(handle: number, connectionUri: string): Thenable<string[]> { throw ni(); }
$getDatabases(handle: number, connectionUri: string): Thenable<string[] | azdata.DatabaseInfo[]> { throw ni(); }
$getTableInfo(handle: number, connectionUri: string, metadata: azdata.ObjectMetadata): Thenable<azdata.ColumnMetadata[]> { throw ni(); }

View File

@@ -27,6 +27,7 @@ import { ScrollbarVisibility } from 'vs/base/common/scrollable';
import { subscriptionToDisposable } from 'sql/base/browser/lifecycle';
import { ObjectMetadataWrapper } from 'sql/workbench/contrib/dashboard/browser/widgets/explorer/objectMetadataWrapper';
import { status, alert } from 'vs/base/browser/ui/aria/aria';
import { isStringArray } from 'vs/base/common/types';
@Component({
selector: 'explorer-widget',
@@ -131,10 +132,13 @@ export class ExplorerWidget extends DashboardWidget implements IDashboardWidget,
)));
} else {
const currentProfile = this._bootstrap.connectionManagementService.connectionInfo.connectionProfile;
this._register(subscriptionToDisposable(this._bootstrap.metadataService.databaseNames.subscribe(
this._register(subscriptionToDisposable(this._bootstrap.metadataService.databases.subscribe(
data => {
// Handle the case where there is no metadata service
data = data || [];
if (!isStringArray(data)) {
data = data.map(item => item.options['name'] as string);
}
const profileData = data.map(d => {
const profile = new ConnectionProfile(this.capabilitiesService, currentProfile);
profile.databaseName = d;

View File

@@ -36,8 +36,8 @@ export class SingleConnectionMetadataService {
return Observable.fromPromise(this._metadataService.getMetadata(this._uri));
}
get databaseNames(): Observable<string[]> {
return Observable.fromPromise(this._metadataService.getDatabaseNames(this._uri));
get databases(): Observable<string[] | DatabaseInfo[]> {
return Observable.fromPromise(this._metadataService.getDatabases(this._uri));
}
}