From: Patrick Donnelly Date: Wed, 24 Mar 2021 00:34:45 +0000 (-0700) Subject: cephsqlite: add julian day offset in milliseconds X-Git-Tag: v17.1.0~2493^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9107e1a34743167d8f0cf969a440f5aaed2848af;p=ceph.git cephsqlite: add julian day offset in milliseconds This magic number was copied from another VFS but was not adjusted for the xCurrentTimeInt64 interface. Signed-off-by: Patrick Donnelly --- diff --git a/src/libcephsqlite.cc b/src/libcephsqlite.cc index aa2e42166b7..3db64a19f65 100644 --- a/src/libcephsqlite.cc +++ b/src/libcephsqlite.cc @@ -690,7 +690,7 @@ static int CurrentTime(sqlite3_vfs* vfs, sqlite3_int64* time) dv(5) << time << dendl; auto t = ceph_clock_now(); - *time = t.to_msec() + 2440587.5; + *time = t.to_msec() + 2440587.5*86400000; /* julian days since 1970 converted to ms */ auto end = ceph::coarse_mono_clock::now(); getdata(vfs).logger->tinc(P_OP_CURRENTTIME, end-start); diff --git a/src/test/libcephsqlite/main.cc b/src/test/libcephsqlite/main.cc index a7a64556ea7..78ab0488825 100644 --- a/src/test/libcephsqlite/main.cc +++ b/src/test/libcephsqlite/main.cc @@ -18,6 +18,7 @@ #include #include +#include #include #include @@ -1030,6 +1031,32 @@ out: ASSERT_EQ(0, rc); } +TEST_F(CephSQLiteTest, CurrentTime) { + static const char SQL[] = + "SELECT strftime('%s', 'now');" + ; + + int rc; + const char *current = SQL; + sqlite3_stmt *stmt = NULL; + + std::cout << SQL << std::endl; + sqlcatch(sqlite3_prepare_v2(db, current, -1, &stmt, ¤t)); + sqlcatchcode(sqlite3_step(stmt), SQLITE_ROW); + { + time_t now = time(0); + auto t = sqlite3_column_int64(stmt, 0); + ASSERT_LT(abs(now-t), 5); + } + sqlcatch(sqlite3_finalize(stmt); stmt = NULL); + + rc = 0; +out: + sqlite3_finalize(stmt); + ASSERT_EQ(0, rc); +} + + TEST_F(CephSQLiteTest, StatusFields) { static const char SQL[] = "SELECT json_extract(ceph_status(), '$.addr');"