[libpostgresql-jdbc-java] 01/11: Correct the display size calculations for numeric data. Don't add precision and scale because scale is just a subset of precision.

Emmanuel Bourg ebourg-guest at moszumanska.debian.org
Mon Jan 9 10:19:18 UTC 2017


This is an automated email from the git hooks/post-receive script.

ebourg-guest pushed a commit to tag REL8_0_315
in repository libpostgresql-jdbc-java.

commit 8698a038205c13d57617c4074decb7b3bd948a17
Author: Kris Jurka <books at ejurka.com>
Date:   Wed Nov 23 21:51:55 2005 +0000

    Correct the display size calculations for numeric data.  Don't add
    precision and scale because scale is just a subset of precision.
---
 org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java b/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java
index 7aa1f7c..7f24513 100644
--- a/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java
+++ b/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java
@@ -3,7 +3,7 @@
 * Copyright (c) 2004-2005, PostgreSQL Global Development Group
 *
 * IDENTIFICATION
-*   $PostgreSQL: pgjdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java,v 1.17 2005/01/11 08:25:46 jurka Exp $
+*   $PostgreSQL: pgjdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java,v 1.17.2.1 2005/09/29 23:03:40 jurka Exp $
 *
 *-------------------------------------------------------------------------
 */
@@ -256,9 +256,14 @@ public abstract class AbstractJdbc2ResultSetMetaData implements PGResultSetMetaD
         if (type_name.equals( "bpchar" )
                 || type_name.equals( "varchar" ))
             return typmod; // VARHDRSZ=sizeof(int32)=4
-        if (type_name.equals( "numeric" ))
-            return ( (typmod >> 16) & 0xffff )
-                   + 1 + ( typmod & 0xffff ); // DECIMAL(p,s) = (p digits).(s digits)
+        if (type_name.equals( "numeric" )) {
+            if (typmod + 4 == -1)
+                return 1002;
+            int precision = (typmod >> 16) & 0xffff;
+            int scale = typmod & 0xffff;
+            // sign + digits + decimal point if necessary
+            return 1 + precision + (scale != 0) ? 1 : 0;
+        }
 
         // if we don't know better
         return f.getLength();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libpostgresql-jdbc-java.git



More information about the pkg-java-commits mailing list