mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-14 01:25:37 -05:00
fix notebook serialization issue for non-mssql providers (#22504)
* use mssql as notebook serialization provider * comment * use fallback
This commit is contained in:
@@ -49,6 +49,8 @@ export interface ISerializationService {
|
||||
|
||||
hasProvider(): boolean;
|
||||
|
||||
isProviderRegistered(providerId: string): boolean;
|
||||
|
||||
saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable<azdata.SaveResultRequestResult>;
|
||||
|
||||
disabledSaveAs(): Thenable<azdata.SaveResultRequestResult>;
|
||||
@@ -75,6 +77,10 @@ export class SerializationService implements ISerializationService {
|
||||
) {
|
||||
}
|
||||
|
||||
public isProviderRegistered(providerId: string): boolean {
|
||||
return this.providers.find(provider => provider.providerId.toUpperCase() === providerId.toUpperCase()) !== undefined;
|
||||
}
|
||||
|
||||
public registerProvider(providerId: string, provider: azdata.SerializationProvider): void {
|
||||
this.providers.push({ providerId: providerId, provider: provider });
|
||||
}
|
||||
|
||||
@@ -487,10 +487,13 @@ export class DataResourceDataProvider implements IGridDataProvider {
|
||||
let connProviders = this.cellModel.notebookModel.getApplicableConnectionProviderIds(this.cellModel.notebookModel.selectedKernelDisplayName);
|
||||
if (connProviders?.length > 0) {
|
||||
provider = connProviders[0];
|
||||
} else {
|
||||
provider = mssqlProviderName;
|
||||
}
|
||||
}
|
||||
if (!provider || !this._serializationService.isProviderRegistered(provider)) {
|
||||
// Serializing notebook query results to file is agnostic of database engine since the data is already available in the notebook.
|
||||
// If the provider doesn't have its own serializer we can let the mssql provider handle it.
|
||||
provider = mssqlProviderName;
|
||||
}
|
||||
let formatSpecificParams = serializer.getBasicSaveParameters(format);
|
||||
let formatAgnosticParams = <Partial<SerializeDataParams>>{
|
||||
serializationProviderId: provider,
|
||||
|
||||
Reference in New Issue
Block a user