Ihor Radchenko <yanta...@gmail.com> writes:

>> org-ql doesn't use skip functions, just queries.
>
> Skip functions are essentially used-defined queries as soon as the
> queries are tested against every headline.

Skip functions aren't necessary with org-ql, because the query itself
can have arbitrary Lisp code.  So, of course, you can call custom
functions in queries, even your own skip functions (with `not', of
course), but in most cases, they can be covered with built-in
predicates.

> I can rewrite my skip functions into queries, but I don't expect much
> improvement since org-ql seems to use org-entry-get, which is the main
> performance bottleneck for my agenda generation.

org-entry-get is only called for the (property) predicate.  It's the
correct way to get Org properties, because it handles special
properties, inheritance, etc.  However, when possible, queries are
optimized to a whole-buffer regexp search that finds possible matches.
So, for example, a query like '(property "owner" "yantar") would be
optimized to a whole-buffer regexp search that would be very fast.  See
function org-ql--query-preamble.



Reply via email to