<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Some more client feedback on the query DSL/functionality.<br><div><br><div>Begin forwarded message:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="auto"><blockquote type="cite"><span>Thanks for sending this through. We have a few suggestions around functionality that we've found very useful in the past, but otherwise it looks promising.</span><br><span></span><br><span>1. Query on keys or portion of keys</span><br><span></span><br><span>2. Ability to query on unindexed attributes</span><br></blockquote></div></blockquote><div><br></div><div>We had this in mind, but I don't think this functionality will make it in the first release (ISPN 6.0)/&nbsp;</div><br><blockquote type="cite"><div dir="auto"><blockquote type="cite"><span></span><br><span>3. the ability to specify a custom filter is potentially useful to implement missing or business logic, although in practice you may be able to construct these with the given filters. </span><br><span>Example: Filter out currency values older than X if the time is between 10am and 11am </span><br></blockquote></div></blockquote><div><br></div><div>something to consider.</div><br><blockquote type="cite"><div dir="auto"><blockquote type="cite"><span></span><br><span>4. &nbsp;The ability to specify a custom extractor which could be used to extract a portion of stored data or manipulate it before comparison.</span><br><span>Example : data is being stored as an array and we're interested in the Nth value in the array -&gt; this is a requirement from a previous project</span><br><span></span><br><span>5. equality and range filters should also include the "andEquals" options: lessThanEquals, greaterThanEquals</span><br></blockquote></div></blockquote><div><br></div><div>+1</div><br><blockquote type="cite"><div dir="auto"><blockquote type="cite"><span></span><br><span>6. all(List) and any(List) functions are easier to use than chaining together and() and or() statements</span><br></blockquote></div></blockquote><div><br></div>+1</div><div><br><blockquote type="cite"><div dir="auto"><blockquote type="cite"><span></span><br><span>7. I'd suggest with() rather than having() as this is closer to SQL syntax, which has a different meaning for HAVING</span><br><span></span><br><span>Do queries require that the entire object be deserialised before the filter can be evaluated or do you compare on deserialised index values? </span><br><span>This is potentially quite slow, and requires that matching Java classes are provided on the server side even if the client is .NET</span><br><span></span><br><span>Rob</span><br><span></span><br><span></span><br></blockquote></div></blockquote></div><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Cheers,</div><div>--&nbsp;<br>Mircea Markus</div><div>Infinispan lead&nbsp;(<a href="http://www.infinispan.org">www.infinispan.org</a>)</div><div><br></div></div></span></div></span></div></span></div></span><br class="Apple-interchange-newline"></span><br class="Apple-interchange-newline">
</div>
<br></body></html>