I observed the following difference between 2.8.14 and 3.0.2 which looks like a bug to me:
sqlite2 /tmp/music2.db "select id from song where id in ( select id from song order by random() limit 5 );" 12524 3339 7023 7818 8478 sqlite3 /tmp/music3.db "select id from song where id in ( select id from song order by random() limit 5 );" 1 2 3 4 5 I consider 2.x's behaviour to be correct, also, this is the smallest test case I could come up with, the sub-select is correct with both versions. It seems as if the random() clause is ignored in 3.x Frank Baumgart