mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-18 11:01:36 -05:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7553f799e1 | ||
|
|
d64c0549df | ||
|
|
e221c9f421 | ||
|
|
9fdb2161d4 | ||
|
|
b2ca229e60 | ||
|
|
60037222a0 | ||
|
|
106bb5ecdf | ||
|
|
1bcbb93301 | ||
|
|
4fd2d9e76b | ||
|
|
b66031bf16 | ||
|
|
e001cb1da3 | ||
|
|
d70c9f2fa7 |
67
CHANGELOG.md
67
CHANGELOG.md
@@ -1,5 +1,53 @@
|
||||
# Change Log
|
||||
|
||||
## Version 1.39.0
|
||||
* Release date: August 24, 2022
|
||||
* Release status: General Availability
|
||||
## What's new in 1.39.0
|
||||
* New Features:
|
||||
* Deployment Wizard - Azure Data Studio now supports SQL Server 2022 (Preview) in the Deployment Wizard for both local and container installation.
|
||||
* Object Explorer - Added Ledger icons and scripting support to Object Explorer for Ledger objects.
|
||||
* Dashboard - Added hexadecimal values to support color detection.
|
||||
* Query Plan Viewer - Added the ability to copy text from cells in the Properties Pane of a query plan.
|
||||
* Query Plan Viewer - Introduced a "find node" option in plan comparison to search for nodes in either the original or added plan.
|
||||
* Table Designer - Now supports the ability to add included columns to a nonclustered index, and the ability to create filtered indexes.
|
||||
* SQL Projects - Publish options were added to the Publish Dialog.
|
||||
* Query History Extension - Added double-click support for query history to either open the query or immediately execute it, based on user configuration.
|
||||
|
||||
* Bug Fixes:
|
||||
* Dashboard - Fixed an accessibility issue that prevented users from being able to access tooltip information using the keyboard.
|
||||
* Voiceover - Fixed a bug that caused voiceover errors across the Dashboard, SQL Projects, SQL Import Wizard, and SQL Migration extensions.
|
||||
* Schema Compare - Fixed a bug that caused the UI to jump back to the top of the options list after selecting/deselecting any option.
|
||||
* Schema Compare - Fixed a bug involving Schema Compare (.SCMP) file incompatibility with Database Project information causing errors when reading and using information stored in this file type.
|
||||
* Object Explorer - Fixed a bug that caused menu items in Object Explorer not to show up for non-English languages.
|
||||
* Table Designer - Fixed a bug that caused the History Table name not to be consistent with the current table name when working with System-Versioned Tables.
|
||||
* Table Designer - Fixed a bug in the Primary Key settings that caused the "Allow Nulls" option to be checked, but disabled, preventing users from changing this option.
|
||||
* Query Editor - Fixed a bug that prevented the SQLCMD in T-SQL from working correctly, giving false errors when running scripts in Azure Data Studio.
|
||||
* Query Editor - Fixed a bug that caused user-specified zoom settings to reset to default when selecting JSON values after query that returned JSON dataset was ran.
|
||||
* SQL Projects - Fixed a bug that caused the "Generate Script" command to not work correctly when targeting a new Azure SQL Database.
|
||||
* Notebooks - Fixed a bug that caused pasted images to disappear from editor after going out of edit mode.
|
||||
* Notebooks - Fixed a bug that caused a console error message to appear after opening a markdown file.
|
||||
* Notebooks - Fixed a bug that prevented markdown cell toolbar shortcuts from working after creating a new split view cell.
|
||||
* Notebooks - Fixed a bug that caused text cells to be erroneously created in split view mode when the notebook default text edit mode was set to "Markdown".
|
||||
|
||||
| Platform |
|
||||
| --------------------------------------- |
|
||||
| [Windows User Installer][win-user] |
|
||||
| [Windows System Installer][win-system] |
|
||||
| [Windows ZIP][win-zip] |
|
||||
| [macOS ZIP][osx-zip] |
|
||||
| [Linux TAR.GZ][linux-zip] |
|
||||
| [Linux RPM][linux-rpm] |
|
||||
| [Linux DEB][linux-deb] |
|
||||
|
||||
[win-user]: https://go.microsoft.com/fwlink/?linkid=2198663
|
||||
[win-system]: https://go.microsoft.com/fwlink/?linkid=2198878
|
||||
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2198664
|
||||
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2198762
|
||||
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2198879
|
||||
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2198880
|
||||
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2198763
|
||||
|
||||
## Version 1.38.0
|
||||
* Release date: July 27, 2022
|
||||
* Release status: General Availability
|
||||
@@ -28,25 +76,6 @@
|
||||
* Notebooks - Fixed issue where notebook was not opening if a cell contains an unsupported output type.
|
||||
* Schema Compare - Fixed issue where views and stored procedures were not correctly recognized by schema compare after applying changes.
|
||||
|
||||
|
||||
| Platform |
|
||||
| --------------------------------------- |
|
||||
| [Windows User Installer][win-user] |
|
||||
| [Windows System Installer][win-system] |
|
||||
| [Windows ZIP][win-zip] |
|
||||
| [macOS ZIP][osx-zip] |
|
||||
| [Linux TAR.GZ][linux-zip] |
|
||||
| [Linux RPM][linux-rpm] |
|
||||
| [Linux DEB][linux-deb] |
|
||||
|
||||
[win-user]: https://go.microsoft.com/fwlink/?linkid=2198663
|
||||
[win-system]: https://go.microsoft.com/fwlink/?linkid=2198878
|
||||
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2198664
|
||||
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2198762
|
||||
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2198879
|
||||
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2198880
|
||||
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2198763
|
||||
|
||||
## Version 1.37.0
|
||||
* Release date: June 15, 2022
|
||||
* Release status: General Availability
|
||||
|
||||
@@ -403,7 +403,7 @@ export class JobStepDialog extends AgentDialog<JobStepData> {
|
||||
.withProps({
|
||||
inputType: 'number',
|
||||
width: '100%',
|
||||
placeHolder: '0'
|
||||
value: '0'
|
||||
})
|
||||
.component();
|
||||
this.retryIntervalBox = view.modelBuilder.inputBox()
|
||||
@@ -411,7 +411,7 @@ export class JobStepDialog extends AgentDialog<JobStepData> {
|
||||
.withProps({
|
||||
inputType: 'number',
|
||||
width: '100%',
|
||||
placeHolder: '0'
|
||||
value: '0'
|
||||
}).component();
|
||||
|
||||
let retryAttemptsContainer = view.modelBuilder.formContainer()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"downloadUrl": "https://github.com/Microsoft/sqltoolsservice/releases/download/{#version#}/microsoft.sqltools.servicelayer-{#fileName#}",
|
||||
"version": "4.2.0.16",
|
||||
"version": "4.2.1.6",
|
||||
"downloadFileNames": {
|
||||
"Windows_86": "win-x86-net6.0.zip",
|
||||
"Windows_64": "win-x64-net6.0.zip",
|
||||
|
||||
@@ -151,8 +151,10 @@ export class BookTreeViewProvider implements vscode.TreeDataProvider<BookTreeIte
|
||||
if (pinStatusChanged) {
|
||||
// reset to original context value
|
||||
bookTreeItem.contextValue = bookTreeItem.book.type === BookTreeItemType.Markdown ? BookTreeItemType.Markdown : getNotebookType(bookTreeItem.book);
|
||||
// to search for notebook in allNotebooks dictionary we need to format uri
|
||||
const notebookUri = vscode.Uri.file(bookTreeItem.book.contentPath).fsPath;
|
||||
// if notebook is not in current book then it is a standalone notebook
|
||||
let itemOpenedInBookTreeView = this.currentBook?.getNotebook(bookTreeItem.book.contentPath) ?? this.books.find(book => book.bookPath === bookTreeItem.book.contentPath)?.getNotebook(bookTreeItem.book.contentPath);
|
||||
let itemOpenedInBookTreeView = this.currentBook?.getNotebook(notebookUri) ?? this.books.find(book => book.bookPath === bookTreeItem.book.contentPath)?.getNotebook(notebookUri);
|
||||
if (itemOpenedInBookTreeView) {
|
||||
itemOpenedInBookTreeView.contextValue = bookTreeItem.contextValue;
|
||||
this._onDidChangeTreeData.fire(itemOpenedInBookTreeView.parent);
|
||||
|
||||
@@ -25,6 +25,8 @@ export interface ILocalSettingsJson {
|
||||
ConnectionStrings?: { [key: string]: string };
|
||||
}
|
||||
|
||||
export const outputChannel = vscode.window.createOutputChannel(constants.serviceName);
|
||||
|
||||
/**
|
||||
* copied and modified from vscode-azurefunctions extension
|
||||
* https://github.com/microsoft/vscode-azurefunctions/blob/main/src/funcConfig/local.settings.ts
|
||||
@@ -194,11 +196,15 @@ export async function getSettingsFile(projectFolder: string): Promise<string | u
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the required nuget package to the project
|
||||
* @param selectedProjectFile is the users selected project file path
|
||||
* Adds the latest SQL nuget package to the project
|
||||
* @param projectFolder is the folder containing the project file
|
||||
*/
|
||||
export async function addSqlNugetReferenceToProjectFile(selectedProjectFile: string): Promise<void> {
|
||||
await utils.executeCommand(`dotnet add "${selectedProjectFile}" package ${constants.sqlExtensionPackageName} --prerelease`);
|
||||
export async function addSqlNugetReferenceToProjectFile(projectFolder: string): Promise<void> {
|
||||
// clear the output channel prior to adding the nuget reference
|
||||
outputChannel.clear();
|
||||
let addNugetCommmand = await utils.executeCommand(`dotnet add "${projectFolder}" package ${constants.sqlExtensionPackageName} --prerelease`);
|
||||
outputChannel.appendLine(constants.dotnetResult(addNugetCommmand));
|
||||
outputChannel.show(true);
|
||||
TelemetryReporter.sendActionEvent(TelemetryViews.CreateAzureFunctionWithSqlBinding, TelemetryActions.addSQLNugetPackage);
|
||||
}
|
||||
|
||||
@@ -471,8 +477,6 @@ export async function promptAndUpdateConnectionStringSetting(projectUri: vscode.
|
||||
connectionStringSettingName = selectedSetting?.label;
|
||||
}
|
||||
}
|
||||
// Add sql extension package reference to project. If the reference is already there, it doesn't get added again
|
||||
await addSqlNugetReferenceToProjectFile(projectUri.fsPath);
|
||||
} else {
|
||||
// if no AF project was found or there's more than one AF functions project in the workspace,
|
||||
// ask for the user to input the setting name
|
||||
|
||||
@@ -22,6 +22,7 @@ export const sqlBindingsHelpLink = 'https://github.com/Azure/azure-functions-sql
|
||||
export const passwordPlaceholder = '******';
|
||||
export const azureFunctionLocalSettingsFileName = 'local.settings.json';
|
||||
export const vscodeOpenCommand = 'vscode.open';
|
||||
export const serviceName = 'SQL Bindings';
|
||||
|
||||
// localized constants
|
||||
export const functionNameTitle = localize('functionNameTitle', 'Function Name');
|
||||
@@ -90,6 +91,7 @@ export function failedToParse(filename: string, error: any): string { return loc
|
||||
export function addSqlBinding(functionName: string): string { return localize('addSqlBinding', 'Adding SQL Binding to function "{0}"...'), functionName; }
|
||||
export function errorNewAzureFunction(error: any): string { return localize('errorNewAzureFunction', 'Error creating new Azure Function: {0}', utils.getErrorMessage(error)); }
|
||||
export function manuallyEnterObjectName(userObjectName: string): string { return `$(pencil) ${userObjectName}`; }
|
||||
export function dotnetResult(output: string): string { return localize('dotnetResult', 'Adding SQL nuget package:\n{0}', output); }
|
||||
|
||||
// Known Azure settings reference for Azure Functions
|
||||
// https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings
|
||||
|
||||
@@ -7,6 +7,7 @@ import * as vscode from 'vscode';
|
||||
import * as uuid from 'uuid';
|
||||
import * as constants from '../common/constants';
|
||||
import * as utils from '../common/utils';
|
||||
import * as path from 'path';
|
||||
import * as azureFunctionsUtils from '../common/azureFunctionsUtils';
|
||||
import { TelemetryActions, TelemetryReporter, TelemetryViews } from '../common/telemetry';
|
||||
import { addSqlBinding, getAzureFunctions } from '../services/azureFunctionsService';
|
||||
@@ -113,6 +114,13 @@ export async function launchAddSqlBindingQuickpick(uri: vscode.Uri | undefined):
|
||||
.withAdditionalProperties(propertyBag).send();
|
||||
return;
|
||||
}
|
||||
|
||||
// Add latest sql extension package reference to project
|
||||
// only add if AF project (.csproj) is found
|
||||
if (projectUri?.fsPath) {
|
||||
await azureFunctionsUtils.addSqlNugetReferenceToProjectFile(path.dirname(projectUri.fsPath));
|
||||
}
|
||||
|
||||
exitReason = 'done';
|
||||
TelemetryReporter.createActionEvent(TelemetryViews.SqlBindingsQuickPick, TelemetryActions.finishAddSqlBinding)
|
||||
.withAdditionalProperties(propertyBag).send();
|
||||
|
||||
@@ -255,6 +255,10 @@ export async function createAzureFunction(node?: ITreeNodeInfo): Promise<void> {
|
||||
suppressCreateProjectPrompt: true,
|
||||
...(isCreateNewProject && { executeStep: connectionStringExecuteStep })
|
||||
});
|
||||
|
||||
// Add latest sql extension package reference to project
|
||||
await azureFunctionsUtils.addSqlNugetReferenceToProjectFile(projectFolder);
|
||||
|
||||
TelemetryReporter.createActionEvent(TelemetryViews.CreateAzureFunctionWithSqlBinding, telemetryStep)
|
||||
.withAdditionalProperties(propertyBag)
|
||||
.withConnectionInfo(connectionInfo).send();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "azuredatastudio",
|
||||
"version": "1.39.0",
|
||||
"version": "1.39.1",
|
||||
"distro": "b6bf3fb97bc70074aeebbf9bd86ec03f637f5361",
|
||||
"author": {
|
||||
"name": "Microsoft Corporation"
|
||||
|
||||
Reference in New Issue
Block a user