You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by sh...@apache.org on 2008/10/21 13:57:56 UTC

svn commit: r706588 - in /lucene/solr/trunk/contrib/dataimporthandler: CHANGES.txt src/main/java/org/apache/solr/handler/dataimport/SqlEntityProcessor.java src/test/java/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java

Author: shalin
Date: Tue Oct 21 04:57:56 2008
New Revision: 706588

URL: http://svn.apache.org/viewvc?rev=706588&view=rev
Log:
SOLR-811 --  Allow a "deltaImportQuery" attribute in SqlEntityProcessor which is used for delta imports instead of DataImportHandler manipulating the SQL itself

Modified:
    lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt
    lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SqlEntityProcessor.java
    lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java

Modified: lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt?rev=706588&r1=706587&r2=706588&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt Tue Oct 21 04:57:56 2008
@@ -21,6 +21,10 @@
 1. SOLR-768:  Set last_index_time variable in full-import command.
               (Wojtek Piaseczny, Noble Paul via shalin)
 
+2. SOLR-811:  Allow a "deltaImportQuery" attribute in SqlEntityProcessor which is used for delta imports
+              instead of DataImportHandler manipulating the SQL itself.
+              (Noble Paul via shalin)
+
 Optimizations
 ----------------------
 

Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SqlEntityProcessor.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SqlEntityProcessor.java?rev=706588&r1=706587&r2=706588&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SqlEntityProcessor.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SqlEntityProcessor.java Tue Oct 21 04:57:56 2008
@@ -125,6 +125,10 @@
   }
 
   public String getDeltaImportQuery(String queryString) {
+    String deltaImportQuery = context.getEntityAttribute(DELTA_IMPORT_QUERY);
+    if(deltaImportQuery != null){
+      return resolver.replaceTokens(deltaImportQuery);
+    }
     StringBuffer sb = new StringBuffer(queryString);
     if (SELECT_WHERE_PATTERN.matcher(queryString).find()) {
       sb.append(" and ");
@@ -162,6 +166,8 @@
 
   public static final String DELTA_QUERY = "deltaQuery";
 
+  public static final String DELTA_IMPORT_QUERY = "deltaImportQuery";
+
   public static final String PARENT_DELTA_QUERY = "parentDeltaQuery";
 
   public static final String DEL_PK_QUERY = "deletedPkQuery";

Modified: lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java?rev=706588&r1=706587&r2=706588&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java Tue Oct 21 04:57:56 2008
@@ -94,6 +94,30 @@
     assertQ(req("desc:hello"), "//*[@numFound='1']");
   }
 
+  @Test
+  @SuppressWarnings("unchecked")
+  public void testCompositePk_DeltaImport_DeltaImportQuery() throws Exception {
+    List deltaRow = new ArrayList();
+    deltaRow.add(createMap("id", "5"));
+    MockDataSource.setIterator("select id from x where last_modified > NOW",
+            deltaRow.iterator());
+
+    List parentRow = new ArrayList();
+    parentRow.add(createMap("id", "5"));
+    MockDataSource.setIterator("select * from x where id=5", parentRow
+            .iterator());
+
+    List childRow = new ArrayList();
+    childRow.add(createMap("desc", "hello"));
+    MockDataSource.setIterator("select * from y where y.A=5", childRow
+            .iterator());
+
+    super.runDeltaImport(dataConfig_deltaimportquery);
+
+    assertQ(req("id:5"), "//*[@numFound='1']");
+    assertQ(req("desc:hello"), "//*[@numFound='1']");
+  }
+
   private static String dataConfig = "<dataConfig>\n"
           + "       <document>\n"
           + "               <entity name=\"x\" pk=\"x.id\" query=\"select * from x\" deltaQuery=\"select id from x where last_modified > NOW\">\n"
@@ -102,4 +126,13 @@
           + "                               <field column=\"desc\" />\n"
           + "                       </entity>\n" + "               </entity>\n"
           + "       </document>\n" + "</dataConfig>\n";
+
+  private static String dataConfig_deltaimportquery = "<dataConfig>\n"
+          + "       <document>\n"
+          + "               <entity name=\"x\" deltaImportQuery=\"select * from x where id=${dataimporter.delta.id}\" deltaQuery=\"select id from x where last_modified > NOW\">\n"
+          + "                       <field column=\"id\" />\n"
+          + "                       <entity name=\"y\" query=\"select * from y where y.A=${x.id}\">\n"
+          + "                               <field column=\"desc\" />\n"
+          + "                       </entity>\n" + "               </entity>\n"
+          + "       </document>\n" + "</dataConfig>\n";
 }