http://www.mediawiki.org/wiki/Special:Code/MediaWiki/54185

Revision: 54185
Author:   daniel
Date:     2009-08-01 20:49:56 +0000 (Sat, 01 Aug 2009)

Log Message:
-----------
partial revert of previous change: do use orphan deletion, but use join instead 
of subquery

Modified Paths:
--------------
    
trunk/WikiWord/WikiWordBuilder/src/main/java/de/brightbyte/wikiword/store/builder/DatabaseLocalConceptStoreBuilder.java
    
trunk/WikiWord/WikiWordBuilder/src/main/java/de/brightbyte/wikiword/store/builder/DatabaseWikiWordStoreBuilder.java

Modified: 
trunk/WikiWord/WikiWordBuilder/src/main/java/de/brightbyte/wikiword/store/builder/DatabaseLocalConceptStoreBuilder.java
===================================================================
--- 
trunk/WikiWord/WikiWordBuilder/src/main/java/de/brightbyte/wikiword/store/builder/DatabaseLocalConceptStoreBuilder.java
     2009-08-01 20:12:28 UTC (rev 54184)
+++ 
trunk/WikiWord/WikiWordBuilder/src/main/java/de/brightbyte/wikiword/store/builder/DatabaseLocalConceptStoreBuilder.java
     2009-08-01 20:49:56 UTC (rev 54185)
@@ -250,7 +250,8 @@
                deleteDataFrom(rcId, op, langlinkTable, "resource");
                deleteDataFrom(rcId, op, broaderTable, "resource");
                
-               deleteDataFrom(rcId, op, conceptTable, "id", aboutTable, 
"concept", "resource", true);
+               deleteDataFrom(rcId, op, aboutTable, "resource");
+               deleteOrphansFrom(rcId, op, conceptTable, aboutTable, 
"concept");
                
                deleteDataFrom(rcId, op, aliasTable, "resource");
                deleteDataFrom(rcId, op, sectionTable, "resource");

Modified: 
trunk/WikiWord/WikiWordBuilder/src/main/java/de/brightbyte/wikiword/store/builder/DatabaseWikiWordStoreBuilder.java
===================================================================
--- 
trunk/WikiWord/WikiWordBuilder/src/main/java/de/brightbyte/wikiword/store/builder/DatabaseWikiWordStoreBuilder.java
 2009-08-01 20:12:28 UTC (rev 54184)
+++ 
trunk/WikiWord/WikiWordBuilder/src/main/java/de/brightbyte/wikiword/store/builder/DatabaseWikiWordStoreBuilder.java
 2009-08-01 20:49:56 UTC (rev 54185)
@@ -289,13 +289,21 @@
                
                ReferenceField f = (ReferenceField)ref.getField(refField);
                String field = f.getTargetField();
-               
+
+               /*
                sql = "DELETE FROM " + table.getSQLName() + " ";
                sql += " WHERE NOT EXISTS ( ";
                sql += "   SELECT * FROM " + ref.getSQLName() + " AS R ";
                sql += "       WHERE R." + refField + " = "+ table.getSQLName() 
+ "." + field;
                sql += " )";
+               */
                
+               sql = "DELETE FROM E ";
+               sql += " USING " + table.getSQLName() + " AS E ";
+               sql += " LEFT JOIN " + ref.getSQLName() + " AS R ";
+               sql += "       ON R." + refField + " = E." + field;
+               sql += " WHERE R." + refField + " IS NULL;";
+               
                long t = System.currentTimeMillis();
                int c = executeUpdate("deleteDataFrom", sql);
                trace("deleted "+c+" orphan rows from "+table.getName()+" where 
no reference exists from "+ref.getSQLName()+"."+refField+", took 
"+(System.currentTimeMillis()-t)/1000+" sec");



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to