From ec1bb0e9ec449fcd79fe4a53a7b29a2ee80c6842 Mon Sep 17 00:00:00 2001 From: Jordan Hays <58005768+nofield@users.noreply.github.com> Date: Mon, 19 Sep 2022 16:22:54 -0700 Subject: [PATCH] Remove dropped ledger columns from Edit Data columns (#1691) * remove dropped ledger columns from Edit Data columns * moving dropped ledger filtering to column retrieval from SMO * fix clear and initialize placement and retrieve DefaultConstraintName --- .../EditData/SmoEditMetadataFactory.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.SqlTools.ServiceLayer/EditData/SmoEditMetadataFactory.cs b/src/Microsoft.SqlTools.ServiceLayer/EditData/SmoEditMetadataFactory.cs index 510d1fc6..4cfc49ca 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/EditData/SmoEditMetadataFactory.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/EditData/SmoEditMetadataFactory.cs @@ -93,6 +93,10 @@ namespace Microsoft.SqlTools.ServiceLayer.EditData throw new ArgumentOutOfRangeException(nameof(objectNamedParts), SR.EditDataObjectNotFound); } + // Filter out dropped ledger columns from the list of columns to be returned + // and grab the specific column properties checked below + smoResult.Columns.ClearAndInitialize("[(@IsDroppedLedgerColumn=0)]", new [] { nameof(Column.DataType), nameof(Column.DefaultConstraintName) }); + // Generate the edit column metadata List editColumns = new List(); for (int i = 0; i < smoResult.Columns.Count; i++) @@ -103,7 +107,7 @@ namespace Microsoft.SqlTools.ServiceLayer.EditData try { // The default value may be escaped - defaultValue = smoColumn.DefaultConstraint == null + defaultValue = string.IsNullOrEmpty(smoColumn.DefaultConstraintName) ? null : FromSqlScript.UnwrapLiteral(smoColumn.DefaultConstraint.Text); }