When attempting to run a delta-import, I'm getting an error stating that the query can't be executed. The query works fine when executed at a psql prompt. I've included the contents of my data-config.xml (with hostname, username, and password details changed) and the error messages that I see in solr.log below. If there's anything else I should include (schema.xml, solrconfig.xml, etc), let me know and I'll be more than happy to send them along.
(Note: I only wrote the deltaQuery and deltaImportQuery - the rest of data-config.xml is someone else's work.) data-config.xml: <?xml version="1.0" encoding="UTF-8"?> <dataConfig> <dataSource name="ds-1" driver="org.postgresql.Driver" user="myuser" password="strongpassword" type="JdbcDataSource" url="jdbc:postgresql://777.555.444.333:5432/ttd"/> <document name="ttd"> <entity name="destination" dataSource="ds-1" pk="destID" query="SELECT dd.id || COALESCE(ddt.destination_type, '') || COALESCE(df.feature, '') || COALESCE(dc.cuisine, '') as destID, dd.id as did, dd.name as dName, dd.web_description as dDescription, dd.editors_pick as dPick, dd.open_table_id as onLineReservation, dd.critics_rating as dStar, ddt.destination_type as category, df.feature as feature, dc.cuisine as cuisine, tad.neighborhood_name as neighborhood, tad.latitude as latitude, tad.longitude as longitude, tad.priority as priority, tad.neighborhood_slug as neighborhoodSlug, pc.city as city, pz.zip_code as zipCode, pp.street_address as street, pcty.county as county, ps.state as state FROM public.destinations_destination dd LEFT JOIN public.destinations_destination_destination_type dddt ON dd.id = dddt.destination_id LEFT JOIN public.destinations_destinationtype ddt ON dddt.destinationtype_id = ddt.id LEFT JOIN public.destinations_destination_features ddf ON dd.id = ddf.destination_id LEFT JOIN public.destinations_feature df ON ddf.feature_id = df.id LEFT JOIN public.destinations_destination_cuisine_types ddct ON dd.id = ddct.destination_id LEFT JOIN public.destinations_cuisine dc ON ddct.cuisine_id = dc.id LEFT JOIN public.ttd_api_destination tad ON dd.id = tad.api_id LEFT JOIN public.places_place pp ON dd.place_id = pp.id LEFT JOIN public.places_zipcode pz ON pp.zip_code_id = pz.id LEFT JOIN public.places_city pc ON pp.city_id =pc.id LEFT JOIN public.places_county pcty ON pc.county_id = pcty.id LEFT JOIN public.places_state ps ON pcty.state_id = ps.id;" deltaQuery="SELECT * into TEMPORARY tempttdDest FROM (SELECT dd.id || COALESCE(ddt.destination_type, '') || COALESCE(df.feature, '') || COALESCE(dc.cuisine, '') as destID, dd.id as did, dd.created as dcreated, dd.updated as dupdated, dd.name as dName, dd.web_description as dDescription, dd.editors_pick as dPick, dd.open_table_id as onLineReservation, dd.critics_rating as dStar, ddt.destination_type as category, df.feature as feature, dc.cuisine as cuisine, tad.neighborhood_name as neighborhood, tad.latitude as latitude, tad.longitude as longitude, tad.priority as priority, tad.neighborhood_slug as neighborhoodSlug, pc.city as city, pz.zip_code as zipCode, pp.street_address as street, pcty.county as county, ps.state as state FROM public.destinations_destination dd LEFT JOIN public.destinations_destination_destination_type dddt ON dd.id = dddt.destination_id LEFT JOIN public.destinations_destinationtype ddt ON dddt.destinationtype_id = ddt.id LEFT JOIN public.destinations_destination_features ddf ON dd.id = ddf.destination_id LEFT JOIN public.destinations_feature df ON ddf.feature_id = df.id LEFT JOIN public.destinations_destination_cuisine_types ddct ON dd.id = ddct.destination_id LEFT JOIN public.destinations_cuisine dc ON ddct.cuisine_id = dc.id LEFT JOIN public.ttd_api_destination tad ON dd.id = tad.api_id LEFT JOIN public.places_place pp ON dd.place_id = pp.id LEFT JOIN public.places_zipcode pz ON pp.zip_code_id = pz.id LEFT JOIN public.places_city pc ON pp.city_id =pc.id LEFT JOIN public.places_county pcty ON pc.county_id = pcty.id LEFT JOIN public.places_state ps ON pcty.state_id = ps.id) AS coalesced_all; SELECT destID from tempttdDest WHERE dcreated > '${dih.last_index_time}.00000-00' OR dupdated > '${dih.last_index_time}.00000-00';" deltaImportQuery="SELECT destID, did, dName, dDescription, dPick, onLineReservation, dStar, category, feature, cuisine, neighborhood, latitude, longitude, priority, neighborhoodSlug, city, zipCode, street, county, state FROM tempttdDest WHERE destID = '${dih.delta.id}';" > <field column="destID" name="destID"/> <field column="did" name="did"/> <field column="dName" name="dName"/> <field column="dDescription" name="dDescription"/> <field column="dPick" name="dPick"/> <field column="onLineReservation" name="onLineReservation"/> <field column="dStar" name="dStar"/> <field column="neighborhood" name="neighborhood"/> <field column="latitude" name="latitude"/> <field column="longitude" name="longitude"/> <field column="priority" name="priority"/> <field column="neighborhoodSlug" name="neighborhoodSlug"/> <field column="seouri" name="seouri"/> <field column="active" name="active"/> <field column="category" name="category"/> <field column="feature" name="feature"/> <field column="cuisine" name="cuisine"/> <field column="startTime" name="startTime"/> <field column="city" name="city"/> <field column="street" name="street"/> <field column="zipCode" name="zipCode"/> <field column="county" name="county"/> <field column="state" name="state"/> </entity> </document> </dataConfig> And the errors I see in solr.log when attempting to run the delta-import: ERROR - 2015-04-13 19:09:33.389; org.apache.solr.handler.dataimport.DataImporter; Delta Import Failed java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT * into TEMPORARY tempttdDest FROM (SELECT dd.id || COALESCE(ddt.destination_type, '') || COALESCE(df.feature, '') || COALESCE(dc.cuisine, '') as destID, dd.id as did, dd.created as dcreated, dd.updated as dupdated, dd.name as dName, dd.web_description as dDescription, dd.editors_pick as dPick, dd.open_table_id as onLineReservation, dd.critics_rating as dStar, ddt.destination_type as category, df.feature as feature, dc.cuisine as cuisine, tad.neighborhood_name as neighborhood, tad.latitude as latitude, tad.longitude as longitude, tad.priority as priority, tad.neighborhood_slug as neighborhoodSlug, pc.city as city, pz.zip_code as zipCode, pp.street_address as street, pcty.county as county, ps.state as state FROM public.destinations_destination dd LEFT JOIN public.destinations_destination_destination_type dddt ON dd.id = dddt.destination_id LEFT JOIN public.destinations_destinationtype ddt ON dddt.destinationtype_id = ddt.id LEFT JOIN public.destinations_destination_features ddf ON dd.id = ddf.destination_id LEFT JOIN public.destinations_feature df ON ddf.feature_id = df.id LEFT JOIN public.destinations_destination_cuisine_types ddct ON dd.id = ddct.destination_id LEFT JOIN public.destinations_cuisine dc ON ddct.cuisine_id = dc.id LEFT JOIN public.ttd_api_destination tad ON dd.id = tad.api_id LEFT JOIN public.places_place pp ON dd.place_id = pp.id LEFT JOIN public.places_zipcode pz ON pp.zip_code_id = pz.id LEFT JOIN public.places_city pc ON pp.city_id =pc.id LEFT JOIN public.places_county pcty ON pc.county_id = pcty.id LEFT JOIN public.places_state ps ON pcty.state_id = ps.id) AS coalesced_all; SELECT destID from tempttdDest WHERE dcreated > '2015-04-10 17:57:04.00000-00' OR dupdated > '2015-04-10 17:57:04.00000-00'; Processing Document # 1 at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:270) at org.apache.solr.handler.dataimport.DataImporter.doDeltaImport(DataImporter.java:440) at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:478) at org.apache.solr.handler.dataimport.DataImportHandler.handleRequestBody(DataImportHandler.java:179) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904) at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:659) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:362) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2379) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT * into TEMPORARY tempttdDest FROM (SELECT dd.id || COALESCE(ddt.destination_type, '') || COALESCE(df.feature, '') || COALESCE(dc.cuisine, '') as destID, dd.id as did, dd.created as dcreated, dd.updated as dupdated, dd.name as dName, dd.web_description as dDescription, dd.editors_pick as dPick, dd.open_table_id as onLineReservation, dd.critics_rating as dStar, ddt.destination_type as category, df.feature as feature, dc.cuisine as cuisine, tad.neighborhood_name as neighborhood, tad.latitude as latitude, tad.longitude as longitude, tad.priority as priority, tad.neighborhood_slug as neighborhoodSlug, pc.city as city, pz.zip_code as zipCode, pp.street_address as street, pcty.county as county, ps.state as state FROM public.destinations_destination dd LEFT JOIN public.destinations_destination_destination_type dddt ON dd.id = dddt.destination_id LEFT JOIN public.destinations_destinationtype ddt ON dddt.destinationtype_id = ddt.id LEFT JOIN public.destinations_destination_features ddf ON dd.id = ddf.destination_id LEFT JOIN public.destinations_feature df ON ddf.feature_id = df.id LEFT JOIN public.destinations_destination_cuisine_types ddct ON dd.id = ddct.destination_id LEFT JOIN public.destinations_cuisine dc ON ddct.cuisine_id = dc.id LEFT JOIN public.ttd_api_destination tad ON dd.id = tad.api_id LEFT JOIN public.places_place pp ON dd.place_id = pp.id LEFT JOIN public.places_zipcode pz ON pp.zip_code_id = pz.id LEFT JOIN public.places_city pc ON pp.city_id =pc.id LEFT JOIN public.places_county pcty ON pc.county_id = pcty.id LEFT JOIN public.places_state ps ON pcty.state_id = ps.id) AS coalesced_all; SELECT destID from tempttdDest WHERE dcreated > '2015-04-10 17:57:04.00000-00' OR dupdated > '2015-04-10 17:57:04.00000-00'; Processing Document # 1 at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71) at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:279) at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:236) at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:40) at org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59) at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextModifiedRowKey(SqlEntityProcessor.java:84) at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextModifiedRowKey(EntityProcessorWrapper.java:267) at org.apache.solr.handler.dataimport.DocBuilder.collectDelta(DocBuilder.java:781) at org.apache.solr.handler.dataimport.DocBuilder.doDelta(DocBuilder.java:338) at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:223) ... 24 more Caused by: java.lang.NullPointerException at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:277) ... 32 more Andrew Gilbertson