On Mon, Nov 2, 2009 at 11:34 AM, Amit Nithian <anith...@gmail.com> wrote: > A thought I had on this from a DIH design perspective. Would it be better to > have the SQL queries stored in an element rather than an attribute so that > you can wrap it in a CDATA block without having to mess up the look of query > with <, >? Makes debugging easier (I know find and replace is trivial > but it can be annoying when debugging SQL issues :-)).
Actually most of the parsers are forgiving in this aspect. I mean '<' and '>' are ok in the xml parser shipped with the jdk. > > On Wed, Oct 28, 2009 at 5:15 PM, Lance Norskog <goks...@gmail.com> wrote: > >> It is easier to put SQL select statements in a view, and just use that >> view from the DIH configuration file. >> >> On Tue, Oct 27, 2009 at 12:30 PM, Andrew Clegg <andrew.cl...@gmail.com> >> wrote: >> > >> > >> > Heh, eventually I decided >> > >> > "where 4 > node_depth" >> > >> > was the most pleasing (if slightly WTF-ish) way of writing it... >> > >> > Cheers, >> > >> > Andrew. >> > >> > >> > Erik Hatcher-4 wrote: >> >> >> >> Use < instead of < in that attribute. That should fix the issue. >> >> Remember, it's an XML file, so it has to obey XML encoding rules which >> >> make it ugly but whatcha gonna do? >> >> >> >> Erik >> >> >> >> On Oct 27, 2009, at 11:50 AM, Andrew Clegg wrote: >> >> >> >>> >> >>> Hi, >> >>> >> >>> If I have a DataImportHandler query with a greater-than sign in, >> >>> like this: >> >>> >> >>> <entity name="higher_node" dataSource="database" >> >>> query="select *, >> >>> title as keywords from cathnode_text where node_depth > 4"> >> >>> >> >>> Everything's fine. However, if it contains a less-than sign: >> >>> >> >>> <entity name="higher_node" dataSource="database" >> >>> query="select *, >> >>> title as keywords from cathnode_text where node_depth < 4"> >> >>> >> >>> I get this exception: >> >>> >> >>> INFO: Processing configuration from solrconfig.xml: >> >>> {config=dataconfig.xml} >> >>> [Fatal Error] :240:129: The value of attribute "query" associated >> >>> with an >> >>> element type "null" must not contain the '<' character. >> >>> 27-Oct-2009 15:30:49 >> >>> org.apache.solr.handler.dataimport.DataImportHandler >> >>> inform >> >>> SEVERE: Exception while loading DataImporter >> >>> org.apache.solr.handler.dataimport.DataImportHandlerException: >> >>> Exception >> >>> occurred while initializing context >> >>> at >> >>> org >> >>> .apache >> >>> .solr >> >>> .handler.dataimport.DataImporter.loadDataConfig(DataImporter.java:184) >> >>> at >> >>> org >> >>> .apache >> >>> .solr.handler.dataimport.DataImporter.<init>(DataImporter.java:101) >> >>> at >> >>> org >> >>> .apache >> >>> .solr >> >>> .handler.dataimport.DataImportHandler.inform(DataImportHandler.java: >> >>> 113) >> >>> at >> >>> org >> >>> .apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java: >> >>> 424) >> >>> at org.apache.solr.core.SolrCore.<init>(SolrCore.java:588) >> >>> at >> >>> org.apache.solr.core.CoreContainer >> >>> $Initializer.initialize(CoreContainer.java:137) >> >>> at >> >>> org >> >>> .apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java: >> >>> 83) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina >> >>> .core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java: >> >>> 275) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina >> >>> .core >> >>> .ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java: >> >>> 397) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina >> >>> .core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina.core.StandardContext.filterStart(StandardContext.java:3709) >> >>> at >> >>> org.apache.catalina.core.StandardContext.start(StandardContext.java: >> >>> 4356) >> >>> at >> >>> org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java: >> >>> 1244) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java: >> >>> 604) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java: >> >>> 129) >> >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) >> >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina >> >>> .core >> >>> .ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: >> >>> 290) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina >> >>> .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: >> >>> 233) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina.core.StandardContextValve.invoke(StandardContextValve.java: >> >>> 175) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina >> >>> .authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) >> >>> at >> >>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java: >> >>> 568) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> >>> at >> >>> org >> >>> .apache >> >>> .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: >> >>> 109) >> >>> at >> >>> org >> >>> .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: >> >>> 286) >> >>> at >> >>> org >> >>> .apache.coyote.http11.Http11Processor.process(Http11Processor.java: >> >>> 844) >> >>> at >> >>> org.apache.coyote.http11.Http11Protocol >> >>> $Http11ConnectionHandler.process(Http11Protocol.java:583) >> >>> at >> >>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java: >> >>> 447) >> >>> at java.lang.Thread.run(Thread.java:619) >> >>> Caused by: org.xml.sax.SAXParseException: The value of attribute >> >>> "query" >> >>> associated with an element type "null" must not contain the '<' >> >>> character. >> >>> at >> >>> com >> >>> .sun >> >>> .org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java: >> >>> 239) >> >>> at >> >>> com >> >>> .sun >> >>> .org >> >>> .apache >> >>> .xerces >> >>> .internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283) >> >>> at >> >>> org >> >>> .apache >> >>> .solr >> >>> .handler.dataimport.DataImporter.loadDataConfig(DataImporter.java:172) >> >>> ... 30 more >> >>> >> >>> Is this fixable, or an unavoidable feature of Xerces? If the latter, >> >>> perhaps >> >>> the docs could benefit from a note to say "use NOT a >= b" or >> >>> something? >> >>> >> >>> Speaking of, I found this in the wiki examples for the DIH: >> >>> >> >>> <entity name="item" pk="ID" >> >>> query="select * from item" >> >>> deltaImportQuery="select * from item where >> >>> ID=='${dataimporter.delta.id}'" >> >>> deltaQuery="select id from item where last_modified > >> >>> '${dataimporter.last_index_time}'"> >> >>> >> >>> Shouldn't that be one equals sign: >> >>> >> >>> deltaImportQuery="select * from item where >> >>> ID='${dataimporter.delta.id}'" >> >>> >> >>> Or is it doing something clever with Java operators? >> >>> >> >>> Cheers, >> >>> >> >>> Andrew. >> >>> >> >>> -- >> >>> View this message in context: >> >>> >> http://www.nabble.com/Greater-than-and-less-than-in-data-import-SQL-queries-tp26080100p26080100.html >> >>> Sent from the Solr - User mailing list archive at Nabble.com. >> >>> >> >> >> >> >> >> >> > >> > -- >> > View this message in context: >> http://www.nabble.com/Greater-than-and-less-than-in-data-import-SQL-queries-tp26080100p26083680.html >> > Sent from the Solr - User mailing list archive at Nabble.com. >> > >> > >> >> >> >> -- >> Lance Norskog >> goks...@gmail.com >> > -- ----------------------------------------------------- Noble Paul | Principal Engineer| AOL | http://aol.com