diff --git a/src/interfaces/jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java b/src/interfaces/jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java
index ab56b7019381ff1d710eb8049231e23065b2a70b..ad643fe82a57c371460f20125e3a3b7138a46ed4 100644
--- a/src/interfaces/jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java
+++ b/src/interfaces/jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java
@@ -9,7 +9,7 @@ import java.sql.*;
  *
  * PS: Do you know how difficult it is to type on a train? ;-)
  *
- * $Id: DatabaseMetaDataTest.java,v 1.1 2001/02/13 16:39:05 peter Exp $
+ * $Id: DatabaseMetaDataTest.java,v 1.2 2001/09/10 15:07:58 momjian Exp $
  */
 
 public class DatabaseMetaDataTest extends TestCase {
@@ -29,11 +29,11 @@ public class DatabaseMetaDataTest extends TestCase {
       Connection con = JDBC2Tests.openDB();
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
 
@@ -45,32 +45,32 @@ public class DatabaseMetaDataTest extends TestCase {
       Connection con = JDBC2Tests.openDB();
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
-      assert(dbmd.allProceduresAreCallable()==true);
-      assert(dbmd.allTablesAreSelectable()==true); // not true all the time
+      assertTrue(dbmd.allProceduresAreCallable());
+      assertTrue(dbmd.allTablesAreSelectable()); // not true all the time
 
       // This should always be false for postgresql (at least for 7.x)
-      assert(!dbmd.isReadOnly());
+      assertTrue(!dbmd.isReadOnly());
 
       // does the backend support this yet? The protocol does...
-      assert(!dbmd.supportsMultipleResultSets());
+      assertTrue(!dbmd.supportsMultipleResultSets());
 
       // yes, as multiple backends can have transactions open
-      assert(dbmd.supportsMultipleTransactions());
+      assertTrue(dbmd.supportsMultipleTransactions());
 
-      assert(dbmd.supportsMinimumSQLGrammar());
-      assert(!dbmd.supportsCoreSQLGrammar());
-      assert(!dbmd.supportsExtendedSQLGrammar());
-      assert(!dbmd.supportsANSI92EntryLevelSQL());
-      assert(!dbmd.supportsANSI92IntermediateSQL());
-      assert(!dbmd.supportsANSI92FullSQL());
+      assertTrue(dbmd.supportsMinimumSQLGrammar());
+      assertTrue(!dbmd.supportsCoreSQLGrammar());
+      assertTrue(!dbmd.supportsExtendedSQLGrammar());
+      assertTrue(!dbmd.supportsANSI92EntryLevelSQL());
+      assertTrue(!dbmd.supportsANSI92IntermediateSQL());
+      assertTrue(!dbmd.supportsANSI92FullSQL());
 
-      assert(!dbmd.supportsIntegrityEnhancementFacility());
+      assertTrue(!dbmd.supportsIntegrityEnhancementFacility());
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
 
@@ -80,15 +80,15 @@ public class DatabaseMetaDataTest extends TestCase {
       Connection con = JDBC2Tests.openDB();
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
-      assert(dbmd.supportsOuterJoins());
-      assert(dbmd.supportsFullOuterJoins());
-      assert(dbmd.supportsLimitedOuterJoins());
+      assertTrue(dbmd.supportsOuterJoins());
+      assertTrue(dbmd.supportsFullOuterJoins());
+      assertTrue(dbmd.supportsLimitedOuterJoins());
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
 
@@ -97,14 +97,14 @@ public class DatabaseMetaDataTest extends TestCase {
       Connection con = JDBC2Tests.openDB();
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
-      assert(!dbmd.supportsPositionedDelete());
-      assert(!dbmd.supportsPositionedUpdate());
+      assertTrue(!dbmd.supportsPositionedDelete());
+      assertTrue(!dbmd.supportsPositionedUpdate());
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
 
@@ -113,21 +113,27 @@ public class DatabaseMetaDataTest extends TestCase {
       Connection con = JDBC2Tests.openDB();
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
-      // these need double checking
-      assert(!dbmd.nullsAreSortedAtStart());
-      assert(dbmd.nullsAreSortedAtEnd());
-      assert(!dbmd.nullsAreSortedHigh());
-      assert(!dbmd.nullsAreSortedLow());
+	  // We need to type cast the connection to get access to the 
+	  // PostgreSQL-specific method haveMinimumServerVersion().
+	  // This is not available through the java.sql.Connection interface.
+	  assertTrue( con instanceof org.postgresql.Connection );
 
-      assert(dbmd.nullPlusNonNullIsNull());
+      assertTrue(!dbmd.nullsAreSortedAtStart());
+      assertTrue( dbmd.nullsAreSortedAtEnd() !=
+	  	((org.postgresql.Connection)con).haveMinimumServerVersion("7.2"));
+      assertTrue( dbmd.nullsAreSortedHigh() ==
+	  	((org.postgresql.Connection)con).haveMinimumServerVersion("7.2"));
+      assertTrue(!dbmd.nullsAreSortedLow());
 
-      assert(dbmd.supportsNonNullableColumns());
+      assertTrue(dbmd.nullPlusNonNullIsNull());
+
+      assertTrue(dbmd.supportsNonNullableColumns());
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
 
@@ -136,14 +142,14 @@ public class DatabaseMetaDataTest extends TestCase {
       Connection con = JDBC2Tests.openDB();
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
-      assert(!dbmd.usesLocalFilePerTable());
-      assert(!dbmd.usesLocalFiles());
+      assertTrue(!dbmd.usesLocalFilePerTable());
+      assertTrue(!dbmd.usesLocalFiles());
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
 
@@ -152,23 +158,23 @@ public class DatabaseMetaDataTest extends TestCase {
       Connection con = JDBC2Tests.openDB();
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
-      assert(!dbmd.supportsMixedCaseIdentifiers()); // always false
-      assert(dbmd.supportsMixedCaseQuotedIdentifiers());  // always true
+      assertTrue(!dbmd.supportsMixedCaseIdentifiers()); // always false
+      assertTrue(dbmd.supportsMixedCaseQuotedIdentifiers());  // always true
 
-      assert(!dbmd.storesUpperCaseIdentifiers());   // always false
-      assert(dbmd.storesLowerCaseIdentifiers());    // always true
-      assert(!dbmd.storesUpperCaseQuotedIdentifiers()); // always false
-      assert(!dbmd.storesLowerCaseQuotedIdentifiers()); // always false
-      assert(!dbmd.storesMixedCaseQuotedIdentifiers()); // always false
+      assertTrue(!dbmd.storesUpperCaseIdentifiers());   // always false
+      assertTrue(dbmd.storesLowerCaseIdentifiers());    // always true
+      assertTrue(!dbmd.storesUpperCaseQuotedIdentifiers()); // always false
+      assertTrue(!dbmd.storesLowerCaseQuotedIdentifiers()); // always false
+      assertTrue(!dbmd.storesMixedCaseQuotedIdentifiers()); // always false
 
-      assert(dbmd.getIdentifierQuoteString().equals("\""));
+      assertTrue(dbmd.getIdentifierQuoteString().equals("\""));
 
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
 
@@ -177,17 +183,17 @@ public class DatabaseMetaDataTest extends TestCase {
       Connection con = JDBC2Tests.openDB();
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
       // we can add columns
-      assert(dbmd.supportsAlterTableWithAddColumn());
+      assertTrue(dbmd.supportsAlterTableWithAddColumn());
 
       // we can't drop columns (yet)
-      assert(!dbmd.supportsAlterTableWithDropColumn());
+      assertTrue(!dbmd.supportsAlterTableWithDropColumn());
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
 
@@ -196,23 +202,25 @@ public class DatabaseMetaDataTest extends TestCase {
       Connection con = JDBC2Tests.openDB();
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
       // yes we can?: SELECT col a FROM a;
-      assert(dbmd.supportsColumnAliasing());
+      assertTrue(dbmd.supportsColumnAliasing());
 
       // yes we can have expressions in ORDERBY
-      assert(dbmd.supportsExpressionsInOrderBy());
+      assertTrue(dbmd.supportsExpressionsInOrderBy());
 
-      assert(!dbmd.supportsOrderByUnrelated());
+	  // Yes, an ORDER BY clause can contain columns that are not in the 
+	  // SELECT clause.
+      assertTrue(dbmd.supportsOrderByUnrelated());
 
-      assert(dbmd.supportsGroupBy());
-      assert(dbmd.supportsGroupByUnrelated());
-      assert(dbmd.supportsGroupByBeyondSelect()); // needs checking
+      assertTrue(dbmd.supportsGroupBy());
+      assertTrue(dbmd.supportsGroupByUnrelated());
+      assertTrue(dbmd.supportsGroupByBeyondSelect()); // needs checking
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
 
@@ -221,53 +229,53 @@ public class DatabaseMetaDataTest extends TestCase {
       Connection con = JDBC2Tests.openDB();
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
-      assert(dbmd.getURL().equals(JDBC2Tests.getURL()));
-      assert(dbmd.getUserName().equals(JDBC2Tests.getUser()));
+      assertTrue(dbmd.getURL().equals(JDBC2Tests.getURL()));
+      assertTrue(dbmd.getUserName().equals(JDBC2Tests.getUser()));
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
 
   public void testDbProductDetails() {
     try {
       Connection con = JDBC2Tests.openDB();
-      assert(con instanceof org.postgresql.Connection);
+      assertTrue(con instanceof org.postgresql.Connection);
       org.postgresql.Connection pc = (org.postgresql.Connection) con;
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
-      assert(dbmd.getDatabaseProductName().equals("PostgreSQL"));
-      assert(dbmd.getDatabaseProductVersion().startsWith(Integer.toString(pc.this_driver.getMajorVersion())+"."+Integer.toString(pc.this_driver.getMinorVersion())));
-      assert(dbmd.getDriverName().equals("PostgreSQL Native Driver"));
+      assertTrue(dbmd.getDatabaseProductName().equals("PostgreSQL"));
+      assertTrue(dbmd.getDatabaseProductVersion().startsWith(Integer.toString(pc.this_driver.getMajorVersion())+"."+Integer.toString(pc.this_driver.getMinorVersion())));
+      assertTrue(dbmd.getDriverName().equals("PostgreSQL Native Driver"));
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
 
   public void testDriverVersioning() {
     try {
       Connection con = JDBC2Tests.openDB();
-      assert(con instanceof org.postgresql.Connection);
+      assertTrue(con instanceof org.postgresql.Connection);
       org.postgresql.Connection pc = (org.postgresql.Connection) con;
 
       DatabaseMetaData dbmd = con.getMetaData();
-      assert(dbmd!=null);
+      assertNotNull(dbmd);
 
-      assert(dbmd.getDriverVersion().equals(pc.this_driver.getVersion()));
-      assert(dbmd.getDriverMajorVersion()==pc.this_driver.getMajorVersion());
-      assert(dbmd.getDriverMinorVersion()==pc.this_driver.getMinorVersion());
+      assertTrue(dbmd.getDriverVersion().equals(pc.this_driver.getVersion()));
+      assertTrue(dbmd.getDriverMajorVersion()==pc.this_driver.getMajorVersion());
+      assertTrue(dbmd.getDriverMinorVersion()==pc.this_driver.getMinorVersion());
 
 
       JDBC2Tests.closeDB(con);
     } catch(SQLException ex) {
-      assert(ex.getMessage(),false);
+      fail(ex.getMessage());
     }
   }
-}
\ No newline at end of file
+}