Re: Obtaining precision and scale of NUMERIC types - Mailing list pgsql-jdbc

From Kris Jurka
Subject Re: Obtaining precision and scale of NUMERIC types
Date
Msg-id Pine.LNX.4.33.0302061345390.14632-200000@leary.csoft.net
Whole thread Raw
In response to Obtaining precision and scale of NUMERIC types  ("Donald J. Armstrong" <donnie@cross-works.com>)
Responses Re: Obtaining precision and scale of NUMERIC types  (Barry Lind <blind@xythos.com>)
List pgsql-jdbc
Attached is patch to fix this problem.  The driver was using the wrong
column from it's query to determine the size and digits of the result.

Kris Jurka

On Thu, 6 Feb 2003, Donald J. Armstrong wrote:

> Greetings,
>
> My first post.
>
> I am attempting to describe the table "donnie" from JDBC and I'm unable
> to determine the precision and scale of numeric types.  I've tried the
> stable and beta versions of the JDBC driver and receive same behavior.
>
> DB version string
> PostgreSQL 7.2.3 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2
> 20020903 (Red Hat Linux 8.0 3.2-7)
>
> I'm using the following code...
>
>     try {
>       DatabaseMetaData dbms = basicCon.driverConnection.getMetaData();
>       ResultSet columnNames;
>       columnNames = dbms.getColumns(null, null, "donnie", null);
>
>         while (columnNames.next()) {
>           System.out.print(columnNames.getString("COLUMN_NAME") + " ");
>
>           switch (columnNames.getInt("DATA_TYPE")) {
>             case java.sql.Types.INTEGER:
>               System.out.print("INTEGER");
>               break;
>             case java.sql.Types.VARCHAR:
>               System.out.print("VARCHAR (");
>               System.out.print(columnNames.getInt("COLUMN_SIZE") + ")");
>               break;
>             case java.sql.Types.NUMERIC:
>               System.out.print("NUMERIC (");
>               System.out.print(columnNames.getInt("COLUMN_SIZE") + ",");
>               System.out.print(columnNames.getInt("DECIMAL_DIGITS") +
> ")");
>               break;
>           }
>
>           System.out.println("");
>         }
>
>     } catch (SQLException e) {
>       System.out.print(e);
>     }
>   }
>
> The output from the java program
> a INTEGER
> b VARCHAR (100)
> c NUMERIC (65535,65535)
> d NUMERIC (0,0)
> The description from pgsql
>                Table "donnie"
>  Column |          Type             | Modifiers
> --------+------------------------+-----------
>  a      | integer                       |
>  b      | character varying(100) |
>  c      | numeric(7,3)               |
>  d      | numeric(12,4)             |
>
> Any help?
> Donnie
>

Attachment

pgsql-jdbc by date:

Previous
From: Barry Lind
Date:
Subject: Re: Timestamp problems
Next
From: George
Date:
Subject: JDBC code needed