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";
}