You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2019/11/05 21:53:17 UTC

[nifi] branch master updated: NIFI-6775 Added fix to support Oracle Float type conversion to Avro

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

mattyb149 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/master by this push:
     new 7ac4157  NIFI-6775 Added fix to support Oracle Float type conversion to Avro
7ac4157 is described below

commit 7ac41576e3711ccc752d730f0b39a474235c701c
Author: Atul Mahajan <ma...@gmail.com>
AuthorDate: Mon Oct 14 19:13:22 2019 +0530

    NIFI-6775 Added fix to support Oracle Float type conversion to Avro
    
    Signed-off-by: Matthew Burgess <ma...@apache.org>
    
    This closes #3812
---
 .../src/main/java/org/apache/nifi/util/db/JdbcCommon.java             | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/nifi-nar-bundles/nifi-extension-utils/nifi-database-utils/src/main/java/org/apache/nifi/util/db/JdbcCommon.java b/nifi-nar-bundles/nifi-extension-utils/nifi-database-utils/src/main/java/org/apache/nifi/util/db/JdbcCommon.java
index 9d57f10..d437930 100644
--- a/nifi-nar-bundles/nifi-extension-utils/nifi-database-utils/src/main/java/org/apache/nifi/util/db/JdbcCommon.java
+++ b/nifi-nar-bundles/nifi-extension-utils/nifi-database-utils/src/main/java/org/apache/nifi/util/db/JdbcCommon.java
@@ -569,7 +569,9 @@ public class JdbcCommon {
                         if (meta.getPrecision(i) > 0) {
                             // When database returns a certain precision, we can rely on that.
                             decimalPrecision = meta.getPrecision(i);
-                            decimalScale = meta.getScale(i);
+                            //For the float data type Oracle return decimalScale < 0 which cause is not expected to org.apache.avro.LogicalTypes
+                            //Hence falling back to default scale if decimalScale < 0
+                            decimalScale = meta.getScale(i) > 0 ? meta.getScale(i) : options.defaultScale;
                         } else {
                             // If not, use default precision.
                             decimalPrecision = options.defaultPrecision;