Thread: Bug: getColumns returns bad data for numeric types in 7.3.2

Bug: getColumns returns bad data for numeric types in 7.3.2

From
"Michael L. Gantz"
Date:
The metadata method getColumns is returning bad data for numeric types.
  If I apply the following patch it fixes the problem.  Could someone
confirm this and have whoever tracks this piece of code apply this patch?

Short version :

2340c2340
<                               int attypmod = rs.getInt(8) - VARHDRSZ;
---
 >                               int attypmod = rs.getInt(6) - VARHDRSZ;


Context version :

*** AbstractJdbc1DatabaseMetaData.java.old      Mon Feb 24 18:04:03 2003
--- AbstractJdbc1DatabaseMetaData.java  Mon Feb 24 18:03:47 2003
***************
*** 2337,2343 ****
                         }
                         else if (pgType.equals("numeric") ||
pgType.equals("decimal"))
                         {
!                               int attypmod = rs.getInt(8) - VARHDRSZ;
                                 tuple[6] = Integer.toString( ( attypmod
 >> 16 ) & 0xffff ).getBytes();
                                 tuple[8] = Integer.toString(attypmod &
0xffff).getBytes();
                                 tuple[9] = "10".getBytes();
--- 2337,2343 ----
                         }
                         else if (pgType.equals("numeric") ||
pgType.equals("decimal"))
                         {
!                               int attypmod = rs.getInt(6) - VARHDRSZ;
                                 tuple[6] = Integer.toString( ( attypmod
 >> 16 ) & 0xffff ).getBytes();
                                 tuple[8] = Integer.toString(attypmod &
0xffff).getBytes();
                                 tuple[9] = "10".getBytes();





Thanks,
Michael L. Gantz




Re: Bug: getColumns returns bad data for numeric types in

From
Barry Lind
Date:
Michael,

This has already been fixed.  I believe it it in build 109 for 7.3
available for download from the jdbc.postgresql.org website.

thanks,
--Barry


Michael L. Gantz wrote:
>
> The metadata method getColumns is returning bad data for numeric types.
>  If I apply the following patch it fixes the problem.  Could someone
> confirm this and have whoever tracks this piece of code apply this patch?
>
> Short version :
>
> 2340c2340
> <                               int attypmod = rs.getInt(8) - VARHDRSZ;
> ---
>  >                               int attypmod = rs.getInt(6) - VARHDRSZ;
>
>
> Context version :
>
> *** AbstractJdbc1DatabaseMetaData.java.old      Mon Feb 24 18:04:03 2003
> --- AbstractJdbc1DatabaseMetaData.java  Mon Feb 24 18:03:47 2003
> ***************
> *** 2337,2343 ****
>                         }
>                         else if (pgType.equals("numeric") ||
> pgType.equals("decimal"))
>                         {
> !                               int attypmod = rs.getInt(8) - VARHDRSZ;
>                                 tuple[6] = Integer.toString( ( attypmod
>  >> 16 ) & 0xffff ).getBytes();
>                                 tuple[8] = Integer.toString(attypmod &
> 0xffff).getBytes();
>                                 tuple[9] = "10".getBytes();
> --- 2337,2343 ----
>                         }
>                         else if (pgType.equals("numeric") ||
> pgType.equals("decimal"))
>                         {
> !                               int attypmod = rs.getInt(6) - VARHDRSZ;
>                                 tuple[6] = Integer.toString( ( attypmod
>  >> 16 ) & 0xffff ).getBytes();
>                                 tuple[8] = Integer.toString(attypmod &
> 0xffff).getBytes();
>                                 tuple[9] = "10".getBytes();
>
>
>
>
>
> Thanks,
> Michael L. Gantz
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>