8.3.0201

最近コミットしたいくつかの修正の覚書

  1. GUID型のサポート ODBC3.5xサポートで手抜きしていた部分。Jan-Willem Goossens氏のコードをお借りして実装。
  2. 昨年10月29日の修正3にからむバグの修正
  3. 初めて64ビットドライバのバグレポートがあり、mylogから推測した修正を試してもらう。パラメーター配列におけるバッファ長インジケーターのアドレスシフト処理に32ビットの名残りが残っており、64ビットでも通用する形に修正した。
  4. サーバー側の外部キーの実装に変更があったようでSQLForeignKeys()が情報を返さなくなってしまった。とりあえず8.3以後についてのみ違う実装に変更した。コードそのものは新方式の方が旧方式よりずっとシンプルで、問題ないようなら8.0位から適用するかもしれない。実装用のSQLに初めてgenerate_series()関数を使ってみました。
  5. Use Declare/Fetchモードでは、カーソルを使用しやすくするため、自動コミットモードであっても内部的にトランザクションを発生させている。そして関連カーソルがすべて閉じられた時にそのトランザクションを終了するようにしている。しかしすべて閉じられたという判定に誤りがありオープンカーソルがあるにもかかわらずトランザクションを終了させてしまうケースがあり、これを修正した。致命的なバグとはいえないかもしれないがもしかしたらパフォーマンスにはかなり影響があったかもしれない。