Monthly Archives: September 2013

SQLite Integration 1.4.1 アップデート

English version is available in SQLite Integration 1.4.1 updated

SQLite Integrationを 1.4.1 にアップデートしました。

  1. バージョン 1.3 で入れた、BETWEEN 関数のサポートで、記事の本文が書き変わってしまうバグを修正しました。
  2. ダッシュボードのでMP6を使っている場合にメニューがずれてしまうのを修正しました。
  3. SELECT version()クエリがダミーのデータを返すようにしました。

NewStatPress で使われている BETWEEN 関数を SQLite が解釈できるように書き換えるコードを追加しましたが、構文が自然言語とまったく同じ、between A and B なので、投稿の内容を書き換えてしまうバグとなってしまいました。投稿本文が消えるという症状なので、クリティカルと判断し、アップデートしました。なお、このバグはフォーラムでの報告で判明しました。zoomosis氏のリポートに感謝します。

対策は、クエリを分割して、クオートを数え、投稿本文かクエリの一部かを判定するようにしましたが、その分のオーバーヘッドがあります。安全を優先しました。

その他、前回修正し切れなかった部分を修正してあります。

コミットした後、またしても日本語カタログのミスを発見しました。あぁ…

SQLite Integration 1.4.1 updated

Japanese version is available in SQLite Integration 1.4.1 アップデート

SQLite Integration was updated to the version 1.4.1.

  1. Rewrote the manipulation of BETWEEN funciton support introduced since version 1.3.
  2. Fixed the style corruption when using MP6 plugin.
  3. SELECT version() query returns a dummy data.

I added the support for BETWEEN function for NewStatPress plugin. The function rewrites the post content when it contains ‘between A and B’ phrase, and the post data disappears, which I think is critical and needs upgrading. This bug was informed in the support forum. I appreciate zoomosis’ report.

New procedure will split the SQL statement into tokens, count the single quote and check if the BETWEEN is in the post content or a part of SQL statement. This will make the system a little slower, but I prefer the safety to the speed.

Other minor bug fixes are included.

SQLite Integration 1.4 released

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

SQLite Integration was updated to the version 1.4.

  1. Added the database utility to fix the database caused by upgrading WordPress 3.5.x to 3.6.
  2. Fixed the bugs of ALTER TABLE query.
  3. Changed the manipulation of SHOW INDEX with WHERE clause.

When you insatalled WordPress 3.5.x with this plugin and updated to WordPress 3.6, upgrading was not well finished and there’re some columns that lost default values property. Ordinary usage of the database shows no mulfunction or error messages, but some plugins depending the default value of the column will cause the problem. The bug report of the support forum gave me a clue about this problem.

You’ve got to access your database to fix this problem, but it’s a little difficult to do the job. SQLiteManager distributed as a utility for manipulating SQLite databases can’t change the property of the column. It doesn’t behave as you expected and seems to be a bug, I guess. SQLite Manager, a Firefox Addon, doesn’t seem to do this job. So I added the new page on the admin dashboard and let the users do the fixing database job by clicking the buttons. If above is your case, please be sure to visit the dashboard and do this job.

If you are using WordPress 3.5.x or install a new WordPress 3.6, you don’t have to do this job.

I changed some codes for other plugins to work fine.

Just after I committed the version 1.4, WordPress is upgrade to 3.6.1 (!). I did try upgrading it without problem. This table shows the conbinations of S(QLite) I(ntegration) with W(ord)P(ress) and if the above fix is necessary or not. Version 1.3 means 1.3 or lesser.

SI WP Current => WP Updated Fixing job
1.3 3.5.x => 3.6 Need updating to 1.4 and fixing
1.3 3.5.x => 3.6.1 Need updating to 1.4 and fixing
1.3 3.6 => 3.6.1 Not necessary; upgrading to 1.4 is recommended
1.4 3.5.x => 3.6 Not necessary
1.4 3.5.x => 3.6.1 Not necessary
1.4 3.6 => 3.6.1 Not necessary

Further more, if you are using MP6 plugin, selected dashboard menu is displayed indented. I’ll fix it at next release. If you fix it right away, please download a development version from http://wordpress.org/plugins/sqlite-integration/developers/ and replace three files below.

  • styles/doc.css
  • styles/style.css
  • utilities/documentation.php

When you notice mulfunctioning or bug, I’ll be glad to receive your report by the comment in this site or posting to the support forum. Thank you.

SQLite Integration 1.4 リリース

English version is available in SQLite Integration 1.4 released

SQLite Integrationを 1.4 にアップデートしました。

  1. WordPress 3.5.x から 3.6 にアップグレードしたときの不具合を修正する簡易ユーティリティを追加しました。
  2. ALTER TABLE クエリのバグをさらに修正しました。
  3. SHOW INDEX クエリに WHERE 句がついている場合の動作を変更しました。

WordPress 3.5.x を使ってインストールし、3.6 にアップグレードした場合、データベースのアップグレード処理がうまくいかず、デフォルト値がなくなっているカラムが存在します。通常の使用では不具合が現れないのですが、デフォルト値に依存したクエリを発行するプラグインで問題が出る可能性があります。サポート・フォーラムでの不具合報告で判明しました。

これを修正するには、直接データベースにアクセスする必要がありますが、少し難しい作業になります。SQLite を扱うユーティリティとして配布されている SQLiteManager を使えればよいのですが、カラムの属性を変更すると、とんでもない動作をするので、使えません。というか、カラムの属性を変更するために使ってはいけません。また、Firefox のアドオンSQLite Manager では、カラムの属性を変更できないようです。そこで、プログラムからこの修正作業ができるように、ダッシュボードに新たなページを作り、ボタンクリックでできるようにしました。上に該当する方は、必ずこの作業をするようにお願いします。

WordPress 3.6 を新規にインストールした方は、この修正は必要ありません。また、WordPress 3.5.x で利用されている方も必要ありません。

その他のプラグインに対応するために、いくつかの修正が行われています。

バージョン 1.4 をコミットした直後に、WordPress が 3.6.1 にアップデートされました(!)。アップデート作業、データベースの構造、ともに問題なくできることは確認しましたが、S(QLite)I(ntegration) と W(ord)P(ress) のバージョンの組み合わせと、上の作業が必要かどうかを、表にまとめておきます。バージョン1.3とあるのは、それ以前のバージョンも含みます。

SI 現在のWP => 新たなWP 修正作業
1.3 3.5.x => 3.6 1.4にアップデート後、修正が必要
1.3 3.5.x => 3.6.1 1.4にアップデート後、修正が必要
1.3 3.6 => 3.6.1 修正は不要だが、1.4へのアップデートを推奨
1.4 3.5.x => 3.6 必要なし
1.4 3.5.x => 3.6.1 必要なし
1.4 3.6 => 3.6.1 必要なし

さらに、MP6プラグインを使っていると、ダッシュボードで選択したメニューがインデントされて表示されます。次のリリースで直しますが、気になる方は、http://wordpress.org/plugins/sqlite-integration/developers/から開発版をダウンロードして、次の3つのファイルを入れ替えてください。

  • styles/doc.css
  • styles/style.css
  • utilities/documentation.php

またさらに、日本語バージョンでは、日本語カタログが一部反映されていないままタグを打ってしまいました。修正をリポジトリにコミットしましたので、気になる方は、開発版をダウンロードするか、http://plugins.svn.wordpress.org/sqlite-integration/trunk/から該当のファイルだけをダウンロードして入れ替えてください。入れ替えるファイルは次の1つだけです。

  • utilities/database_maintenance.php

その他のバグを見つけたら、このサイトでコメントを残すか、サポート・フォーラムにポストしていただけると助かります。

SQLite Integration 1.3 リリース

English version is available in SQLite Integration 1.3 released

SQLite Integrationを1.3にアップデートしました。

  1. データベースのバックアップを取るユーティリティを追加しました。
  2. ダッシュボードのスタイルをMP6プラグインに合わせるようにしました。
  3. ALTER TABLEクエリの扱いを修正しました。
  4. MySQLのBETWEEN文が実行できるようになりました。
  5. query_create.class.phpの_rewrite_field_types()関数の定義を変更しました。
  6. エラーメッセージの扱いを変更しました。
  7. クエリ文字列からインデックス・ヒントを全て削除するようにしました。

SQLiteは、ファイルシステム上にある通常のファイルです。このため、データベースのバックアップを取るには、このファイルのコピーを作るだけで済みます。データベース・サーバのように、データをエクスポートしたりインポートしたりする必要はありません。追加されたユーティリティは、コピーをサーバに保存します。PHPがzipエクステンションをロードしていれば、zipアーカイブとして保存し、なければ通常のコピーを保存します。保存場所は、現在使われているデータベースと同じディレクトリです。

WordPressのUI部分の開発が、一部プラグインの形で進められています。ダッシュボードのUIは、MP6(*1)というプラグインで進められているようです。これのデフォルトデザインに合わせた色使いに変更しました。気に入らない場合は、sqlite-integration/styles/を削除すると、ほぼWordPressデフォルトのデザインになると思います。

  1. "This plugin is a secret; don’t tell anybody about it."と書いてありますが、プラグインディレクトリで公開していること自体secretでもなんでもないので、ジョークでしょう。Automattic社の高野直子さんが紹介の記事「WordPress UI チームが開発する新ダッシュボードデザイン:「MP6」プラグインとは」を書かれています。

ALTER TABLE CHANGE COLUMNがうまく動作していなかったので、WordPressのdbDelta()関数が意図したとおりに動作していませんでした。これを修正してあります。

BETWEEN文と_rewrite_field_types()関数は、NewStatPressプラグインが動作するのに必要な変更です。一部プラグイン本体を書き換える必要があります。パッチファイルは、Plugins(ja)をご覧ください。

インストール中は、__()関数がロードされるまで言語カタログが使えないので、メッセージを英語で出力するようにしました。

SQLite Integration 1.3 released

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

SQLite Integration was updated to the version 1.3.

  1. Added the database backup utility.
  2. Changed the dashboard style to match MP6 plugin.
  3. Fixed the alter table query manipulation.
  4. Added the support for BETWEEN function of MySQL.
  5. Modified the definition of _rewrite_field_types() in query_create.class.php.
  6. Changed the error message manipulation.
  7. Changed the regular expression to remove all the index hints from the query string.

SQLite is really a file in the disk file system. So you can only backup your database by creating a copy of that file; you don’t have to export or import data like a database server system. The backup utility creates the current snapshot of your database file as the zipped archive if your PHP has zip extension or as the plain copy if it doesn’t. The snapshot is put in the same directory that your database file is in.

The experimental WordPress UI is developed with a plugin called MP6(*1). I changed the styles of SQLite Integration to fit that design. If you don’t like it, removing sqlite-integration/styles/ directory will make your dashboard look like WordPress default style.

  1. This page reads: "This plugin is a secret; don’t tell anybody about it.". This seems to be a joke. Ms. Takano Naoko from Automattic Inc. wrote an introduction article about this plugin, see New dashboard design developed by WordPress UI team: What’s it like, "MP6" plugin?(in Japanese).

ALTER TABLE CHANGE COLUMN query didn’t work properly so that the WordPress function dbDelta() didn’t work as you intended when upgrading the database. This is fixed.

BETWEEN function is added and _rewrite_field_types() function is changed for NewStatPress plugin to work, though this plugin needs rewriting a little. See also Plugins for a patch file.

When installing, we couldn’t use the language catalog until the function __() is loaded. So if you have a problem while installing, the very install process will stop. I changed it so that the error messages are only put out in English.