You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by db...@apache.org on 2016/05/02 18:11:49 UTC

[10/60] incubator-trafodion git commit: TRAFODION-1933 JDBC TYpe4 driver build scripts migrated to use maven instead of ant

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/72e17019/core/conn/jdbc_type4/src/org/trafodion/jdbc/t4/T4DatabaseMetaData.java
----------------------------------------------------------------------
diff --git a/core/conn/jdbc_type4/src/org/trafodion/jdbc/t4/T4DatabaseMetaData.java b/core/conn/jdbc_type4/src/org/trafodion/jdbc/t4/T4DatabaseMetaData.java
deleted file mode 100644
index d3b916d..0000000
--- a/core/conn/jdbc_type4/src/org/trafodion/jdbc/t4/T4DatabaseMetaData.java
+++ /dev/null
@@ -1,5901 +0,0 @@
-// @@@ START COPYRIGHT @@@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-// @@@ END COPYRIGHT @@@
-
-package org.trafodion.jdbc.t4;
-
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
-import java.sql.RowIdLifetime;
-import java.sql.SQLException;
-import java.sql.Types;
-import java.util.logging.Level;
-import java.util.logging.LogRecord;
-
-/**
- * <p>
- * JDBC Type 4 driver DataBaseMetaData class.
- * </p>
- * Comprehensive information about the database and Type 4 driver as
- * a whole. This class lets applications users know the capabilities of database
- * in combination with the Type 4 driver. Information returned
- * by methods in this class applies to the capabilities of a Type 4 driver and
- * Database working together. A user for this class is commonly a
- * tool that needs to discover how to deal with the underlying 
- * Database. This is especially true for applications that are intended to be
- * used with more than one DBMS. For example, a tool might use the method
- * <code>getTypeInfo</code> to find out what data types can be used in a
- * CREATE TABLE statement. Or a user might call the method
- * <code>supportsCorrelatedSubqueries</code> to see if it is possible to use a
- * correlated subquery or <code>supportsBatchUpdates</code> to see if it is
- * possible to use batch updates. Some DatabaseMetaData methods return lists of
- * information in the form of ResultSet objects. Regular ResultSet methods, such
- * as getString and getInt, can be used to retrieve the data from these
- * ResultSet objects. If a given form of metadata is not available, the
- * ResultSet getter methods throw an SQLException. Some DatabaseMetaData methods
- * take arguments that are String patterns. These arguments all have names such
- * as fooPattern. Within a pattern String, "%" means match any substring of 0 or
- * more characters, and "_" means match any one character. Only metadata entries
- * matching the search pattern are returned. If a search pattern argument is set
- * to null, that argument's criterion will be dropped from the search. A method
- * that gets information about a feature that the Type 4 driver does not support
- * will throw an SQLException. In the case of methods that return a ResultSet
- * object, either a ResultSet object (which might be empty) is returned, or an
- * SQLException is thrown.
- * 
- * <p>
- * Description: JDBC Type 4 Driver
- * </p>
- * <p>
- * </p>
- */
-public class T4DatabaseMetaData extends HPT4Handle implements java.sql.DatabaseMetaData {
-
-	// ----------------------------------------------------------------------
-	// First, a variety of minor information about the target database.
-
-	/*
-	 * Can all the procedures returned by getProcedures be called by the current
-	 * user?
-	 * 
-	 * @return true if so
-	 */
-	public boolean allProceduresAreCallable() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "allProceduresAreCallable", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("allProceduresAreCallable");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Can all the tables returned by getTable be SELECTed by the current user?
-	 * 
-	 * @return true if so
-	 */
-	public boolean allTablesAreSelectable() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "allTablesAreSelectable", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("allTablesAreSelectable");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * What's the url for this database?
-	 * 
-	 * @return the url or null if it can't be generated * "TCP:<hostname>:<portnumber>/JDBC"
-	 * is good enough.
-	 */
-	public String getURL() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getURL", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getURL");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return connection_.getT4Properties().getUrl();
-	}
-
-	/*
-	 * What's our user name as known to the database?
-	 * 
-	 * @return our database user name *
-	 * 
-	 */
-	public String getUserName() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getUserName", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getUserName");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return connection_.getServerHandle().getUid();
-	}
-
-	/*
-	 * Is the database in read-only mode?
-	 * 
-	 * @return true if so *
-	 * 
-	 */
-	public boolean isReadOnly() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "isReadOnly", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("isReadOnly");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Are NULL values sorted high?
-	 * 
-	 * @return true if so
-	 * 
-	 */
-	public boolean nullsAreSortedHigh() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "nullsAreSortedHigh", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("nullsAreSortedHigh");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Are NULL values sorted low?
-	 * 
-	 * @return true if so
-	 */
-	public boolean nullsAreSortedLow() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "nullsAreSortedLow", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("nullsAreSortedLow");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Are NULL values sorted at the start regardless of sort order?
-	 * 
-	 * @return true if so
-	 */
-	public boolean nullsAreSortedAtStart() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "nullsAreSortedAtStart", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("nullsAreSortedAtStart");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Are NULL values sorted at the end regardless of sort order?
-	 * 
-	 * @return true if so
-	 */
-	public boolean nullsAreSortedAtEnd() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "nullsAreSortedAtEnd", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("nullsAreSortedAtEnd");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * What's the name of this database product?
-	 * 
-	 * @return database product name
-	 */
-	public String getDatabaseProductName() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getDatabaseProductName", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getDatabaseProductName");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String("Trafodion");
-	}
-
-	/*
-	 * What's the version of this database product?
-	 * 
-	 * @return database version *
-	 * 
-	 */
-	public String getDatabaseProductVersion() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getDatabaseProductVersion", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getDatabaseProductVersion");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String("" + getDatabaseMajorVersion() + "." + getDatabaseMinorVersion());
-	}
-
-	/*
-	 * What's the name of this JDBC driver?
-	 * 
-	 * @return JDBC driver name
-	 */
-	public String getDriverName() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getDriverName", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getDriverName");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String("org.trafodion.jdbc.t4.T4Driver");
-	}
-
-	/*
-	 * What's the version of this JDBC driver?
-	 * 
-	 * @return JDBC driver version
-	 */
-	public String getDriverVersion() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getDriverVersion", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getDriverVersion");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return Vproc.getVproc();
-	}
-
-	/*
-	 * What's this JDBC driver's major version number?
-	 * 
-	 * @return JDBC driver major version
-	 */
-	public int getDriverMajorVersion() {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getDriverMajorVersion", "", p);
-		}
-		try {
-			if (connection_.props_.getLogWriter() != null) {
-				LogRecord lr = new LogRecord(Level.FINE, "");
-				Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-				lr.setParameters(p);
-				lr.setSourceClassName("T4DatabaseMetaData");
-				lr.setSourceMethodName("getDriverMajorVersion");
-				T4LogFormatter lf = new T4LogFormatter();
-				String temp = lf.format(lr);
-				connection_.props_.getLogWriter().println(temp);
-			}
-		} catch (SQLException se) {
-			// ignore
-		}
-                return Vproc.jdbcMajorVersion;
-	}
-
-	/*
-	 * What's this JDBC driver's minor version number?
-	 * 
-	 * @return JDBC driver minor version number
-	 */
-	public int getDriverMinorVersion() {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getDriverMinorVersion", "", p);
-		}
-		try {
-			if (connection_.props_.getLogWriter() != null) {
-				LogRecord lr = new LogRecord(Level.FINE, "");
-				Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-				lr.setParameters(p);
-				lr.setSourceClassName("T4DatabaseMetaData");
-				lr.setSourceMethodName("getDriverMinorVersion");
-				T4LogFormatter lf = new T4LogFormatter();
-				String temp = lf.format(lr);
-				connection_.props_.getLogWriter().println(temp);
-			}
-		} catch (SQLException se) {
-			// ignore
-		}
-                return Vproc.jdbcMinorVersion;
-	}
-
-	/*
-	 * Does the database store tables in a local file?
-	 * 
-	 * @return true if so
-	 */
-	public boolean usesLocalFiles() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "usesLocalFiles", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("usesLocalFiles");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Does the database use a file for each table?
-	 * 
-	 * @return true if the database uses a local file for each table
-	 */
-	public boolean usesLocalFilePerTable() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "usesLocalFilePerTable", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("usesLocalFilePerTable");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Database does not treat the mixed case unquoted SQL
-	 * identifiers as case sensitive and does not store the result in mixed
-	 * case.
-	 * 
-	 * @return false always for the Type 4 driver.
-	 */
-	public boolean supportsMixedCaseIdentifiers() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_
-					.logp(Level.FINE, "T4DatabaseMetaData", "supportsMixedCaseIdentifiers", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsMixedCaseIdentifiers");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Database treat mixed case unquoted SQL identifiers as case
-	 * insensitive and store them in upper case.
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean storesUpperCaseIdentifiers() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "storesUpperCaseIdentifiers", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("storesUpperCaseIdentifiers");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Does the database treat mixed case unquoted SQL identifiers as case
-	 * insensitive and store them in lower case?
-	 * 
-	 * @return true if so
-	 */
-	public boolean storesLowerCaseIdentifiers() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "storesLowerCaseIdentifiers", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("storesLowerCaseIdentifiers");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Does the database treat mixed case unquoted SQL identifiers as case
-	 * insensitive and store them in mixed case?
-	 * 
-	 * @return true if so
-	 */
-	public boolean storesMixedCaseIdentifiers() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "storesMixedCaseIdentifiers", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("storesMixedCaseIdentifiers");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Database treat mixed case quoted SQL identifiers as case
-	 * sensitive and as a result store them in mixed case.
-	 * A JDBC-Compliant driver will always return false.
-	 * 
-	 * @return true always true for the Type 4 drive.
-	 */
-	public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsMixedCaseQuotedIdentifiers",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsMixedCaseQuotedIdentifiers");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Does the database treat mixed case quoted SQL identifiers as case
-	 * insensitive and store them in upper case?
-	 * 
-	 * @return true if so
-	 */
-	public boolean storesUpperCaseQuotedIdentifiers() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "storesUpperCaseQuotedIdentifiers",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("storesUpperCaseQuotedIdentifiers");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Does the database treat mixed case quoted SQL identifiers as case
-	 * insensitive and store them in lower case?
-	 * 
-	 * @return true if so
-	 */
-	public boolean storesLowerCaseQuotedIdentifiers() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "storesLowerCaseQuotedIdentifiers",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("storesLowerCaseQuotedIdentifiers");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Does the database treat mixed case quoted SQL identifiers as case
-	 * insensitive and store them in mixed case?
-	 * 
-	 * @return true if so
-	 */
-	public boolean storesMixedCaseQuotedIdentifiers() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", " storesMixedCaseQuotedIdentifiers",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName(" storesMixedCaseQuotedIdentifiers");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Database uses the " string to quote SQL identifiers. This call
-	 * returns a space " " if identifier quoting isn't supported.
-	 * A JDBC-Compliant driver always uses a double quote character.
-	 * 
-	 * @return the quoting string ".
-	 */
-	public String getIdentifierQuoteString() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getIdentifierQuoteString", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getIdentifierQuoteString");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String("\"");
-	}
-
-	/*
-	 * Get a comma separated list of all a database's SQL keywords that are NOT
-	 * also SQL92 keywords.
-	 * 
-	 * @return the list *
-	 * 
-	 */
-	public String getSQLKeywords() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getSQLKeywords", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getSQLKeywords");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return "DATETIME,FRACTION,PROTOTYPE,SQL_CHAR,SQL_DATE,SQL_DECIMAL,SQL_DOUBLE,SQL_FLOAT"
-				+ ",SQL_INT,SQL_INTEGER,SQL_REAL,SQL_SMALLINT,SQL_TIME,SQL_TIMESTAMP,SQL_VARCHAR"
-				+ ",TRANSPOSE,UPSHIFT";
-	}
-
-	/*
-	 * Get a comma separated list of math functions.
-	 * 
-	 * @return the list *
-	 * 
-	 */
-	public String getNumericFunctions() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getNumericFunctions", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getNumericFunctions");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String(
-				"ABS,ACOS,ASIN,ATAN,ATAN2,CEILING,COS,COSH,DEGREES,EXP,FLOOR,LOG,LOG10,MOD,PI,POWER,RADIANS,RAND"
-						+ "SIGN,SIN,SINH,SORT,TAN,TANH");
-	}
-
-	/*
-	 * Get a comma separated list of string functions.
-	 * 
-	 * @return the list *
-	 * 
-	 */
-	public String getStringFunctions() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getStringFunctions", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getStringFunctions");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String("ASCII,CHAR,CHAR_LENGTH,CONCAT,INSERT,LCASE,LEFT,LOCATE,LOWER,LPAD,LTRIM,OCTET_LENGTH"
-				+ "POSITION,REPEAT,REPLACE,RIGHT,RPAD,RTRIM,SPACE,SUBSTRING,TRIM,UCASE,UPPER,UPSHIFT");
-	}
-
-	/*
-	 * Get a comma separated list of system functions.
-	 * 
-	 * @return the list *
-	 * 
-	 */
-	public String getSystemFunctions() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getSystemFunctions", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getSystemFunctions");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String("CURRENT_USER,USER");
-	}
-
-	/*
-	 * Get a comma separated list of time and date functions.
-	 * 
-	 * @return the list *
-	 * 
-	 */
-	public String getTimeDateFunctions() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getTimeDateFunctions", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getTimeDateFunctions");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-
-		return new String("CONVERTTIMESTAMP,CURRENT,CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP"
-				+ "DATEFORMAT,DAY,DAYNAME,DAYOFMONTH,DAYOFWEEK,DAYOFYEAR,EXTRACT,HOUR,JULIANTIMESTAMP,MINUTE"
-				+ "MONTH,MONTHNAME,QUARTER,SECOND,WEEK,YEAR");
-	}
-
-	/*
-	 * This is the string that can be used to escape '_' or '%' in the string
-	 * pattern style catalog search parameters.
-	 * 
-	 * <P>The '_' character represents any single character. <P>The '%'
-	 * character represents any sequence of zero or more characters. @return the
-	 * string used to escape wildcard characters *
-	 * 
-	 */
-	public String getSearchStringEscape() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getSearchStringEscape", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getSearchStringEscape");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String("\\");
-	}
-
-	/*
-	 * Get all the "extra" characters that can be used in unquoted identifier
-	 * names (those beyond a-z, A-Z, 0-9 and _).
-	 * 
-	 * @return the string containing the extra characters
-	 */
-	public String getExtraNameCharacters() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getExtraNameCharacters", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getExtraNameCharacters");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return null;
-	}
-
-	// --------------------------------------------------------------------
-	// Functions describing which features are supported.
-
-	/*
-	 * Is "ALTER TABLE" with add column supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsAlterTableWithAddColumn() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsAlterTableWithAddColumn",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsAlterTableWithAddColumn");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Is "ALTER TABLE" with drop column supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsAlterTableWithDropColumn() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsAlterTableWithDropColumn",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsAlterTableWithDropColumn");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Is column aliasing supported?
-	 * 
-	 * <P>If so, the SQL AS clause can be used to provide names for computed
-	 * columns or to provide alias names for columns as required.
-	 * 
-	 * A JDBC-Compliant driver always returns true.
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsColumnAliasing() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsColumnAliasing", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsColumnAliasing");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Database concatenations between NULL and non-NULL values is
-	 * NULL.
-	 * 
-	 * A JDBC-Compliant driver always returns true.
-	 * 
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean nullPlusNonNullIsNull() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "nullPlusNonNullIsNull", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("nullPlusNonNullIsNull");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Is the CONVERT function between SQL types supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsConvert() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsConvert", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsConvert");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Is CONVERT between the given SQL types supported?
-	 * 
-	 * @param fromType the type to convert from @param toType the type to
-	 * convert to @return true if so
-	 * 
-	 * @see Types
-	 */
-	public boolean supportsConvert(int fromType, int toType) throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, fromType, toType);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsConvert", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_, fromType, toType);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsConvert");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		switch (fromType) {
-		case Types.BIGINT:
-		case Types.DECIMAL:
-		case Types.DOUBLE:
-		case Types.FLOAT:
-		case Types.INTEGER:
-		case Types.NUMERIC:
-		case Types.REAL:
-		case Types.SMALLINT:
-			switch (toType) {
-			case Types.CHAR:
-			case Types.NUMERIC:
-			case Types.DECIMAL:
-			case Types.INTEGER:
-			case Types.SMALLINT:
-			case Types.FLOAT:
-			case Types.REAL:
-			case Types.DOUBLE:
-			case Types.VARCHAR:
-			case Types.LONGVARCHAR:
-			case Types.BIGINT:
-				return true;
-			default:
-				return false;
-			}
-		case Types.CHAR:
-		case Types.VARCHAR:
-		case Types.LONGVARCHAR:
-			switch (toType) {
-			case Types.CHAR:
-			case Types.NUMERIC:
-			case Types.DECIMAL:
-			case Types.INTEGER:
-			case Types.SMALLINT:
-			case Types.FLOAT:
-			case Types.REAL:
-			case Types.DOUBLE:
-			case Types.VARCHAR:
-			case Types.LONGVARCHAR:
-			case Types.BIGINT:
-			case Types.DATE:
-			case Types.TIME:
-			case Types.TIMESTAMP:
-				return true;
-			default:
-				return false;
-			}
-		case Types.DATE:
-			switch (toType) {
-			case Types.CHAR:
-			case Types.VARCHAR:
-			case Types.LONGVARCHAR:
-			case Types.DATE:
-			case Types.TIMESTAMP:
-				return true;
-			default:
-				return false;
-			}
-		case Types.TIME:
-			switch (toType) {
-			case Types.CHAR:
-			case Types.VARCHAR:
-			case Types.LONGVARCHAR:
-			case Types.TIME:
-			case Types.TIMESTAMP:
-				return true;
-			default:
-				return false;
-			}
-		case Types.TIMESTAMP:
-			switch (toType) {
-			case Types.CHAR:
-			case Types.VARCHAR:
-			case Types.LONGVARCHAR:
-			case Types.DATE:
-			case Types.TIME:
-			case Types.TIMESTAMP:
-				return true;
-			default:
-				return false;
-			}
-		case Types.BIT:
-		case Types.BINARY:
-		case Types.VARBINARY:
-		case Types.LONGVARBINARY:
-		case Types.TINYINT:
-			return false;
-		default:
-			return false;
-		}
-	}
-
-	/*
-	 * Type 4 driver supports table correlation names. Type 4 driver always
-	 * returns true.
-	 * 
-	 * @return true for Type 4 driver
-	 */
-	public boolean supportsTableCorrelationNames() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsTableCorrelationNames", "",
-					p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsTableCorrelationNames");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Database table correlation names are supported, and they are
-	 * not restricted to be different from the names of the Database
-	 * tables.
-	 * 
-	 * @return false always for Type 4 driver.
-	 */
-	public boolean supportsDifferentTableCorrelationNames() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData",
-					"supportsDifferentTableCorrelationNames", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsDifferentTableCorrelationNames");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * SQL expressions in "ORDER BY" lists are not supported by the
-	 * Database and Type 4 driver.
-	 * 
-	 * @return false always for Type 4 driver.
-	 */
-	public boolean supportsExpressionsInOrderBy() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_
-					.logp(Level.FINE, "T4DatabaseMetaData", "supportsExpressionsInOrderBy", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsExpressionsInOrderBy");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Can an "ORDER BY" clause use columns not in the SELECT?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsOrderByUnrelated() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsOrderByUnrelated", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsOrderByUnrelated");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Is some form of "GROUP BY" clause supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsGroupBy() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsGroupBy", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsGroupBy");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can a "GROUP BY" clause use columns not in the SELECT?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsGroupByUnrelated() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsGroupByUnrelated", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsGroupByUnrelated");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Can a "GROUP BY" clause add columns not in the SELECT provided it
-	 * specifies all the columns in the SELECT?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsGroupByBeyondSelect() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsGroupByBeyondSelect", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsGroupByBeyondSelect");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Database supports escape character in "LIKE" clauses.
-	 * A JDBC-Compliant driver always returns true.
-	 * 
-	 * @return true always true for the Type 4 driver.
-	 */
-	public boolean supportsLikeEscapeClause() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsLikeEscapeClause", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsLikeEscapeClause");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Are multiple ResultSets from a single execute supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsMultipleResultSets() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsMultipleResultSets", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsMultipleResultSets");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can we have multiple transactions open at once (on different
-	 * connections)?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsMultipleTransactions() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_
-					.logp(Level.FINE, "T4DatabaseMetaData", "supportsMultipleTransactions", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsMultipleTransactions");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}		
-		// Need to change it 'true' once Database fixes this problem
-		return false;
-	}
-
-	/*
-	 * Database table columns can be defined as non-nullable.
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean supportsNonNullableColumns() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsNonNullableColumns", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsNonNullableColumns");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Type 4 driver supports the ODBC Minimum SQL grammar.
-	 * 
-	 * All JDBC-Compliant drivers must return true.
-	 * 
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean supportsMinimumSQLGrammar() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsMinimumSQLGrammar", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsMinimumSQLGrammar");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Is the ODBC Core SQL grammar supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsCoreSQLGrammar() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsCoreSQLGrammar", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsCoreSQLGrammar");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Is the ODBC Extended SQL grammar supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsExtendedSQLGrammar() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsExtendedSQLGrammar", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsExtendedSQLGrammar");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Database supports the ANSI92 entry level SQL grammar.
-	 * All JDBC-Compliant drivers must return true.
-	 * 
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean supportsANSI92EntryLevelSQL() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsANSI92EntryLevelSQL", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsANSI92EntryLevelSQL");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Is the ANSI92 intermediate SQL grammar supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsANSI92IntermediateSQL() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsANSI92IntermediateSQL", "",
-					p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsANSI92IntermediateSQL");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Is the ANSI92 full SQL grammar supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsANSI92FullSQL() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsANSI92FullSQL", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsANSI92FullSQL");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Is the SQL Integrity Enhancement Facility supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsIntegrityEnhancementFacility() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData",
-					"supportsIntegrityEnhancementFacility", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsIntegrityEnhancementFacility");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Is some form of outer join supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsOuterJoins() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsOuterJoins", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsOuterJoins");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Are full nested outer joins supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsFullOuterJoins() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsFullOuterJoins", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsFullOuterJoins");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Database provides the limited support for outer joins. This
-	 * will be true if supportFullOuterJoins is true.
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean supportsLimitedOuterJoins() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsLimitedOuterJoins", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsLimitedOuterJoins");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * What's the database vendor's preferred term for "schema"?
-	 * 
-	 * @return the vendor term
-	 */
-	public String getSchemaTerm() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getSchemaTerm", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getSchemaTerm");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String("SCHEMA");
-	}
-
-	/*
-	 * What's the database vendor's preferred term for "procedure"?
-	 * 
-	 * @return the vendor term
-	 */
-	public String getProcedureTerm() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getProcedureTerm", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getProcedureTerm");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String("PROCEDURE");
-	}
-
-	/*
-	 * What's the database vendor's preferred term for "catalog"?
-	 * 
-	 * @return the vendor term
-	 */
-	public String getCatalogTerm() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getCatalogTerm", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getCatalogTerm");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String("CATALOG");
-	}
-
-	/*
-	 * Database catalog name appear at the start of a qualified table
-	 * name. (Otherwise it appears at the end)
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean isCatalogAtStart() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "isCatalogAtStart", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("isCatalogAtStart");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * What's the separator between catalog and table name?
-	 * 
-	 * @return the separator string
-	 */
-	public String getCatalogSeparator() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "getCatalogSeparator", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("getCatalogSeparator");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return new String(".");
-	}
-
-	/*
-	 * Can a schema name be used in a data manipulation statement?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsSchemasInDataManipulation() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsSchemasInDataManipulation",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsSchemasInDataManipulation");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can a schema name be used in a procedure call statement?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsSchemasInProcedureCalls() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsSchemasInProcedureCalls",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsSchemasInProcedureCalls");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can a schema name be used in a table definition statement?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsSchemasInTableDefinitions() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsSchemasInTableDefinitions",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsSchemasInTableDefinitions");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can a schema name be used in an index definition statement?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsSchemasInIndexDefinitions() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsSchemasInIndexDefinitions",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsSchemasInIndexDefinitions");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can a schema name be used in a privilege definition statement?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData",
-					"supportsSchemasInPrivilegeDefinitions", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsSchemasInPrivilegeDefinitions");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can a catalog name be used in a data manipulation statement?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsCatalogsInDataManipulation() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsCatalogsInDataManipulation",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsCatalogsInDataManipulation");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can a catalog name be used in a procedure call statement?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsCatalogsInProcedureCalls() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsCatalogsInProcedureCalls",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsCatalogsInProcedureCalls");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can a catalog name be used in a table definition statement?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsCatalogsInTableDefinitions() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsCatalogsInTableDefinitions",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsCatalogsInTableDefinitions");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can a catalog name be used in an index definition statement?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsCatalogsInIndexDefinitions() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsCatalogsInIndexDefinitions",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsCatalogsInIndexDefinitions");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can a catalog name be used in a privilege definition statement?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData",
-					"supportsCatalogsInPrivilegeDefinitions", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsCatalogsInPrivilegeDefinitions");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Is positioned DELETE supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsPositionedDelete() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsPositionedDelete", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsPositionedDelete");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Database supports positioned UPDATE supported through the Type
-	 * 4 driver.
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean supportsPositionedUpdate() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsPositionedUpdate", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsPositionedUpdate");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Database supports SELECT for UPDATE through the Type 4 driver.
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean supportsSelectForUpdate() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsSelectForUpdate", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsSelectForUpdate");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * stored procedure calls using the stored procedure escape syntax
-	 * are supported.
-	 * 
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean supportsStoredProcedures() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsStoredProcedures", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsStoredProcedures");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Trafodion Database Database subqueries in comparison expressions are supported
-	 * through the Type 4 driver.
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean supportsSubqueriesInComparisons() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsSubqueriesInComparisons",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsSubqueriesInComparisons");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Trafodion Database supports subqueries in 'exists' expressions through
-	 * Type 4 driver.
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean supportsSubqueriesInExists() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsSubqueriesInExists", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsSubqueriesInExists");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Trafodion Database supports subqueries in 'in' statements through the
-	 * Type 4 driver.
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean supportsSubqueriesInIns() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsSubqueriesInIns", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsSubqueriesInIns");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * The subqueries in quantified expressions supported in Trafodion Database
-	 * and Type 4 driver.
-	 * @return true always for Type 4 driver.
-	 */
-	public boolean supportsSubqueriesInQuantifieds() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsSubqueriesInQuantifieds",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsSubqueriesInQuantifieds");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Trafodion Database supports correlated subqueries.
-	 * A JDBC-Compliant driver always returns true.
-	 * 
-	 * @return true always for the Type 4 driver.
-	 */
-	public boolean supportsCorrelatedSubqueries() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_
-					.logp(Level.FINE, "T4DatabaseMetaData", "supportsCorrelatedSubqueries", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsCorrelatedSubqueries");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Is SQL UNION supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsUnion() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsUnion", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsUnion");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Is SQL UNION ALL supported?
-	 * 
-	 * @return true if so
-	 */
-	public boolean supportsUnionAll() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsUnionAll", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsUnionAll");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can cursors remain open across commits?
-	 * 
-	 * @return true if cursors always remain open; false if they might not
-	 * remain open
-	 */
-	public boolean supportsOpenCursorsAcrossCommit() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsOpenCursorsAcrossCommit",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsOpenCursorsAcrossCommit");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Can cursors remain open across rollbacks?
-	 * 
-	 * @return true if cursors always remain open; false if they might not
-	 * remain open
-	 */
-	public boolean supportsOpenCursorsAcrossRollback() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsOpenCursorsAcrossRollback",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsOpenCursorsAcrossRollback");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return false;
-	}
-
-	/*
-	 * Can statements remain open across commits?
-	 * 
-	 * @return true if statements always remain open; false if they might not
-	 * remain open
-	 */
-	public boolean supportsOpenStatementsAcrossCommit() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData", "supportsOpenStatementsAcrossCommit",
-					"", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsOpenStatementsAcrossCommit");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	/*
-	 * Can statements remain open across rollbacks?
-	 * 
-	 * @return true if statements always remain open; false if they might not
-	 * remain open
-	 */
-	public boolean supportsOpenStatementsAcrossRollback() throws SQLException {
-		if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) {
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			connection_.props_.t4Logger_.logp(Level.FINE, "T4DatabaseMetaData",
-					"supportsOpenStatementsAcrossRollback", "", p);
-		}
-		if (connection_.props_.getLogWriter() != null) {
-			LogRecord lr = new LogRecord(Level.FINE, "");
-			Object p[] = T4LoggingUtilities.makeParams(connection_.props_);
-			lr.setParameters(p);
-			lr.setSourceClassName("T4DatabaseMetaData");
-			lr.setSourceMethodName("supportsOpenStatementsAcrossRollback");
-			T4LogFormatter lf = new T4LogFormatter();
-			String temp = lf.format(lr);
-			connection_.props_.getLogWriter().println(temp);
-		}
-		return true;
-	}
-
-	// ---------------------------------------------------------

<TRUNCATED>