Skip to content

Fix Serialization/Deserialization issue with $ prefix columns (#3051)#3137

Merged
Aniruddh25 merged 2 commits intorelease/1.7from
dev/alpolava/serialization_1.7
Feb 20, 2026
Merged

Fix Serialization/Deserialization issue with $ prefix columns (#3051)#3137
Aniruddh25 merged 2 commits intorelease/1.7from
dev/alpolava/serialization_1.7

Conversation

@Alekhya-Polavarapu
Copy link
Contributor

Why make this change?

Serialization and deserialization of metadata currently fail when column names are prefixed with the $ symbol.

What is this change?

This pull request enhances the serialization and deserialization logic for database metadata objects to properly handle column names that start with a dollar sign ($). It introduces a mechanism to escape such column names during serialization and unescape them during deserialization, ensuring compatibility and correctness when processing metadata with special column names.

How was this tested?

  • Unit Tests

## Why make this change?
Serialization and deserialization of metadata currently fail when column
names are prefixed with the $ symbol.
## What is this change?
This pull request enhances the serialization and deserialization logic
for database metadata objects to properly handle column names that start
with a dollar sign ($). It introduces a mechanism to escape such column
names during serialization and unescape them during deserialization,
ensuring compatibility and correctness when processing metadata with
special column names.

## How was this tested?
- [x] Unit Tests

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request addresses serialization and deserialization issues when database column names start with a dollar sign ($). The solution introduces an escaping mechanism that prefixes such column names with "DAB_ESCAPE$" during serialization and removes the prefix during deserialization.

Changes:

  • Modified DatabaseObjectConverter to escape/unescape column names starting with $ in the Columns dictionary
  • Added three new test methods to verify serialization/deserialization with dollar-prefixed columns for DatabaseTable, DatabaseView, and DatabaseStoredProcedure
  • Updated InitializeObjects method to support parameterized column name generation for testing

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 9 comments.

File Description
src/Core/Services/MetadataProviders/Converters/DatabaseObjectConverter.cs Implements escape/unescape logic for dollar-prefixed column names in SourceDefinition.Columns dictionary
src/Service.Tests/UnitTests/SerializationDeserializationTests.cs Adds test coverage for dollar-prefixed columns and parameterizes test object initialization

@Aniruddh25
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@Aniruddh25 Aniruddh25 enabled auto-merge (squash) February 19, 2026 04:38
@Alekhya-Polavarapu
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@Aniruddh25 Aniruddh25 requested a review from stuartpa as a code owner February 19, 2026 21:53
@Aniruddh25
Copy link
Collaborator

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@Aniruddh25 Aniruddh25 merged commit 8caae38 into release/1.7 Feb 20, 2026
11 checks passed
@Aniruddh25 Aniruddh25 deleted the dev/alpolava/serialization_1.7 branch February 20, 2026 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments