mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -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;
|
hasProvider(): boolean;
|
||||||
|
|
||||||
|
isProviderRegistered(providerId: string): boolean;
|
||||||
|
|
||||||
saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable<azdata.SaveResultRequestResult>;
|
saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable<azdata.SaveResultRequestResult>;
|
||||||
|
|
||||||
disabledSaveAs(): 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 {
|
public registerProvider(providerId: string, provider: azdata.SerializationProvider): void {
|
||||||
this.providers.push({ providerId: providerId, provider: provider });
|
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);
|
let connProviders = this.cellModel.notebookModel.getApplicableConnectionProviderIds(this.cellModel.notebookModel.selectedKernelDisplayName);
|
||||||
if (connProviders?.length > 0) {
|
if (connProviders?.length > 0) {
|
||||||
provider = connProviders[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 formatSpecificParams = serializer.getBasicSaveParameters(format);
|
||||||
let formatAgnosticParams = <Partial<SerializeDataParams>>{
|
let formatAgnosticParams = <Partial<SerializeDataParams>>{
|
||||||
serializationProviderId: provider,
|
serializationProviderId: provider,
|
||||||
|
|||||||
Reference in New Issue
Block a user