diff --git a/extensions/mssql/config.json b/extensions/mssql/config.json index 6de0de1d5e..8d3c73de18 100644 --- a/extensions/mssql/config.json +++ b/extensions/mssql/config.json @@ -1,6 +1,6 @@ { "downloadUrl": "https://github.com/Microsoft/sqltoolsservice/releases/download/{#version#}/microsoft.sqltools.servicelayer-{#fileName#}", - "version": "4.8.0.35", + "version": "4.8.0.36", "downloadFileNames": { "Windows_86": "win-x86-net7.0.zip", "Windows_64": "win-x64-net7.0.zip", diff --git a/src/sql/azdata.proposed.d.ts b/src/sql/azdata.proposed.d.ts index 1d7c8cf148..61f658f5fc 100644 --- a/src/sql/azdata.proposed.d.ts +++ b/src/sql/azdata.proposed.d.ts @@ -1925,8 +1925,10 @@ declare module 'azdata' { NotBetween = 7, Contains = 8, NotContains = 9, - IsNull = 10, - IsNotNull = 11 + StartsWith = 10, + NotStartsWith = 11, + EndsWith = 12, + NotEndsWith = 13 } export namespace window { diff --git a/src/sql/workbench/api/common/sqlExtHostTypes.ts b/src/sql/workbench/api/common/sqlExtHostTypes.ts index e9ed46df23..5141abaea7 100644 --- a/src/sql/workbench/api/common/sqlExtHostTypes.ts +++ b/src/sql/workbench/api/common/sqlExtHostTypes.ts @@ -498,8 +498,10 @@ export enum NodeFilterOperator { NotBetween = 7, Contains = 8, NotContains = 9, - IsNull = 10, - IsNotNull = 11 + StartsWith = 10, + NotStartsWith = 11, + EndsWith = 12, + NotEndsWith = 13 } export class TreeItem extends vsExtTypes.TreeItem { diff --git a/src/sql/workbench/services/objectExplorer/browser/filterDialog/filterDialog.ts b/src/sql/workbench/services/objectExplorer/browser/filterDialog/filterDialog.ts index 6b3c8f304a..5d35a26bc3 100644 --- a/src/sql/workbench/services/objectExplorer/browser/filterDialog/filterDialog.ts +++ b/src/sql/workbench/services/objectExplorer/browser/filterDialog/filterDialog.ts @@ -51,9 +51,11 @@ const BETWEEN_SELECT_BOX = localize('objectExplorer.betweenSelectBox', "Between" const NOT_BETWEEN_SELECT_BOX = localize('objectExplorer.notBetweenSelectBox', "Not Between"); const CONTAINS_SELECT_BOX = localize('objectExplorer.containsSelectBox', "Contains"); const NOT_CONTAINS_SELECT_BOX = localize('objectExplorer.notContainsSelectBox', "Not Contains"); +const STARTS_WITH_SELECT_BOX = localize('objectExplorer.startsWithSelectBox', "Starts With"); +const NOT_STARTS_WITH_SELECT_BOX = localize('objectExplorer.notStartsWithSelectBox', "Not Starts With"); +const ENDS_WITH_SELECT_BOX = localize('objectExplorer.endsWithSelectBox', "Ends With"); +const NOT_ENDS_WITH_SELECT_BOX = localize('objectExplorer.notEndsWithSelectBox', "Not Ends With"); const AND_SELECT_BOX = localize('objectExplorer.andSelectBox', "And"); -const IS_NULL_SELECT_BOX = localize('objectExplorer.isNullSelectBox', "Is Null"); -const IS_NOT_NULL_SELECT_BOX = localize('objectExplorer.isNotNullSelectBox', "Is Not Null"); // strings for filter table column headers const PROPERTY_NAME_COLUMN_HEADER = localize('objectExplorer.propertyNameColumnHeader', "Property"); @@ -555,7 +557,11 @@ export class FilterDialog extends Modal { CONTAINS_SELECT_BOX, NOT_CONTAINS_SELECT_BOX, EQUALS_SELECT_BOX, - NOT_EQUALS_SELECT_BOX + NOT_EQUALS_SELECT_BOX, + STARTS_WITH_SELECT_BOX, + NOT_STARTS_WITH_SELECT_BOX, + ENDS_WITH_SELECT_BOX, + NOT_ENDS_WITH_SELECT_BOX, ]; case NodeFilterPropertyDataType.Number: return [ @@ -598,6 +604,14 @@ export class FilterDialog extends Modal { return CONTAINS_SELECT_BOX; case NodeFilterOperator.NotContains: return NOT_CONTAINS_SELECT_BOX; + case NodeFilterOperator.StartsWith: + return STARTS_WITH_SELECT_BOX; + case NodeFilterOperator.NotStartsWith: + return NOT_STARTS_WITH_SELECT_BOX; + case NodeFilterOperator.EndsWith: + return ENDS_WITH_SELECT_BOX; + case NodeFilterOperator.NotEndsWith: + return NOT_ENDS_WITH_SELECT_BOX; case NodeFilterOperator.Equals: return EQUALS_SELECT_BOX; case NodeFilterOperator.NotEquals: @@ -614,10 +628,6 @@ export class FilterDialog extends Modal { return BETWEEN_SELECT_BOX; case NodeFilterOperator.NotBetween: return NOT_BETWEEN_SELECT_BOX; - case NodeFilterOperator.IsNull: - return IS_NULL_SELECT_BOX; - case NodeFilterOperator.IsNotNull: - return IS_NOT_NULL_SELECT_BOX; default: return ''; } @@ -629,6 +639,14 @@ export class FilterDialog extends Modal { return NodeFilterOperator.Contains; case NOT_CONTAINS_SELECT_BOX: return NodeFilterOperator.NotContains; + case STARTS_WITH_SELECT_BOX: + return NodeFilterOperator.StartsWith; + case NOT_STARTS_WITH_SELECT_BOX: + return NodeFilterOperator.NotStartsWith; + case ENDS_WITH_SELECT_BOX: + return NodeFilterOperator.EndsWith; + case NOT_ENDS_WITH_SELECT_BOX: + return NodeFilterOperator.NotEndsWith; case EQUALS_SELECT_BOX: return NodeFilterOperator.Equals; case NOT_EQUALS_SELECT_BOX: