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

From snpe
Subject Re: JDBC idea with special JDBC views
Date
Msg-id 200209131539.29847.snpe@snpe.co.yu
Whole thread Raw
In response to Re: JDBC idea with special JDBC views  (Dave Cramer <Dave@micro-automation.net>)
List pgsql-jdbc
That is special views and pg_depned don't help.
For core group : we need sql script when start with initdb and views for
any interfaces go here with special syntax, btw for jdbc are pg_jdbc_xxx
, for c pg_jdbc_c. etc
We can that core sql script call special sql script (jdbc_views.sql,
c_view.sql etc.)
jdbc_views.sql maintain JDBC group etc
regards
Haris Peco
On Friday 13 September 2002 02:33 am, Dave Cramer wrote:
> 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: Felipe Schnack
Date:
Subject: Re: What releases should the jdbc driver support? Was:
Next
From: Daniel Serodio
Date:
Subject: Bug in PreparedStatement and 'numeric' columns