Monthly Archives: September 2014

SQLite Integration 1.7 release

Japanese version is available in SQLite Integration 1.7 リリース

Things changed

SQLite Integration 1.7 is released. These changes were applied.

  1. WordPress 4.0 installation and compatibility checked.
  2. Added an option for memory usage rate.
  3. When the user set pcre.backtrack_limit to a huge value, it is made use of by the plugin.
  4. Fixed the bug for CREATE TABLE manipulation.
  5. Changed the procedure of BETWEEN comparison of Meta Query.
  6. Fixed the bug for changing order of the attachment files on the visual editor.

Explanations

There are no drastic changes in WordPress 4.0 but a few in wpdb class, and some functions deprecated. This version follows these changes. If you are using an older version of SQLite Integration with WordPress 4.0, LIKE query might not work properly. I strongly recommend you to upgrade to the latest version. Other changes and fixes are explained below.

When destructor is called, the memory usage rate is more than 90% of the allocated and the option constant SQLITE_MEM_DEBUG is set to true, the plugin can write the information to the file. When debugging, this feature may help you.

When pcre.backtrack_limit is set to a huge value, the plugin will use that value. SQLite Integration will use up to 100 times the default value, which I think is enough. This change comes from the discussion on the forum.

The manipulation of the BETWEEN comparison of Meta Query is a little changed, which will make the excution a little faster. But I’m not sure if it works fine on the safe mode of PHP. This change also come from the discussion on the forum.

When you change the order of the attachment files in the visual editor, it wasn’t saved properly. This bug was fixed. This bug was reported on the Japanese forum.

With the fix above, I added some codes PHP 5.2.x doesn’t execute. If your PHP is version 5.2.x, edit query.class.php a little like below.

to

My test environment is PHP 5.5, so I can’t test with PHP 5.2.x. I recommend that you should use version 5.3 or above, if you can.

Notices about installation and upgrading

WordPress 4.0 changed the installation process a little. When you install without wp-config.php, the installation will fail. So it is required to prepare wp-config.php from this version of SQLite Integration on.

On the first stage of the installation, you are asked to choose your default language, according to which WordPress downloads appropriate catalog files. At the same time, your chosen language info will be stored in the database. According to this change, they removed the line below from wp-config-sample.php.

If you want to change the site language, you’ve got to visit "Settings » General" and select the dropdown box.

When upgrading, constant WPLANG will be set according to the rules below.

Your site is not multisite, the value of WPLANG is not sotred in the database, the value of WPLANG is defined in wp-config.php, and there’re language catalog file is in wp-content/languages directory, these conditions are all satisfied, then that value will be stored in the database. Or else the value of WPLANG in the database will be empty string.

These conditions and the change of the definition of get_locale() function might cause the different behavior from before. If so, do as the case of new installation.

If you are changing the language dynamically, e.g. according to the browser’s preference, you are required to set the language information like below in wp-config.php.

$locale is set, and you can change the site language. The value of WPLANG constant will not be enough.

About these changes, SQLite Integration does nothing. It will only behave as WordPress commands. Nothing else will be changed after upgrading, I guess.

Acknowledgement

I owe this release to many users’ feedbacks. I appreciate their contributions.

When you notice malfunctioning or bug, I’ll appreciate receiving your reports or suggestions by the comment in this site or posting to the support forum. Thank you.

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 の仕様どおりに振る舞うはずです。アップグレードで挙動が変わる可能性があるのはこれだけだと思います。

謝辞

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

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