o2on svn commit
o2on-****@lists*****
2008年 5月 24日 (土) 22:51:45 JST
Revision: 92 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=o2on&view=rev&rev=92 Author: k-uehara Date: 2008-05-24 22:51:45 +0900 (Sat, 24 May 2008) Log Message: ----------- ADD: O2DatDB::analyze() Modified Paths: -------------- branches/BRANCH_0043/o2on/src.o2on/O2DatDB.cpp branches/BRANCH_0043/o2on/src.o2on/O2DatDB.h Modified: branches/BRANCH_0043/o2on/src.o2on/O2DatDB.cpp =================================================================== --- branches/BRANCH_0043/o2on/src.o2on/O2DatDB.cpp 2008-05-24 10:39:43 UTC (rev 91) +++ branches/BRANCH_0043/o2on/src.o2on/O2DatDB.cpp 2008-05-24 13:51:45 UTC (rev 92) @@ -273,6 +273,39 @@ +bool +O2DatDB:: +analyze(void) +{ +#if TRACE_SQL_EXEC_TIME + stopwatch sw("analyze/vacuum"); +#endif + + sqlite3 *db = NULL; + int err = sqlite3_open16(dbfilename.c_str(), &db); + if (err != SQLITE_OK) + goto error; + + char sql[] = "analyze; vacuum dat;"; + + err = sqlite3_exec(db, sql, NULL, 0, 0); + if (err != SQLITE_OK) + goto error; + + err = sqlite3_close(db); + if (err != SQLITE_OK) + goto error; + return true; + +error: + log(db); + if (db) sqlite3_close(db); + return false; +} + + + + size_t O2DatDB:: select(const wchar_t *sql, SQLResultList &out) Modified: branches/BRANCH_0043/o2on/src.o2on/O2DatDB.h =================================================================== --- branches/BRANCH_0043/o2on/src.o2on/O2DatDB.h 2008-05-24 10:39:43 UTC (rev 91) +++ branches/BRANCH_0043/o2on/src.o2on/O2DatDB.h 2008-05-24 13:51:45 UTC (rev 92) @@ -79,6 +79,7 @@ bool create_table(void); bool reindex(const char *target); + bool analyze(void); size_t select(const wchar_t *sql, SQLResultList &out); bool select(O2DatRec &out);