Does your database contains one or more empty DateOfBirth elements?
The server won't let you insert empty elements on which a date range index already exists. But if you insert some empty DateOfBirth elements, and then create the range index, you will see errors like the one you have described.
You should be able to fix this by writing an XPath that selects the empty DateOfBirth elements, and then use xdmp:node-delete() to remove each one.
-- Mike On 2009-12-07 12:24, Karl Erisman wrote:
My question involves strange behavior when using the cts:query constructors and range indexes/queries. The following range query fails: (: (1) :) cts:search( collection(), cts:and-query(( cts:element-range-query(fn:QName("http://my-namespace", "DateOfBirth"),">", xs:date("1975-01-01") ), cts:query(()) ))) The error string is: "Invalid cast: xs:untypedAtomic("") cast as xs:date". That sounds like there's an error with the FIRST nested query involving the date cast. However, merely adding a nested query makes the search successful. Note that the FIRST nested query does not change: (: (2) :) cts:search(collection(), cts:and-query(( cts:element-range-query(fn:QName("http://my-namespace", "DateOfBirth"),">", xs:date("1975-01-01") ), cts:query(()), cts:element-value-query(fn:QName("http://my-namespace", "PatientFirstName"), "*") ))) Since (2) works, I must have properly created the range element index and the range query must be correct. What is wrong? _______________________________________________ General mailing list General@developer.marklogic.com http://xqzone.com/mailman/listinfo/general
_______________________________________________ General mailing list General@developer.marklogic.com http://xqzone.com/mailman/listinfo/general