Good day, I'm debugging some code that uses 3.8.1, and I've tried just upgrading to 3.8.3, which didn't work. The observation is that
This query: SELECT id, data_blob FROM data WHERE timestamp = (SELECT MIN(timestamp) FROM data WHERE stream_num = ?) LIMIT 1 seems to occasionally produce a wrong result (the content of data_blob is incorrect given the values of stream_num) yet this query SELECT id, data_blob FROM data WHERE stream_num = ? order by timestamp asc LIMIT 1 seems just fine, insofar as the same tests on the same data have not hit any of the error condition / contradiction. in both cases sqlite3_bind_int(pStmt, 1, (int)nStream); is used for parameter ? We are using an in memory database as a smarter queue where timestamp data gets inserted, and if the db size is sufficient (30 to 40 records) the above query lets us pop the earliest timestamp (which is stored as int64 via sqlite3_bind_int64). Is this a possible bug or am I missing something? Using the backup api to look at it from a file sqlite>.schema CREATE TABLE data ( id INTEGER PRIMARY KEY, timestamp BIGINT NOT NULL, stream_num TINYINT, source_seq_num TINYINT, event_seq_num INT, data_address BIGINT NOT NULL, data_blob BLOB NOT NULL); sqlite> SELECT id, data_blob FROM data WHERE stream_num = 2 order by timestamp asc LIMIT 1; 4|☺ sqlite> SELECT id, data_blob FROM data WHERE timestamp = (SELECT MIN(timestamp) FROM data WHERE stream_num = 2) LIMIT 1; 3|☻ sqlite> regards, Adam DeVita _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users