[o2on-svn] [92] ADD: O2DatDB::analyze()

Back to archive index

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);




o2on-svn メーリングリストの案内
Back to archive index