pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Peter Mount <petermount@maidstone.gov.uk>
Cc: Christopher Cain <ccain@mhsoftware.com>
Cc: pgsql-interfaces@postgresql.org
Cc: pgsql-patches@postgresql.org
Subject: Re: [PATCHES] JDBC Patch
Date: Tue, 12 Sep 2000 10:10:48 -0400 (EDT)
Message-ID: <200009121410.KAA18394@candle.pha.pa.us> (raw)
In-Reply-To: <1B3D5E532D18D311861A00600865478CF1B3A3@exchange1.nt.maidstone.gov.uk>

[ Charset ISO-8859-1 unsupported, converting... ]
> Eeek, I've got this in my copy ready to commit. How is CVS going to handle
> this problem?

Do a cvs update and see if it skips those changes.


> 
> Peter
> 
> -- 
> Peter Mount
> Enterprise Support Officer, Maidstone Borough Council
> Email: petermount@maidstone.gov.uk
> WWW: http://www.maidstone.gov.uk
> All views expressed within this email are not the views of Maidstone Borough
> Council
> 
> 
> -----Original Message-----
> From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> Sent: Tuesday, September 12, 2000 5:17 AM
> To: Christopher Cain
> Cc: pgsql-interfaces@postgresql.org; pgsql-patches@postgresql.org
> Subject: Re: [PATCHES] JDBC Patch
> 
> 
> Applied.  Thanks.
> 
> > This patch for the 7.0.2 JDBC interface addresses four issues I
> > encountered while getting my reporting tool up and running with the
> > driver. All changes are in the DatabaseMetaData class.
> > 
> > Problem: The getDatabaseProductVersion() method was returning "6.5.2"
> > Resolution: Changed it to return "7.0.2"
> > 
> > Problem: A call to getTables() with an unsupported table type (in the
> > String array) resulted in a malformed SQL statement and subsequent
> > parsing error
> > Resolution: Unsupported table types are now ignored without error
> > 
> > Problem: In a getTables() call, tables and views were both returned by
> > the "TABLE" table type, and the "VIEW" table type was unsupported
> > Resolution: Changed the "TABLE" type to return only physical tables and
> > added support for the "VIEW" table type (returning only views)
> > 
> > Problem: The getIdentifierQuoteString() method was returning null
> > Resolution: This method now returns a double-quote
> > 
> > Regards ...
> > 
> > - Christopher
> 
> > diff -U 5 -r
> postgresql-7.0.2/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.j
> ava
> postgresql-7.0.2a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.
> java
> > ---
> postgresql-7.0.2/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.j
> ava	Mon Apr 17 14:07:48 2000
> > +++
> postgresql-7.0.2a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.
> java	Thu Aug 24 11:42:28 2000
> > @@ -177,11 +177,11 @@
> >     * @return the database version
> >     * @exception SQLException if a database access error occurs
> >     */
> >    public String getDatabaseProductVersion() throws SQLException
> >    {
> > -    return ("6.5.2");
> > +    return ("7.0.2");
> >    }
> >    
> >    /**
> >     * What is the name of this JDBC driver?  If we don't know this
> >     * we are doing something wrong!
> > @@ -361,11 +361,11 @@
> >     * @return the quoting string
> >     * @exception SQLException if a database access error occurs
> >     */
> >    public String getIdentifierQuoteString() throws SQLException
> >    {
> > -    return null;
> > +    return "\"";
> >    }
> >    
> >    /**
> >     * Get a comma separated list of all a database's SQL keywords that
> >     * are NOT also SQL92 keywords.
> > @@ -1652,14 +1652,14 @@
> >      
> >      // Now form the query
> >      StringBuffer sql = new StringBuffer("select relname,oid from pg_class
> where (");
> >      boolean notFirst=false;
> >      for(int i=0;i<types.length;i++) {
> > -      if(notFirst)
> > -	sql.append(" or ");
> >        for(int j=0;j<getTableTypes.length;j++)
> >  	if(getTableTypes[j][0].equals(types[i])) {
> > +          if(notFirst)
> > +            sql.append(" or ");
> >  	  sql.append(getTableTypes[j][1]);
> >  	  notFirst=true;
> >  	}
> >      }
> >      
> > @@ -1704,22 +1704,23 @@
> >    // Each supported type consists of it's name, and the sql where
> >    // clause to retrieve that value.
> >    //
> >    // IMPORTANT: the query must be enclosed in ( )
> >    private static final String getTableTypes[][] = {
> > -    {"TABLE",		"(relkind='r' and relname !~ '^pg_' and
> relname !~ '^xinv')"},
> > +    {"TABLE",		"(relkind='r' and relhasrules='f' and
> relname !~ '^pg_' and relname !~ '^xinv')"},
> > +    {"VIEW",		"(relkind='r' and relhasrules='t' and relname !~
> '^pg_' and relname !~ '^xinv')"},
> >      {"INDEX",		"(relkind='i' and relname !~ '^pg_' and
> relname !~ '^xinx')"},
> >      {"LARGE OBJECT",	"(relkind='r' and relname ~ '^xinv')"},
> >      {"SEQUENCE",	"(relkind='S' and relname !~ '^pg_')"},
> >      {"SYSTEM TABLE",	"(relkind='r' and relname ~ '^pg_')"},
> >      {"SYSTEM INDEX",	"(relkind='i' and relname ~ '^pg_')"}
> >    };
> >    
> >    // These are the default tables, used when NULL is passed to getTables
> >    // The choice of these provide the same behaviour as psql's \d
> >    private static final String defaultTableTypes[] = {
> > -    "TABLE","INDEX","SEQUENCE"
> > +    "TABLE","VIEW","INDEX","SEQUENCE"
> >    };
> >    
> >    /**
> >     * Get the schema names available in this database.  The results
> >     * are ordered by schema name.
> > diff -U 5 -r
> postgresql-7.0.2/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.j
> ava
> postgresql-7.0.2a/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.
> java
> > ---
> postgresql-7.0.2/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.j
> ava	Mon Apr 17 14:07:50 2000
> > +++
> postgresql-7.0.2a/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.
> java	Wed Aug 23 15:14:50 2000
> > @@ -177,11 +177,11 @@
> >     * @return the database version
> >     * @exception SQLException if a database access error occurs
> >     */
> >    public String getDatabaseProductVersion() throws SQLException
> >    {
> > -    return ("6.5.2");
> > +    return ("7.0.2");
> >    }
> >    
> >    /**
> >     * What is the name of this JDBC driver?  If we don't know this
> >     * we are doing something wrong!
> > @@ -361,11 +361,11 @@
> >     * @return the quoting string
> >     * @exception SQLException if a database access error occurs
> >     */
> >    public String getIdentifierQuoteString() throws SQLException
> >    {
> > -    return null;
> > +    return "\"";
> >    }
> >    
> >    /**
> >     * Get a comma separated list of all a database's SQL keywords that
> >     * are NOT also SQL92 keywords.
> > @@ -1652,14 +1652,14 @@
> >      
> >      // Now form the query
> >      StringBuffer sql = new StringBuffer("select relname,oid from pg_class
> where (");
> >      boolean notFirst=false;
> >      for(int i=0;i<types.length;i++) {
> > -      if(notFirst)
> > -	sql.append(" or ");
> >        for(int j=0;j<getTableTypes.length;j++)
> >  	if(getTableTypes[j][0].equals(types[i])) {
> > +	  if(notFirst)
> > +	    sql.append(" or ");
> >  	  sql.append(getTableTypes[j][1]);
> >  	  notFirst=true;
> >  	}
> >      }
> >      
> > @@ -1704,22 +1704,23 @@
> >    // Each supported type consists of it's name, and the sql where
> >    // clause to retrieve that value.
> >    //
> >    // IMPORTANT: the query must be enclosed in ( )
> >    private static final String getTableTypes[][] = {
> > -    {"TABLE",		"(relkind='r' and relname !~ '^pg_' and
> relname !~ '^xinv')"},
> > +    {"TABLE",		"(relkind='r' and relhasrules='f' and
> relname !~ '^pg_' and relname !~ '^xinv')"},
> > +    {"VIEW",		"(relkind='r' and relhasrules='t' and relname !~
> '^pg_' and relname !~ '^xinv')"},
> >      {"INDEX",		"(relkind='i' and relname !~ '^pg_' and
> relname !~ '^xinx')"},
> >      {"LARGE OBJECT",	"(relkind='r' and relname ~ '^xinv')"},
> >      {"SEQUENCE",	"(relkind='S' and relname !~ '^pg_')"},
> >      {"SYSTEM TABLE",	"(relkind='r' and relname ~ '^pg_')"},
> >      {"SYSTEM INDEX",	"(relkind='i' and relname ~ '^pg_')"}
> >    };
> >    
> >    // These are the default tables, used when NULL is passed to getTables
> >    // The choice of these provide the same behaviour as psql's \d
> >    private static final String defaultTableTypes[] = {
> > -    "TABLE","INDEX","SEQUENCE"
> > +    "TABLE","VIEW","INDEX","SEQUENCE"
> >    };
> >    
> >    /**
> >     * Get the schema names available in this database.  The results
> >     * are ordered by schema name.
> 
> 
> -- 
>   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
> 


-- 
  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



view thread (10+ messages)

Message-ID: <200009121410.KAA18394@candle.pha.pa.us>
Permalink:  ../200009121410.KAA18394@candle.pha.pa.us/
Also on:    postgresql.org/message-id/200009121410.KAA18394@candle.pha.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: pgman@candle.pha.pa.us, petermount@maidstone.gov.uk, ccain@mhsoftware.com, pgsql-patches@postgresql.org
  Subject: Re: [PATCHES] JDBC Patch
  In-Reply-To: <200009121410.KAA18394@candle.pha.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox