My apologies, I just saw that I didn't include a link in that email. The proposal is here:
https://github.com/apache/tinkerpop/blob/proposal_3/docs/src/dev/future/proposal-3-remove-closures.asciidoc Dave On Tue, Feb 14, 2023 at 7:09 AM David Bechberger <d...@bechberger.com> wrote: > Hi All, > > There are a number of useful operations that Gremlin users often wish to > perform that are not provided today in the form of traversal steps or > predicates (P/TextP). For historical reasons these functions were omitted > and users were able to accomplish these tasks by specifying anonymous code > blocks or “closures” to perform these tasks. For example, below is an > example of how you can achieve a case-insensitive search for any cities > that contain “Miami”. > > g.V().hasLabel('city'). > > has('name',filter{it.get().toLowerCase().contains('Miami'.toLowerCase())}) > > While this is a powerful fallback mechanism in Gremlin to handle use cases > where there is no functionality within the Gremlin language to meet the > requirements. However, for a variety of reasons such as security and > performance, many/most remote providers of TinkerPop do not allow users to > execute closures as part of a query. This leaves users with a problem, as > the mechanism provided to solve these sorts of use cases is not allowed. I > have come up with a proposed framework for removing the need for closures > by adding the most commonly requested functions as new Gremlin steps. > Below is a proposal to highlight this and propose a first set of these > steps for string manipulation, list manipulation, and data manipulation. > > What are your thoughts on this approach? > Any items we missed? > Concerns? > > Thanks, > Dave >