Re: A bug fix for JDBC's getTables() in Postgresql 7.1 - Mailing list pgsql-jdbc

From Bruce Momjian
Subject Re: A bug fix for JDBC's getTables() in Postgresql 7.1
Date
Msg-id 200105161641.f4GGfb414713@candle.pha.pa.us
Whole thread Raw
In response to A bug fix for JDBC's getTables() in Postgresql 7.1  (Panu Outinen <panu@vertex.fi>)
List pgsql-jdbc
Thanks.  Patch applied to jdbc1 and jdbc2, and attached.  I had already
patched the ORDER BY as:

    sql.append("' order by relkind, relname");


> Hi !!
>
> I was trying to get a very nice FREE graphical db tool called DbVisualizer
> (http://www.ideit.com/products/dbvis/) to work with Postgresql and I found
> out the following bug: if database has views then getTables() gets the null
> pointer exception ('order by relname' makes the listing tree in
> DbVisualizer a lot useful !!)
>
> This patch should propably be applied to the the jdbc1's
> DatabaseMetaData.java, too.
>
> [/tmp/postgresql-7.1/src/interfaces/jdbc/org/postgresql/jdbc2]$
> <ql/jdbc2]$ diff -u DatabaseMetaData.java.org DatabaseMetaData.java
>
> --- DatabaseMetaData.java.org    Wed May 02 22:52:25 2001
> +++ DatabaseMetaData.java    Wed May 02 23:07:19 2001
> @@ -1666,7 +1666,7 @@
>       // Now take the pattern into account
>       sql.append(") and relname like '");
>       sql.append(tableNamePattern.toLowerCase());
> -    sql.append("'");
> +    sql.append("' order by relname");
>
>       // Now run the query
>       r = connection.ExecSQL(sql.toString());
> @@ -1697,6 +1697,9 @@
>       case 'S':
>           relKind = "SEQUENCE";
>           break;
> +    case 'v':
> +        relKind = "VIEW";
> +        break;
>       default:
>           relKind = null;
>       }
> @@ -1704,7 +1707,7 @@
>       tuple[0] = null;        // Catalog name
>       tuple[1] = null;        // Schema name
>       tuple[2] = r.getBytes(1);    // Table name
> -    tuple[3] = relKind.getBytes();    // Table type
> +    tuple[3] = (relKind==null) ? null : relKind.getBytes();    // Table type
>       tuple[4] = remarks;        // Remarks
>       v.addElement(tuple);
>         }
>
>
> -----
> http://www.ideit.com/products/dbvis/
>
> ...
>
> DbVisualizer
> Version: 2.0
> Released: 2001-04-20
>
>
> The #1 requested feature to ease editing table data is now supported!
> The #2 requested feature to print graphs is now supported!
> Read the complete change log for all new features and enhancements!
>
>
> DbVisualizer is a cross platform database visualization and edit tool
> relying 100% on the JDBC, Java Database Connectivity API's. DbVisualizer
> enables simultaneous connections to many different databases through JDBC
> drivers available from a variety of vendors. Just point and click to browse
> the structure of the database, characteristics of tables, etc. No matter if
> it's an enterprise database from Oracle or an open source product like
> InstantDB!
>
> And best of all -> it's FREE!
> -----
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>

--
  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
Index: src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java,v
retrieving revision 1.14
diff -c -r1.14 DatabaseMetaData.java
*** src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java    2001/05/16 04:08:49    1.14
--- src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java    2001/05/16 16:36:21
***************
*** 1697,1702 ****
--- 1697,1705 ----
      case 'S':
          relKind = "SEQUENCE";
          break;
+     case 'v':
+         relKind = "VIEW";
+         break;
      default:
          relKind = null;
      }
***************
*** 1704,1710 ****
      tuple[0] = null;        // Catalog name
      tuple[1] = null;        // Schema name
      tuple[2] = r.getBytes(1);    // Table name
!     tuple[3] = relKind.getBytes();    // Table type
      tuple[4] = remarks;        // Remarks
      v.addElement(tuple);
        }
--- 1707,1713 ----
      tuple[0] = null;        // Catalog name
      tuple[1] = null;        // Schema name
      tuple[2] = r.getBytes(1);    // Table name
!     tuple[3] = (relKind==null) ? null : relKind.getBytes();    // Table type
      tuple[4] = remarks;        // Remarks
      v.addElement(tuple);
        }
Index: src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java,v
retrieving revision 1.18
diff -c -r1.18 DatabaseMetaData.java
*** src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java    2001/05/16 04:08:50    1.18
--- src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java    2001/05/16 16:36:25
***************
*** 1697,1702 ****
--- 1697,1705 ----
      case 'S':
          relKind = "SEQUENCE";
          break;
+     case 'v':
+         relKind = "VIEW";
+         break;
      default:
          relKind = null;
      }
***************
*** 1704,1710 ****
      tuple[0] = null;        // Catalog name
      tuple[1] = null;        // Schema name
      tuple[2] = r.getBytes(1);    // Table name
!     tuple[3] = relKind.getBytes();    // Table type
      tuple[4] = remarks;        // Remarks
      v.addElement(tuple);
        }
--- 1707,1713 ----
      tuple[0] = null;        // Catalog name
      tuple[1] = null;        // Schema name
      tuple[2] = r.getBytes(1);    // Table name
!     tuple[3] = (relKind==null) ? null : relKind.getBytes();    // Table type
      tuple[4] = remarks;        // Remarks
      v.addElement(tuple);
        }

pgsql-jdbc by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: A Bug Fix - Is this a real bug? Has this already been fixed?
Next
From: Bruce Momjian
Date:
Subject: Re: AGAIN: still no answer ... peter, or anybody knowledgeable,please ....