Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions csharp/src/StatementExecution/StatementExecutionStatement.cs
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,8 @@ private Schema GetSchemaFromManifest(ResultManifest manifest)
var fields = new List<Field>();
foreach (var column in manifest.Schema.Columns)
{
var arrowType = MapDatabricksTypeToArrowType(column.TypeName);
var typeName = column.TypeName ?? string.Empty;
var arrowType = MapDatabricksTypeToArrowType(typeName);
// Embed the SQL type name as Arrow field metadata so that consumers
// (e.g. the PowerBI connector's AdjustNativeTypes) can read it via
// the "Spark:DataType:SqlName" key — the same metadata the Databricks
Expand All @@ -494,7 +495,7 @@ private Schema GetSchemaFromManifest(ResultManifest manifest)
// it here for now. Add it if a consumer requires it (PECO-2950).
var metadata = new Dictionary<string, string>
{
["Spark:DataType:SqlName"] = ColumnMetadataHelper.GetSparkSqlName(column.TypeName ?? string.Empty)
["Spark:DataType:SqlName"] = ColumnMetadataHelper.GetSparkSqlName(typeName)
};
fields.Add(new Field(column.Name, arrowType, true, metadata));
}
Expand Down
2 changes: 2 additions & 0 deletions csharp/test/ColumnMetadataHelperTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ public void GetDataTypeCode_ReturnsCorrectCode(string typeName, short expectedCo
[InlineData("STRING", "STRING")]
[InlineData("BOOLEAN", "BOOLEAN")]
[InlineData("DOUBLE", "DOUBLE")]
[InlineData("", "")]
public void GetBaseTypeName_ReturnsCorrectName(string typeName, string expectedBase)
{
Assert.Equal(expectedBase, ColumnMetadataHelper.GetBaseTypeName(typeName));
Expand Down Expand Up @@ -220,6 +221,7 @@ public void GetDataTypeCode_HandlesTrimAndCase(string typeName, short expectedCo
[InlineData("STRUCT<a:INT>", "STRUCT")]
[InlineData("INTERVAL DAY TO SECOND", "INTERVAL")]
[InlineData("VARIANT", "VARIANT")]
[InlineData("", "")]
public void GetSparkSqlName_ReturnsCorrectValues(string typeName, string expected)
{
Assert.Equal(expected, ColumnMetadataHelper.GetSparkSqlName(typeName));
Expand Down
Loading