On 2014/02/17 09:59, Max Vlasov wrote:
Ok, I hope I found the topic, the title was "racing with date('now') (was: Select with dates): one of the links to the archive https://www.mail-archive.com/sqlite-users@sqlite.org/msg79456.html CMIIW, but as I see it, the final modification was commented by Richard > As a compromise, the current SQLite trunk causes 'now' to be exactly the > same for all date and time functions within a single sqlite3_step() call. But this is just for now and date-related functions. I wanted to be sure so created a user function NanoSec() that returns nanoseconds as it is calculated with QueryPerformanceCounter and QueryPerformanceFrequency on Windows and clock_gettime(CLOCK_REALTIME... on Linux. Seems like it's not always real nanoseconds but value that is changed very frequently to be different for close VDBE instructions of sqlite engine. So Select nanosec() - nanosec() from ... returns non-zero values for most of the times, so there's no guarantee the user functions or any other functions will be called once for the step.//... etc.
Did you mark your nanosec function as SQLITE_DETERMINISTIC <http://www.sqlite.org/c3ref/c_deterministic.html>? http://www.sqlite.org/c3ref/create_function.html Which, if not, it can and will very much return non-zero values. And if you did, either your function or your version of SQLite is broken. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users