Re: Strange behaviour of JDBC driver for PostgreSQL - Mailing list pgsql-jdbc
From | Dave Cramer |
---|---|
Subject | Re: Strange behaviour of JDBC driver for PostgreSQL |
Date | |
Msg-id | 1040154167.14875.281.camel@inspiron.cramers Whole thread Raw |
In response to | Strange behaviour of JDBC driver for PostgreSQL (Carlos Correia <carlos@m16e.com>) |
List | pgsql-jdbc |
Carlos, Sorry, I didn't read your email carefully enough. The driver won't work with a 6.5.2 database, my apologies. You will need to upgrade the remote server Dave On Tue, 2002-12-17 at 12:54, Carlos Correia wrote: > I have problems with PostgreSQL when connecting from another machine in > the same network, after upgrading to 7.2.2 (Mandrake 9.0). > > When invoking 'getColumns()' on a DatabaseMetaData object I get (very) > different results when I invoke it in the local machine (in which works > good) then when I invoke it in another machine in the network as you can > see below: > > I've made a small Java class to reproduce its bizarre behaviour (I'm > using the same driver in both machines - > /usr/share/pgsql/jdbc7.2dev-1.2.jar from Mandrake 9.0), here is its output: > > > ================================== > LOCAL MACHINE: > Database: PostgreSQL > Version: 7.2.2 > > > schemas: > > > catalogs: > template1 > template0 > sedb > > Fields for table: 'test' > ID TYPE TYPNAME NAME LEN NULLABLE > 1 4 int4 4 NO > 2 1 bpchar 20 YES > > =================================== > REMOTE MACHINE IN THE SAME NETWORK: > Database: PostgreSQL > Version: 6.5.2 > > > schemas: > > > > catalogs: > > > Fields for table: 'test' > ID TYPE TYPNAME NAME LEN NULLABLE > ERROR: No such attribute or function 'oid' > > > java.sql.SQLException: ERROR: No such attribute or function 'oid' > > org.postgresql.Connection.ExecSQL(Connection.java at :393) > org.postgresql.jdbc2.DatabaseMetaData.getColumns( at DatabaseMetaData.jav > a:1880) > at DbTester.(DbTester.java:41) > at DbTester.main(DbTester.java:115) > > ================================ > LAST LINES OF '/var/lib/pgsql/data/pg_hba.conf': > local all ident sameuser > host all 192.168.1.2 255.255.255.0 trust > > 191.168.1.2 is the client machine, running the same version of JDK (1.4.0). > > Here is the test program that illustrates this behaviour: > > import java.util.*; > import java.text.*; > import java.io.*; > > import java.sql.*; > > ///////////////////////////////////////////////// /////////// > public class DbTester > { > Connection connection = null; > DatabaseMetaData dbmd = null; > > //////////////////////////////////////////////// //////////// > public DbTester() > throws SQLException, ClassNotFoundException, > FileNotFoundException, IOException > { > Class.forName( "org.postgresql.Driver" ); > Connection connection = > DriverManager.getConnection( > "jdbc:postgresql://devo/sedb", "carlos", "" ); > dbmd = connection.getMetaData(); > String databaseProductName = dbmd.getDatabaseProductName(); > String databaseProductVersion = dbmd.getDatabaseProductVersion(); > > System.out.println( > "Database: " databaseProductName > "nVersion: " databaseProductVersion ); > > printSchemas(); > printCatalogs(); > System.out.println( > "nFields for table: 'test'" > "nIDtTYPEtTYPNAMEtNAMEtLENtNULLABLE" ); > ResultSet rs = dbmd.getColumns( "%", "%", "test", "%" ); > while( rs.next() ) > printField( rs ); > rs.close(); > } > > > //////////////////////////////////////////////// //////////// > public void printField( ResultSet rs ) > throws SQLException > { > System.out.println( > rs.getInt( 17 ) "t" rs.getInt( 5 ) "t" > rs.getString( 6 ) "t" rs.getInt( 7 ) "t" > rs.getString( 18 ) ); > } > > //////////////////////////////////////////////// //////////// > public void printSchemas() > throws SQLException > { > System.out.println( "nn schemas:" ); > ResultSet rs = dbmd.getSchemas(); > while ( rs.next() ) > System.out.println( rs.getString( 1 ) ); > rs.close(); > } > > //////////////////////////////////////////////// //////////// > public void printCatalogs() > throws SQLException > { > System.out.println( "nn catalogs:" ); > ResultSet rs = dbmd.getCatalogs(); > while ( rs.next() ) > System.out.println( rs.getString( 1 ) ); > rs.close(); > } > > //////////////////////////////////////////////// //////////// > public static void main( String[] args ) > { > try > { > new DbTester(); > } > catch( Exception e ) > { > System.out.println( e.getMessage() ); > e.printStackTrace(); > } > } > > } > > best Regards, > > Carlos Correia > > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly -- Dave Cramer <Dave@micro-automation.net>
pgsql-jdbc by date: