JDBC APIで定義されているConnection.getMetaData()のC/Jにおける実装の件

JDBC APIはこちら.
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/sql/Connection.html#getMetaData()
C/J実装ではver5.0.7以上でDatabaseMetaDataUsingInfoSchemaクラスを使うってなっているけど,ver5.0.7で何かあったんだっけ.

/**
 * A connection's database is able to provide information describing its
 * tables, its supported SQL grammar, its stored procedures, the
 * capabilities of this connection, etc. This information is made available
 * through a DatabaseMetaData object.
 * 
 * @return a DatabaseMetaData object for this connection
 * @exception SQLException
 *                if a database access error occurs
 */
public java.sql.DatabaseMetaData getMetaData() throws SQLException {
    checkClosed();

    if (getUseInformationSchema() &&
            this.versionMeetsMinimum(5, 0, 7)) {
        return new DatabaseMetaDataUsingInfoSchema(this, this.database);
    }
        
    return new DatabaseMetaData(this, this.database);
}

DatabaseMetaDataUsingInfoSchemaクラスのコメント見てもver5.0からInformationSchema使うとだけしか書いてない.

/**
 * DatabaseMetaData implementation that uses INFORMATION_SCHEMA available in
 * MySQL-5.0 and newer.
 * 
 * The majority of the queries in this code were built for Connector/OO.org by
 * Georg Richter (georg_at_mysql.com).
 */
public class DatabaseMetaDataUsingInfoSchema extends DatabaseMetaData {

Connector/OO.orgってなんだ.OpenOfficeのことのような気がするんだけど.



DatabaseMetaDataUsingInfoSchemaクラスはどうやらC/J5.0.0で追加されたクラスである模様.今日の時点ではConnectionPropertiesクラスに実装はされているものの接続プロパティに"useInformationSchema=true"と指定しても解析の対象にならない.Connectionオブジェクトを"com.mysql.jdbc"パッケージにキャストしてsetterメソッドで直接指定する必要あり. ←間違い.解析されます.

あとはConnection.getMetaDataで取得していろいろ操作すればよい.基本的にDatabaseMetaDataUsingInfoSchemaクラスはDatabaseMetaDataクラスの一部のメソッドをオーバーライドしているだけ.



サーバ側にはMySQLver5.0.2から実装せていると書いてある.
http://dev.mysql.com/doc/mysql/en/information-schema.html