Author: jflesch
Date: 2007-08-15 13:07:53 +0000 (Wed, 15 Aug 2007)
New Revision: 14693
Modified:
trunk/apps/Thaw/src/thaw/plugins/index/Index.java
trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
Log:
When refreshing an index, don't delete the files / links with the flag
'dontDelete' set to true
Modified: trunk/apps/Thaw/src/thaw/plugins/index/Index.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-08-15 12:51:38 UTC
(rev 14692)
+++ trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-08-15 13:07:53 UTC
(rev 14693)
@@ -297,8 +297,8 @@
PreparedStatement st;
- purgeFileList();
- purgeLinkList();
+ purgeFileList(false);
+ purgeLinkList(false);
purgeCommentKeys();
st =
db.getConnection().prepareStatement("DELETE FROM indexParents "+
@@ -319,12 +319,26 @@
}
+ /**
+ * call purgeLinkList(false)
+ */
public void purgeLinkList() {
+ purgeLinkList(false);
+ }
+
+ public void purgeLinkList(boolean useDontDelete) {
synchronized(db.dbLock) {
try {
final Connection c = db.getConnection();
- final PreparedStatement st =
c.prepareStatement("DELETE FROM links WHERE indexParent = ?");
+ final PreparedStatement st;
+
+ if (!useDontDelete)
+ st = c.prepareStatement("DELETE FROM
links WHERE indexParent = ?");
+ else
+ st = c.prepareStatement("DELETE FROM
links WHERE indexParent = ? "+
+ "AND dontDelete
= FALSE");
+
st.setInt(1, getId());
st.execute();
} catch(final SQLException e) {
@@ -333,11 +347,23 @@
}
}
+ /**
+ * call purgeFileList(false)
+ */
public void purgeFileList() {
+ purgeFileList(false);
+ }
+
+ public void purgeFileList(boolean useDontDelete) {
synchronized(db.dbLock) {
try {
final Connection c = db.getConnection();
- final PreparedStatement st =
c.prepareStatement("DELETE FROM files WHERE indexParent = ?");
+ final PreparedStatement st;
+
+ if (!useDontDelete)
+ st = c.prepareStatement("DELETE FROM
files WHERE indexParent = ?");
+ else
+ st = c.prepareStatement("DELETE FROM
files WHERE indexParent = ? AND dontDelete = FALSE");
st.setInt(1, getId());
st.execute();
} catch(final SQLException e) {
@@ -1045,10 +1071,16 @@
}
+ /**
+ * call purgeIndex(true)
+ */
+ public void purgeIndex() {
+ purgeIndex(true);
+ }
- public void purgeIndex() {
- purgeFileList();
- purgeLinkList();
+ public void purgeIndex(boolean useDontDelete) {
+ purgeFileList(useDontDelete);
+ purgeLinkList(useDontDelete);
purgeCommentKeys();
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
2007-08-15 12:51:38 UTC (rev 14692)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
2007-08-15 13:07:53 UTC (rev 14693)
@@ -1208,10 +1208,17 @@
synchronized(db.dbLock) {
try {
- selectSt =
db.getConnection().prepareStatement("SELECT id from files WHERE indexParent = ?
AND LOWER(filename) LIKE ? LIMIT 1");
+ selectSt =
db.getConnection().prepareStatement("SELECT id from files "+
+
"WHERE indexParent = ? "+
+
" AND LOWER(filename) LIKE ? "+
+
"LIMIT 1");
st =
db.getConnection().prepareStatement("INSERT INTO files "+
- "(id,
filename, publicKey, localPath, mime, size, category, indexParent, dontDelete)
"+
-
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, TRUE)");
+ "(id,
filename, publicKey, "+
+ "
localPath, mime, size, "+
+ "
category, indexParent, dontDelete) "+
+
"VALUES (?, ?, ?, "+
+ " ?,
?, ?, "+
+ " ?,
?, TRUE)");
nextId = DatabaseManager.getNextId(db, "files");
if (nextId < 0)
@@ -1399,8 +1406,8 @@
st =
db.getConnection().prepareStatement("INSERT INTO files "+
"(id,
filename, publicKey, localPath, "+
- "
mime, size, category, indexParent) "+
-
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
+ "
mime, size, category, indexParent, dontDelete) "+
+
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, TRUE)");
nextId = DatabaseManager.getNextId(db, "files");
if (nextId < 0)