Re: JDBC patch for DatabaseMetaData

From: "Ed Yu" <ekyu(at)sc(dot)rr(dot)com>
To: "Barry Lind" <barry(at)xythos(dot)com>
Cc: "pgsql-jdbc" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: JDBC patch for DatabaseMetaData
Date: 2002-01-10 04:10:19
Message-ID: 003a01c1998c$b7ab1bc0$bf00a8c0@sc.rr.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

You are right on that user != schema. But I would rather have a functional
driver now than an compliance driver way down in the future.

As I can recall, the only database I've worked with that supports schema is
UDB (DB2). Schema is a label that groups database objects together. It is
functionally equivalent to a user except that login is not permitted for a
schema (in the context of security/permission granting).

Since Postgresql has the concept of a database, it would be equalvalent to
the concept of catalog and user would be functionally equalvalent to schema.

Again, I prefer to have a working JDBC driver now than a compliance driver
in the future.

What do you think guys?

----- Original Message -----
From: "Barry Lind" <barry(at)xythos(dot)com>
To: "Ed Yu" <ekyu(at)sc(dot)rr(dot)com>
Cc: "pgsql-jdbc" <pgsql-jdbc(at)postgresql(dot)org>
Sent: Monday, January 07, 2002 12:44 PM
Subject: Re: JDBC patch for DatabaseMetaData

> It appears that this patch is trying to add schema support for the
> getTables method. But since postgres doesn't yet support schemas
> (perhaps in 7.3), I don't see how this is going to be possible. I
> certainly don't agree with the approach here that user = schema. That
> may be how Oracle does it, but certainly isn't how the ANSI standard
> defines schemas.
>
> thanks,
> --Barry
>
> Ed Yu wrote:
>
> > The following patches up the DatabaseMetaData.getTables() method:
> >
> > 1638c1638,1641
> > < if(tableNamePattern==null)
> > ---
> >
> >> if((schemaPattern==null) || (schemaPattern.length()==0))
> >> schemaPattern="%";
> >>
> >> if((tableNamePattern==null) || (tableNamePattern.length()==0))
> >>
> > 1653c1656,1657
> > < StringBuffer sql = new StringBuffer("select relname,oid,relkind
from
> > pg_class where (");
> > ---
> >
> >> StringBuffer sql = new StringBuffer(
> >> "select relname,pg_class.oid,relkind from pg_class, pg_user
where
> >>
> > (");
> > 1665a1670
> >
> >> // Modified by Ed Yu <ekyu(at)asgnet(dot)psc(dot)sc(dot)edu>
> >>
> > 1667,1669c1672,1678
> > < sql.append(") and relname like '");
> > < sql.append(tableNamePattern.toLowerCase());
> > < sql.append("'");
> > ---
> >
> >> sql.append(") and relname");
> >> if ((tableNamePattern.indexOf("%") >= 0) ||
> >> (tableNamePattern.indexOf("_") >= 0))
> >> sql.append(" like ");
> >> else
> >> sql.append(" = ");
> >> sql.append("'" + tableNamePattern.toLowerCase() + "'");
> >>
> > 1670a1680,1690
> >
> >> // Added by Ed Yu <ekyu(at)asgnet(dot)psc(dot)sc(dot)edu>
> >> // Now take the schemaPattern into account
> >> sql.append(" and pg_class.relowner = pg_user.usesysid");
> >> sql.append(" and pg_user.usename");
> >> if ((schemaPattern.indexOf("%") >= 0) ||
> >> (schemaPattern.indexOf("_") >= 0))
> >> sql.append(" like ");
> >> else
> >> sql.append(" = ");
> >> sql.append("'" + schemaPattern + "'");
> >>
> >>
> > 1688a1709,1710
> >
> >> // JDBC definition for TABLE_TYPE - "TABLE", "VIEW", "SYSTEM TABLE",
> >> // "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
> >>
> > 1699a1722,1724
> >
> >> case 'v':
> >> relKind = "VIEW";
> >> break;
> >>
> > 1707c1732,1740
> > < tuple[3] = relKind.getBytes(); // Table type
> > ---
> >
> >> // Added by Ed Yu <ekyu(at)asgnet(dot)psc(dot)sc(dot)edu>
> >> // Fix NullPointerException if return type is not handled in the
> >> // above switch statement.
> >> if (relKind==null)
> >> tuple[3] = null;
> >> else
> >> tuple[3] = relKind.getBytes(); // Table type
> >>
> >>
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 5: Have you checked our extensive FAQ?
> >
> > http://www.postgresql.org/users-lounge/docs/faq.html
> >
> >
>
>
>

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Ryouichi Matsuda 2002-01-10 12:36:42 bug in PreparedStatement of JDBC in 7.2b4
Previous Message Ed Yu 2002-01-10 04:00:21 Statement.java patch (Postgresql 7.1.3)