2023.03.24

MariaDB

MariaDB Connector/J 3.1.3 GA版(リリース日:2023年3月22日)

修正された問題

  • CredentialPluginインターフェイスを使用してカスタム認証情報プラグインを実装すると、競合状態が原因でマルチスレッド環境で接続エラーが発生する可能性があります。
    • Connector/J 3.0および3.1の以前のリリースでは、複数のスレッドが同じ静的ServiceLoaderインスタンスを使用して複数のCredentialPluginインスタンスをロードしようとする可能性があり、スレッド間で競合状態が発生していました。
    • このリリース以降、スレッドがCredentialPluginインスタンスをロードしようとすると、スレッドは独自に使用する新しいServiceLoaderインスタンスを動的に作成するため、複数のスレッドが同じインスタンスを使用することはありません。
  • Unixドメインソケットに接続している場合、パケットサイズが32Kを超えると、Connector/Jは正しくないデータを読み取ります。
  • バイナリプロトコルでは、TIME列の値が00:00:00の時、値が正しくデコードされません。
  • org.mariadb.jdbc.Statementクラスは、JDBC 4.3 APIからの様々な引用関連のメソッドを実装していません。
    • Connector/J 3.0および3.1の以前のリリースでは、JDBC APIのデフォルトの引用関連のメソッドが使用されているため、誤った引用文字が使用される可能性があります。
    • このリリース以降、次の引用関連のメソッドがorg.mariadb.jdbc.Statementクラスに実装されています:
      ・String enquoteLiteral(String val)
      ・String enquoteIdentifier(String identifier, boolean alwaysQuote)
      ・String enquoteNCharLiteral(String val)
      ・boolean isSimpleIdentifier(String identifier)
  • BIT(1)列が照会され、transformedBitIsBooleanパラメータが無効になっている場合、Connector/Jはデフォルトの列メタデータをBITではなくBOOLEANに設定します。
  • TlsSocketPluginインターフェイスを使用してTLSプラグインを実装すると、競合状態によってエラーが発生する可能性があります。
    • 以前のリリースでは、現在のスレッドのクラスローダーを使用してTlsSocketPluginインスタンスをロードしていました。そのため、一部のスレッドで次のようなエラーが発生していました:
      Client has not found any TLS factory plugin with name 'NAME'
    • このリリース以降、Connector/Jの内部クラスローダーを使用してTlsSocketPluginインスタンスをロードするようになりました。
  • DatabaseMetadata.getTypeInfo()メソッドを使用してデータ型のメタデータを返すと、UNSIGNED_ATTRIBUTE列に正しくない値が返されます。
    • 以前のリリースでは、UNSIGNED_ATTRIBUTE列は常にtrueでした。
    • このリリース以降、UNSIGNED_ATTRIBUTE列は、数値列がUNSIGNED属性で定義されている場合にのみtrueになります。

MariaDB Connector/J 3.1.3のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/server/release-notes/mariadb-connector-j-3-1/3-1-3/


MariaDBプロダクト・サポート・サービス

MariaDB
MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。