This is an automated email from the ASF dual-hosted git repository.

curth pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new b29e4a96 fix(csharp/src/Client/SchemaConverter): add check for keys on 
precision and scale (#1566)
b29e4a96 is described below

commit b29e4a96c02ccd8e40c63fcbd32b39e12906ea2a
Author: davidhcoe <13318837+davidh...@users.noreply.github.com>
AuthorDate: Mon Feb 26 18:17:27 2024 -0500

    fix(csharp/src/Client/SchemaConverter): add check for keys on precision and 
scale (#1566)
    
    fixes https://github.com/apache/arrow-adbc/issues/1565
    
    Co-authored-by: David Coe <coeda...@umich.edu>
---
 csharp/src/Client/SchemaConverter.cs | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/csharp/src/Client/SchemaConverter.cs 
b/csharp/src/Client/SchemaConverter.cs
index 38863417..cc71f499 100644
--- a/csharp/src/Client/SchemaConverter.cs
+++ b/csharp/src/Client/SchemaConverter.cs
@@ -70,8 +70,17 @@ namespace Apache.Arrow.Adbc.Client
                     f.HasMetadata
                 )
                 {
-                    row[SchemaTableColumn.NumericPrecision] = 
Convert.ToInt32(f.Metadata["precision"]);
-                    row[SchemaTableColumn.NumericScale] = 
Convert.ToInt32(f.Metadata["scale"]);
+                    if (f.Metadata.TryGetValue("precision", out string 
precisionKey))
+                    {
+                        if(!string.IsNullOrEmpty(precisionKey))
+                            row[SchemaTableColumn.NumericPrecision] = 
Convert.ToInt32(f.Metadata[precisionKey]);
+                    }
+
+                    if(f.Metadata.TryGetValue("scale", out string scaleKey))
+                    {
+                        if(!string.IsNullOrEmpty(scaleKey))
+                            row[SchemaTableColumn.NumericScale] = 
Convert.ToInt32(f.Metadata[scaleKey]);
+                    }
                 }
                 else if (f.DataType is Decimal128Type decimal128Type)
                 {

Reply via email to