sqlite3に移行中
カテゴリー: ぷろぐらみんぐ/データベース
2010-11-04
sqlite2からsqlite3に移行していると
いくつかの不具合を発見してしまった。
とりあえず、教えたけど 直るかは不明。
ソースを10分くらい解析すればパッチくらい作れるけど
レンタルサーバーでは通用しないというか面倒なので
対処法で解決するほうが無難。
sqlite3のSELECT 文 評価の際の内部バグ。
一つ紹介しておこう
"列名"が必ず""列名""でくくられて変更されてしまう欠陥。
もし、遭遇した場合は、
回避するには、SELECT "列名" as '新しい名前'で回避するしかない
"列名"を使い countやsumなどを使った場合に注意が必要だ。
※version2には、この欠陥は存在しない
追記
移行完了
確かに、説明にあるようにDBファイルが小さくなって速くなった気がする。
また今後、ドライバ関数の変更に振り回されないように
共通の独自クラスを作って、その中で、PDOとSQLite3クラスを判別して処理するように工夫をした。
今後なにか別のクラスが発生した場合は関数10個程度に、追加・書き込みするだけで済む。
SQL文とその関数を修正しなくて済むようになったので、かなりいい。
いくつかの不具合を発見してしまった。
とりあえず、教えたけど 直るかは不明。
ソースを10分くらい解析すればパッチくらい作れるけど
レンタルサーバーでは通用しないというか面倒なので
対処法で解決するほうが無難。
sqlite3のSELECT 文 評価の際の内部バグ。
一つ紹介しておこう
"列名"が必ず""列名""でくくられて変更されてしまう欠陥。
もし、遭遇した場合は、
回避するには、SELECT "列名" as '新しい名前'で回避するしかない
"列名"を使い countやsumなどを使った場合に注意が必要だ。
※version2には、この欠陥は存在しない
追記
移行完了
確かに、説明にあるようにDBファイルが小さくなって速くなった気がする。
また今後、ドライバ関数の変更に振り回されないように
共通の独自クラスを作って、その中で、PDOとSQLite3クラスを判別して処理するように工夫をした。
今後なにか別のクラスが発生した場合は関数10個程度に、追加・書き込みするだけで済む。
SQL文とその関数を修正しなくて済むようになったので、かなりいい。