Everything you need to know about Domino Query Language

Domino Tech School

Domino Tech School’s first session had overwhelming enthusiasm and participation. Hundreds of attendees joined us live on Thursday, January 24, eager to learn about Domino Query Language (DQL) from HCL’s John Curtis. John delivered a great session — system administrators from around the globe shared how easy it was to follow along and developers were excited for DQL as a new language.

If you were not able to attend the webcast live, you can watch the recording here.

We have gathered answers to the most asked questions from the live session below. Enjoy!

Q. Where can I find documentation about DQL?
A. You can find it here.

Q. Is the ISSUMMARY field required? Does that mean that we can’t query for content in RT fields?
A. Yes. Document summary residence is currently required.

Q. As DQL relates on columns in views, does that mean it can’t access data stored in encrypted fields (even if it has been encrypted with a private encryption key stored in the server’s ID file)?
A. Correct. DQL can’t access encrypted data. The same goes for full text, views, and folders.

Q. What if two users store a temporary query into the same folder?
A. The last one takes precedence. You have to control your folder name space.

Q. How does the performance of DQL compare with doing a full text search in LotusScript/Java?
A. It varies. For small document sets it’s comparable, but for large sets FTSearch will likely have an edge. For now. We’re going to include FTSearch in DQL, speed up view searching for parity, and deliver even better speed. DQL will only get faster.

Q. How is security implemented in DQL?
A. Views with any security on them are not included, and all document security is honored. DQL processing honors document level security.

Q. Can DQL be used on local replicas, or just on the server?
A. DQL runs on the client or the server. On the client, because it requires the design catalog, updall must be run.

Q. The view with SELECT @All is for the nsf scan. Is that correct?
A. No, it’s for use with field = value terms — we will use view columns to satisfy it (faster).

Q. Do DQL queries run under a new task?
A. No. DQL code resides in the main Domino DLL/.so file, so any code in any add-in can call it.

Q. Would it be possible to get a trace for an executed search — specifically, so you can get performance metrics from a live system?
A. Yes. EXPLAIN is the thing to learn and tune your queries with.

Q. Please expand on view needing “Select @All” always.
A. We use views to satisfy <field> <operator> <value> terms, looking them up in views where we can for speed. Anything OTHER than Select @ALL would create additional, uncoded filters on the results. So SELECT form = ‘myform’ will tack that filter onto name = ‘John’  and the user never asked for that filter. If you do want that filter, use the ‘myview’.name = ‘John’ syntax.

Q. Does the NSF scan operate on documents in particular order (creation date, modification date, etc.) for purposes of the max scan limit?
A. No. There’s no defined order for NSFSearch scanning. Going beyond the max fails the query, so the order is not important. There is no “get first n” parameter.

Finally, don’t forget to register for the next session of Domino Tech School, “Upgrading to Domino V10: Best Practices.” We look forward to seeing you there.