SQLite 7 at DB
[2ch|▼Menu]
803:本田
09/05/11 23:02:23 zaiC2T01
2009 May 7 (3.6.14)

* Added the optional asynchronous VFS module.
* Enhanced the query optimizer so that virtual tables are able to make use of OR and IN operators in the WHERE clause.
* Speed improvements in the btree and pager layers.
* Added the SQLITE_HAVE_ISNAN compile-time option which will cause the isnan() function from the standard math library to be used instead of SQLite's own home-brew NaN checker.
* Countless minor bug fixes, documentation improvements, new and improved test cases, and code simplifications and cleanups.

804:796
09/05/12 17:40:36
>>799
>>801
参考になりました。ありがとうございます。
viewを使った検索では適切なインデックスが使われていませんでした。
viewを使わない場合の explain query plan は、
全てWITH INDEX と USING PRIMARY KEYだったので、
速度の違いは当然ですよね…。

はてさてどうしたものか…。
(とりあえず、viewを使わないでやっていますが)

805:NAME IS NULL
09/05/12 18:19:48
ANALYZE コマンドを使ってみるとか。
WHERE 句の条件を入れ替える (A AND B を B AND A にするとか) だけで変わることも。

806:NAME IS NULL
09/05/18 22:50:37
sqlitespy 1.8.9ってなんか変なエラーで失敗しない?
insert into foo values('hoge',
(select id from bar where fuga = 'ぴよ')
);
って感じのsql投げるとエラー吐くんだけど

807:NAME IS NULL
09/05/18 23:01:21
>>806
エラー内容書けよ
あと、実行環境(OS, コマンドライン or メンテナンスツール)も

なんとなく、エンコーディング絡みのエラーではないかと、エスパーしてみる

808:NAME IS NULL
09/05/19 00:14:14
---------------------------
SQLiteSpy
---------------------------
Access violation at address 004B25CB in module 'SQLiteSpy.exe'. Read of address 656D617E.
---------------------------
OK
---------------------------

WinXP, SQLiteSpy 1.8.9


809:NAME IS NULL
09/05/19 09:40:19
>>806
こちらでは問題なく実行できた。by Vista
Create,InsertのSQLを書けば追試するけど。

810:本田
09/05/19 12:04:39 M9GfULoZ
SQLite Release 3.6.14.1 On 2009 May 19 (3.6.14.1)

Changes associated with this release include the following:

* Fix a bug in group_concat(), ticket #3841
* Fix a performance bug in the pager cache, ticket #3844
* Fix a bug in the sqlite3_backup implementation that can lead to a corrupt backup database. Ticket #3858.

811:NAME IS NULL
09/05/19 20:42:27
>809
削ってもエラーを繰り返すようなところは削ったけど、こんな感じ。

-- tables
CREATE TABLE map (
md5 TEXT NOT NULL,
name_id INTEGER NOT NULL,
PRIMARY KEY (md5, name_id),
CONSTRAINT ct_md5_length CHECK (LENGTH(md5) = 32)
);

CREATE TABLE person (
name_id INTEGER NOT NULL PRIMARY KEY,
name TEXT NOT NULL UNIQUE
);

-- triggers
CREATE TRIGGER fki_map_name_id_person_name_id
BEFORE INSERT ON map
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK, 'insert on table "map" violates foreign key constraint "fki_map_name_id_person_name_id"')
WHERE NEW.name_id IS NOT NULL AND (SELECT name_id FROM person WHERE name_id = NEW.name_id) IS NULL;
END;

-- test data
INSERT INTO "person" (name) VALUES('foo');

ここまでテキストに書いて、
sqlite3 try.db < try.sql
ってやってdbを作成。

-- このinsertをsqlitespy上で投げると>808のエラー
INSERT INTO map VALUES ('27FF7EA9CE50076CFC8E794D64957F7C',
(SELECT name_id FROM person WHERE NAME = 'foo')
);

sqlite3.exe (v3.6.14.1)ではエラーがでないのは確認済み。sqlitespy (v1.8.9)だとエラーになる。
手元に残ってないから確認できないけど、sqlitespy (v1.8.8)だとエラーにならなかったはず。
トリガーをはずすとv1.8.9でもエラーにならない。

…ひょっとしてバグ踏んだ?

812:NAME IS NULL
09/05/20 08:39:09
>>811
追試しました。
SQLiteSpy1.8.9で同じエラーが発生します。
持っている前バージョンの最新が1.8.1でしたのでそちらで試したところ
正常に動作します。

813:本田
09/05/20 09:28:22 p8oX8jyw
>>811
URLリンク(www.yunqa.de)
URLリンク(www.yunqa.de)

814:NAME IS NULL
09/05/20 20:41:44
バグレポ書こうと思ったらMLに投げないといけないのか…
誰かML入ってる人いたら投げておいてくれない?

815:NAME IS NULL
09/05/21 09:31:18
811読んで始めてSQLiteSpy触った素人ですが、
ウチではエラー出ませんでしたよ。
sqlite3で作ったdbでも、Spyで作ったdbでも
811のsql投げてinsertは成功しましたよ。

win xp pro sp3
SQLiteSpy 1.8.9
SQLite3 3.2.8 (XAMPP 1.7.1)

自宅のxp homeでもエラー出ませんでした。

816:NAME IS NULL
09/05/21 14:08:54
「SQLite 入門 第2版」が出てるね。

817:NAME IS NULL
09/05/21 19:12:07
blogの記事一つ読めば入門できるsqliteで入門本とか勘弁して欲しい

818:NAME IS NULL
09/05/21 19:46:29
ニーズなさそうだな。

819:NAME IS NULL
09/05/22 09:56:36
内容どうでもよくて、書籍が存在する、という事実があるだけでも
知らないひとに説明しやすくなることがよくある。
俺の場合、初期の Ruby とかがそうだった・・・(遠い目)

820:NAME IS NULL
09/05/22 12:54:12
ああ、そういう向きはあるかもな…

821:NAME IS NULL
09/05/22 17:49:08
>>819
大昔、Perlのらくだ本の日本語訳本が出たとき、嬉しかったなぁ

822:本田
09/05/26 08:46:03 MIdYoisj
2009-May-25 - Version 3.6.14.2
SQLite version 3.6.14.2 fixes an obscure bug in the code generator (ticket #3879) section of SQLite which can potentially cause incorrect query results.
The changes from the prior release consist of only this one bug fix,
check-in [6676] and a change to the version number text.
The bug was introduced in version 3.6.14.
It is recommended that users of version 3.6.14 and 3.6.14.1 upgrade to this release.
Applications are unlikely to hit this bug,
but since it is difficult to predict which applications might hit it and which might not,
we recommend that all users of 3.6.14 and 3.5.14.1 upgrade to this release.

823:本田
09/05/26 23:05:21 MIdYoisj
>>822
SQLiteSpy1.8.9は3.6.14を使っているので使用を中止して、
とりあえず3.6.10を使ってるSQLiteSpy1.8.8に戻すのが良い。


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4231日前に更新/173 KB
担当:undef