SQLite Integration 1.7 リリース

English version is available in SQLite Integration 1.7 release

変更点

SQLite Integration 1.7 をリリースしました。変更点は次のとおりです。

  1. WordPress 4.0 での変更に対応しました。
  2. メモリ使用率をチェックできるようにしました。
  3. pcre.backtrack_limit が大きな値に設定されている場合、上限まで処理を続けるようにしました。
  4. テーブル作成クエリのバグを修正しました。
  5. メタクエリの BETWEEN の扱いを変更しました。
  6. ビジュアル・エディタで添付ファイルの並べ替えがうまくできなかかったのを修正しました。

変更点について

WordPress 4.0 では、大きな変更はありませんが、関数の移動や、wpdb クラスの内部変更がありました。これに合わせるための変更が SQLite Integration にも入りました。古いバージョンのまま WordPress 4.0 を使うと、LIKE クエリが正常に動作しないかもしれません。アップグレードすることをお勧めします。その他の変更は、下のとおりです。

destructor が呼ばれたときに、メモリ使用率が 90% を越えている場合、ファイルに書きだすオプションをつけました。通常は必要ないと思いますが、support forum にて、アロケートされたメモリを使い切るという現象が報告されていたので、テストするために加えたコードですが、エラーを再現できなかったので、どこかで同じような現象が起こったときに使うつもりでそのままにしてあります。通常の利用には何の効果もありません。

pcre.backtrack_limit を大きな値に設定している場合、そちらを優先するようにしました。現状では、PHP のデフォルトで不足の場合、100 倍まで引き上げて処理をしますが、莫大な値を設定している例がフォーラムに上がったので、それに対応するようにしました。

メタクエリの compare に BETWEEN を設定したときの動作を少し変更しました。若干スピードアップしたはずですが、safe mode の壁を乗り越えられるかどうかはわかりません。これもフォーラムでの議論がもとになっています。

ビジュアル・エディタで添付ファイルを並べ替えたとき、それが保存されないバグを修正しました。こちらは、日本語フォーラムでの報告で判明しました。

上の修正を入れたときに、PHP 5.2.x では使えないコードが紛れ込みました。該当のバージョンをお使いの場合は、query.class.php の該当部分をを修正してお使いください。

ここを下のように修正します。

メンテナのテスト環境は PHP 5.5 なので、5.2.x のテストができません。できれば、PHP のバージョンは、5.3 以上をお使いいただくのがお勧めです。

インストール・アップグレードの注意

WordPress 4.0 から、インストール・プロセスが若干変更になりました。ルート・ディレクトリに wp-config-sample.php だけで、wp-config.php が存在しない場合、wp-config.php の作成に失敗します。このバージョンでは、wp-config.php をあらかじめ準備することが必須ということになります

新規インストールでは、最初でデフォルトの言語を選択するようになり、言語カタログはそれに合わせてダウンロードするようになりました。また、ここで選択した言語が WPLANG 定数の値として、データベースに保存されます。これにともなって、wp-config-sample.php には、

の行がなくなっています。言語の設定をかえたい場合は、インスール後に、管理画面で「設定 » 一般」のページで「サイトの言語」を変更する仕様になっています。アップグレードの場合は、次の条件で WPLANG が設定されます。

マルチサイトではなく、かつ、データベースに WPLANG の値が保存されていない、さらに、wp-config.php の WPLANG に値が設定されいて、かつ、/wp-content/languages ディレクトリに該当の言語ファイルが存在する、という条件を満たした場合にのみ、その値がデータベースに保存されます。そうでない場合は、データベースの WPLANG のエントリは空になります。

これらの条件と、get_locale() 関数の仕様変更のため、アップグレードのときに動作が変わる場合は、新規インストールと同じ対応をしてください。

wp-config.php でブラウザの言語設定に合わせて動的に変更している場合は、たとえば、

のように、$locale を設定すると、これまでどおり表示する言語をかえることができます。定数 WPLANG の設定だけでは十分ではありません。

これらについて、SQLite Integration が何かをすることはありません。WordPress の仕様どおりに振る舞うはずです。アップグレードで挙動が変わる可能性があるのはこれだけだと思います。

謝辞

今回も、フォーラムやメールでのフィードバックが役立ちました。ご報告いただいた方たちに感謝します。ありがとうございました。

不具合やバグを発見したら、このサイトでコメントしていただいても、サポートフォーラムに投稿していただいてもかまいません。提案や感想も歓迎です。なお、日本語での投稿すると、モデレータからチェックが入るかもしれません。英語以外の投稿に対するモデレータの基準がよくわかりません(放置している場合もたくさんあります)が、気になるようだったら、日本語フォーラムをご利用ください。ありがとうございました。

One thought on “SQLite Integration 1.7 リリース

  1. Pingback: WordPress+SQLite Integration | Todo Software Factory 備忘録

Leave a Reply