[
https://issues.apache.org/jira/browse/TINKERPOP-3055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17947098#comment-17947098
]
ASF GitHub Bot commented on TINKERPOP-3055:
-------------------------------------------
andreachild commented on code in PR #3099:
URL: https://github.com/apache/tinkerpop/pull/3099#discussion_r2058910838
##########
gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal-strategy.js:
##########
@@ -239,6 +276,16 @@ class PathRetractionStrategy extends TraversalStrategy {
}
}
+class ProductiveByStrategy extends TraversalStrategy {
+ /**
+ * @param {Object} [options]
+ * @param {Array<String>} [options.productiveKeys] set of keys that will
always be productive
+ */
+ constructor(options) {
+
super('org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy',
options);
Review Comment:
I'm curious why in this case the full `options` are passed through to the
super constructor but for other strategies like `SeedStrategy` only specific
options are passed through? Especially since the js doc for this function
specifically mentions `options.productiveKeys`.
> withoutStrategies() mechanism in programming languages for providers
> --------------------------------------------------------------------
>
> Key: TINKERPOP-3055
> URL: https://issues.apache.org/jira/browse/TINKERPOP-3055
> Project: TinkerPop
> Issue Type: Improvement
> Components: dotnet, go, javascript, process, python
> Affects Versions: 3.7.1
> Reporter: Stephen Mallette
> Priority: Major
>
> {{withoutStrategies()}} is in the grammar for TINKERPOP-2862. That change did
> not address its accessibility for provider strategies in language variants
> very well. As the syntax requires a {{Class}} (and for the grammar, a
> registered strategy class) you may not have that reference in a language
> variant. Users could create dummy classes as the grammar works on simple
> name, but that's not especially nice. Otoh, most users shouldn't be tinkering
> with strategies so perhaps that's ok? It could be inconvenient for notebook
> users and similar tools though to create the dummy. A simple alternative
> could just be a {{withoutStrategies(String...)}} but that's not particularly
> nice. Other ideas?
> needs a general look at all strategy construction across all languages:
> 1. check if the strategy construction makes sense in terms of types and
> syntax in each language
> 2. watch out for wrong types being parsed into {{Configuration}} which can
> lead to weird looking errors.
> 3. are there adequate tests to validate all our syntax is working. we
> technically need to test every strategy configuration options as those
> corners are where bugs can hide.
> 4. double check {{List}} vs {{Set}} syntax because {{Set}} might be preferred
> but a lot of folks will reach for {{[ ]}} just out of habit....do we want
> them failing for that? can we ease the type there without losing {{Set}} in
> type safe languages?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)