Re: JDBC idea with special JDBC views - Mailing list pgsql-jdbc

From Dave Cramer
Subject Re: JDBC idea with special JDBC views
Date
Msg-id 1031877202.1947.134.camel@inspiron.cramers
Whole thread Raw
In response to JDBC idea with special JDBC views  (snpe <snpe@snpe.co.yu>)
Responses Re: JDBC idea with special JDBC views
List pgsql-jdbc
This is a very good idea, however it will be a tough sell to the core
group to add views for an interface. Keep in mind that if the jdbc
interface gets a few views, then all the other interfaces will want them
as well. There is a new table called pg_depend which will help in
identifying relationships between tables.

Dave
On Thu, 2002-09-12 at 18:40, snpe wrote:
> Hello,
>   I have idea for few methods in JDBC
> We can  add views pg_gettables, pg_getcolumns, pg_getprimarykeys
> etc. and method work only connection.executeQuery("select * from
> pg_gettables") (and like).Columns in view are like JDBC specification.
> Now JDBC source stay unchanged and we can speedup query for view and change
> with change JDBC specification
> In begining schema can be null, but later we add schema support with only
> change views (without change JDBC source)
> We need COLUMN_SIZE and PRECISION for any view.We can make function like
> format_type in postgresql source or simple view like (for getColumns) :
> create view pg_getcolumns as (this is not complete view for getColumns, only
> example - can be much better)
> select null::varchar as "TABLE CAT",
>         null::varchar as "TABLE_SCHEM",
>         c.relname as "TABLE_NAME",a.attname as "COLUMN_NAME",
>         CASE t.typname
>                 when 'int2' then 'Types.SMALLINT'
>                 when 'int4' then 'Types.INTEGER'
>                 when 'oid' then 'Types.INTEGER'
>                 when 'numeric' then 'Types.NUMERIC'
>                 else
>                         'Types.OTHER'
>         end as "DATA_TYPE",
>         typname as "TYPE_NAME",
>         case typname
>                 when 'varchar' then
>                         case atttypmod
>                                 when -1 then null
>                         else
>                                  (atttypmod-4)
>                         end
>                 when 'bpchar' then
>                         case atttypmod
>                                 when -1 then null
>                         else
>                                  (atttypmod-4)
>                         end
>         else
>                 attlen
>         end as "COLUMN_SIZE",
>         null::int4 as "BUFFER_LENGTH",
>         case typname
>                 when 'numeric' then
>                         case atttypmod
>                                 when -1 then null
>                         else
>                                 (atttypmod-4) >> 16
>                         end
>                 when 'decimal' then
>                         case atttypmod
>                                 when -1 then null
>                         else
>                                  (atttypmod-4) >>16
>                         end
>         end as "DECIMAL_DIGITS",
>         case typname
>                 when 'numeric' then
>                         case atttypmod
>                                 when -1 then null
>                         else
>                                 (int4(atttypmod)-int4('4')) & int4('65535')
>                         end
>                 when 'decimal' then
>                         case atttypmod
>                                 when -1 then null
>                         else
>                                 (int4(atttypmod)-int4('4')) & int4('65535')
>                         end
>         end as "NUM_PREC_RADIX"
> from pg_class c,pg_catalog.pg_type t,pg_catalog.pg_attribute a
> where c.oid=a.attrelid and t.oid=a.atttypid;
>
> getColumns is like :
>
>     connection.CreateStatement().executeQuery("SELECT * " +
>         "FROM pg_getcolumns " +
>         "WHERE \"TABLE_CAT\" LIKE " + catalog==null ? "%" : catalog +
> etc
>
>    Maybe is better with PreparedStatement in this method
>
> regards
> Haris Peco
>
>



pgsql-jdbc by date:

Previous
From: snpe
Date:
Subject: JDBC idea with special JDBC views
Next
From: Panu Outinen
Date:
Subject: Re: What releases should the jdbc driver support? Was: