Re: [JDBC] getScale() and getPrecision() patch - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: [JDBC] getScale() and getPrecision() patch
Date
Msg-id 200105161708.f4GH88917255@candle.pha.pa.us
Whole thread Raw
List pgsql-patches
Patch applied to jdbc1 and jdbc2 and attached.  This adds NUMERIC tests
to the code.


> ahh ... or maybe a "diff -c" ... amazing what the man pages can teach you ..
> ;)
>
> [root@TIMDA1 postgresbugfix]# diff -c ResultSetMetaData.java-original
> ResultSetMetaData.java
> *** ResultSetMetaData.java-original     Mon Apr 17 16:07:52 2000
> --- ResultSetMetaData.java      Wed May  2 17:29:36 2001
> ***************
> *** 285,290 ****
> --- 285,296 ----
>         return 16;
>         case Types.VARCHAR:
>         return 0;
> +       case Types.NUMERIC:
> +       Field f = getField(column);
> +       if(f != null)
> +               return ((0xFFFF0000)&f.mod)>>16;
> +       else
> +               return 0;
>         default:
>         return 0;
>         }
> ***************
> *** 316,321 ****
> --- 322,333 ----
>         return 16;
>         case Types.VARCHAR:
>         return 0;
> +       case Types.NUMERIC:
> +       Field f = getField(column);
> +       if(f != null)
> +               return (((0x0000FFFF)&f.mod)-4);
> +       else
> +               return 0;
>         default:
>         return 0;
>         }
> [root@TIMDA1 postgresbugfix]#
>
> > -----Original Message-----
> > From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> > Sent: Tuesday, May 08, 2001 1:17 PM
> > To: David Esposito
> > Cc: pgsql-jdbc@postgresql.org
> > Subject: Re: [JDBC] getScale() and getPrecision() patch
> >
> >
> >
> > Is it possible to get a context diff of this patch?  Thanks.
> >
> >
> > [ Charset ISO-8859-1 unsupported, converting... ]
> > > With a little bit of hacking, I figured out the internal
> > representation that
> > > PostGreSQL uses for its precision and scale values ... here's
> > the diff for
> > > the patch:
> > >
> > >
> > \postgresql-7.1\src\interfaces\jdbc\org\postgresql\jdbc2\ResultSet
> > MetaData.j
> > > ava
> > >
> > > [root@TIMDA1 postgresbugfix]# diff ResultSetMetaData.java
> > > ResultSetMetaData.java-original
> > > 288,293d287
> > > <       case Types.NUMERIC:
> > > <       Field f = getField(column);
> > > <       if(f != null)
> > > <               return ((0xFFFF0000)&f.mod)>>16;
> > > <       else
> > > <               return 0;
> > > 325,330d318
> > > <       case Types.NUMERIC:
> > > <       Field f = getField(column);
> > > <       if(f != null)
> > > <               return (((0x0000FFFF)&f.mod)-4);
> > > <       else
> > > <               return 0;
> > > [root@TIMDA1 postgresbugfix]#
> > >
>
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
Index: contrib/retep/build.xml
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/contrib/retep/build.xml,v
retrieving revision 1.5
diff -c -r1.5 build.xml
*** contrib/retep/build.xml    2001/05/16 16:20:51    1.5
--- contrib/retep/build.xml    2001/05/16 16:53:23
***************
*** 43,48 ****
--- 43,49 ----
    <target name="compile" depends="checks,prepare,warning" if="jdk1.2+">
      <javac srcdir="${src}" destdir="${dest}">
        <include name="${package}/**" />
+       <exclude name="${package}/**" unless="jdk1.2+" />
      </javac>
    </target>

Index: src/interfaces/jdbc/build.xml
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/interfaces/jdbc/build.xml,v
retrieving revision 1.9
diff -c -r1.9 build.xml
*** src/interfaces/jdbc/build.xml    2001/05/16 16:20:52    1.9
--- src/interfaces/jdbc/build.xml    2001/05/16 16:53:38
***************
*** 120,126 ****
      <javac srcdir="${src}" destdir="${dest}">
        <include name="example/**" />
        <exclude name="example/corba/**"/>
!       <exclude name="example/blobtest.java" unless="jdk1.2+" />
      </javac>
    </target>

--- 120,126 ----
      <javac srcdir="${src}" destdir="${dest}">
        <include name="example/**" />
        <exclude name="example/corba/**"/>
!       <exclude name="example/blobtest.java" unless="jdk1.2+"/>
      </javac>
    </target>

Index: src/interfaces/jdbc/org/postgresql/jdbc1/ResultSetMetaData.java
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSetMetaData.java,v
retrieving revision 1.1
diff -c -r1.1 ResultSetMetaData.java
*** src/interfaces/jdbc/org/postgresql/jdbc1/ResultSetMetaData.java    2000/04/17 20:07:48    1.1
--- src/interfaces/jdbc/org/postgresql/jdbc1/ResultSetMetaData.java    2001/05/16 16:53:40
***************
*** 290,295 ****
--- 290,301 ----
      return 16;
        case Types.VARCHAR:
      return 0;
+       case Types.NUMERIC:
+     Field f = getField(column);
+     if(f != null)
+             return ((0xFFFF0000)&f.mod)>>16;
+     else
+         return 0;
        default:
      return 0;
        }
***************
*** 321,326 ****
--- 327,338 ----
      return 16;
        case Types.VARCHAR:
      return 0;
+       case Types.NUMERIC:
+     Field f = getField(column);
+     if(f != null)
+         return (((0x0000FFFF)&f.mod)-4);
+     else
+         return 0;
        default:
      return 0;
        }
Index: src/interfaces/jdbc/org/postgresql/jdbc2/ResultSetMetaData.java
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSetMetaData.java,v
retrieving revision 1.1
diff -c -r1.1 ResultSetMetaData.java
*** src/interfaces/jdbc/org/postgresql/jdbc2/ResultSetMetaData.java    2000/04/17 20:07:51    1.1
--- src/interfaces/jdbc/org/postgresql/jdbc2/ResultSetMetaData.java    2001/05/16 16:53:40
***************
*** 285,290 ****
--- 285,296 ----
      return 16;
        case Types.VARCHAR:
      return 0;
+       case Types.NUMERIC:
+     Field f = getField(column);
+     if(f != null)
+             return ((0xFFFF0000)&f.mod)>>16;
+     else
+         return 0;
        default:
      return 0;
        }
***************
*** 316,321 ****
--- 322,333 ----
      return 16;
        case Types.VARCHAR:
      return 0;
+       case Types.NUMERIC:
+     Field f = getField(column);
+     if(f != null)
+         return (((0x0000FFFF)&f.mod)-4);
+     else
+         return 0;
        default:
      return 0;
        }

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Patch to add cursor support to PL/pgSQL
Next
From: Bruce Momjian
Date:
Subject: Re: DatabaseMetaData.getIndexInfo() added