gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java (6 lines): - line 369: } else { // TODO: if(standardAlgorithmBarrier.isEmpty()) -- leads to consistent counts without retracting paths, but orders of magnitude slower (or make Traverser.tags an equality concept) - line 372: while (matchTraversal.hasNext()) { // TODO: perhaps make MatchStep a LocalBarrierStep ?? - line 490: // TODO: sideEffect check? - line 578: // TODO: sideEffect check? - line 642: return endLabel.isPresent() && traverser.path().hasLabel(endLabel.get()); // TODO: !isPresent? - line 750: // TODO: generalize this for future MatchAlgorithms (given that 3.2.0 will focus on RealTimeStrategy, it will probably go there) gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java (5 lines): - line 100: //TODO: with Traversal.reverse() - line 123: //TODO: with Traversal.reverse() - line 326: // TODO: this test requires Traversal.reverse() - line 352: // TODO: this test requires Traversal.reverse() - line 427: // TODO: the where() is trying to get Garcia's name. Why is ComputerVerificationStrategy allowing this? gremlin-python/src/main/python/gremlin_python/driver/aiohttp/transport.py (3 lines): - line 138: # TODO: potentially refactor to just use streaming and remove transport/protocol - line 149: raise Exception( # TODO: do we need proper exception class for this? - line 155: # TODO: double check during refactoring spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/process/computer/traversal/strategy/optimization/SparkSingleIterationStrategy.java (2 lines): - line 79: !(computerTraversal.getTraverserRequirements().contains(TraverserRequirement.LABELED_PATH) || // TODO: remove this when dynamic detachment is available in 3.3.0 - line 80: computerTraversal.getTraverserRequirements().contains(TraverserRequirement.PATH))) { // TODO: remove this when dynamic detachment is available in 3.3.0 gremlin-python/src/main/python/gremlin_python/process/graph_traversal.py (2 lines): - line 145: # TODO remove or update once HTTP transaction is implemented - line 150: # # TODO https://issues.apache.org/jira/browse/TINKERPOP-2664: refactor this to be nicer in 3.6.0 when gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraph.java (2 lines): - line 101: ElementHelper.attachProperties(this.starVertex, VertexProperty.Cardinality.list, keyValues); // TODO: is this smart? I say no... cause vertex property ids are not preserved. - line 127: // TODO: is this the semantics we want? the only "real vertex" is star vertex. gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategy.java (2 lines): - line 141: if (selectStep.getPop() != Pop.all && selectStep.getPop() != Pop.mixed && // TODO: necessary? - line 177: if (selectOneStep.getPop() != Pop.all && selectOneStep.getPop() != Pop.mixed && // TODO: necessary? gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java (2 lines): - line 107: // TODO: if not an adjacent traversal, use Local message scope -- a dual messaging system. - line 195: // register profile steps (TODO: try to hide this) gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/BytecodeSerializer.js (2 lines): - line 58: bufs.push(this.ioc.intSerializer.serialize(item.stepInstructions.length, false)); // TODO: what if steps_length > INT32_MAX - line 72: bufs.push(this.ioc.intSerializer.serialize(item.sourceInstructions.length, false)); // TODO: what if sources_length > INT32_MAX spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/structure/io/gryo/GryoRegistrator.java (2 lines): - line 236: // TODO: VoidSerializer is a default serializer and thus, may not be needed (if it is, you can't use FieldSerializer) - line 237: // TODO: We will have to copy/paste the shaded DefaultSerializer.VoidSerializer into an unshaded form. gremlin-go/driver/httpTransporter.go (2 lines): - line 32: // TODO decide channel size when chunked response handling is implemented - for now just set to 1 - line 133: // TODO handle chunked encoding and send chunks to responseChannel gremlin-python/src/main/python/gremlin_python/driver/client.py (2 lines): - line 39: # TODO: remove session, update connection pooling, etc. - line 157: # TODO: bindings is now part of request_options, evaluate the need to keep it separate in python. gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/VertexPropertySerializer.js (2 lines): - line 151: // TODO: should we verify that parent is null? - line 163: // TODO: should we verify that properties is null? neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/Neo4jVertexProperty.java (1 line): - line 77: // TODO: Neo4j needs a better ID system for VertexProperties gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/StringSerializer.js (1 line): - line 50: bufs.push(this.ioc.intSerializer.serialize(v.length, false)); // TODO: what if len > INT32_MAX, for now it's backed by logic of IntSerializer.serialize itself gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/ScriptTraversal.java (1 line): - line 66: engineBindings.put("graph", this.graph); // TODO: we don't need this as the traversalSource.getGraph() exists, but its now here and people might be using it (remove in 3.3.0) gremlin-go/build/generate.groovy (1 line): - line 104: // TODO make sure all is supported gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/connection.ts (1 line): - line 143: this._header = String.fromCharCode(this.mimeType.length) + this.mimeType; // TODO: what if mimeType.length > 255 gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MeanGlobalStep.java (1 line): - line 161: // TODO: NumberHelper should provide a compareTo() implementation gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/LongSerializerNg.js (1 line): - line 26: // TODO: it's based on BigInt native JavaScript type to completely support gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/StartStep.java (1 line): - line 83: clone.start = null; // TODO: is this good? gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ComplexTest.java (1 line): - line 316: // TODO: remove .withoutStrategies(PathRetractionStrategy.class) gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/ShortSerializer.js (1 line): - line 49: v.writeInt16BE(item); // TODO: what if item is not within int16 limits, for now writeInt16BE would error gremlin-python/src/main/python/gremlin_python/driver/serializer.py (1 line): - line 148: # TODO: hack to remove type code from gremlin value for V4 message format, writer doesn't seem to have a way to gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeDeserializer.java (1 line): - line 227: // TODO : maybe throw an error instead? gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/optimization/MessagePassingReductionStrategy.java (1 line): - line 157: else if (currentStep instanceof EdgeVertexStep) // TODO: add GraphStep but only if its mid-traversal V()/E() gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/NormalDistribution.java (1 line): - line 54: double mean = (expectedTotal * 1.0) / invocations; //TODO: account for truncated gaussian distribution gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/GraphBinary.js (1 line): - line 33: * TODO: it has the following open topics: gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/PropertySerializer.js (1 line): - line 132: // TODO: should we verify that parent is null? gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/MapSerializer.js (1 line): - line 61: map_length = this.ioc.intSerializer.INT32_MAX; // TODO: is it expected to be silenced? or it's better to error instead? gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/StepDefinition.java (1 line): - line 218: * TODO FIXME Add same support for other languages (js, python, .net) gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/MutablePath.java (1 line): - line 58: // TODO: Why is this not working Hadoop serialization-wise?... Its cause DetachedPath's clone needs to detach on clone. gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphBinary/DataType.cs (1 line): - line 78: // TODO: Support metrics and traversal metrics spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/process/computer/traversal/strategy/optimization/interceptor/SparkStarBarrierInterceptor.java (1 line): - line 182: // TODO: tree() gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.ts (1 line): - line 42: // TODO: replace with `globalThis.crypto.randomUUID` once supported Node version is bump to >=19 gremlin-python/src/main/python/gremlin_python/process/traversal.py (1 line): - line 1068: # TODO to be removed or updated once HTTP transaction is implemented gremlin-python/src/main/python/gremlin_python/driver/driver_remote_connection.py (1 line): - line 111: # TODO remove or update once HTTP transaction is implemented gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java (1 line): - line 2173: // TODO: add a test the shows DAG behavior -- splitting another TraversalVertexProgram off of the PeerPressureVertexProgram job. gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/ByteBufferSerializer.js (1 line): - line 52: length = 0; // TODO: test it gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/MasterExecutor.java (1 line): - line 146: // TODO: once this is complete (fully known), move to TraversalHelper gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/LongSerializer.js (1 line): - line 96: // TODO: It tries to keep the same contract as GraphSON LongSerializer provides. gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/EdgeTest.java (1 line): - line 298: //assertEquals(8, v1.outE().count().next().intValue()); TODO: Neo4j is not happy hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/mapreduce/MapReduceGraphComputer.java (1 line): - line 25: // TODO: A MapReduce implementation of GraphComputer gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultGremlinScriptEngineManager.java (1 line): - line 133: // TODO: should modules be a set based on "name" to ensure uniqueness? not sure what bad stuff can happen with dupes gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/PathSerializer.js (1 line): - line 104: // TODO: should we check content of labels to make sure it's List< Set > ? gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java (1 line): - line 976: .barrier() // TODO: this barrier() should not be necessary gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java (1 line): - line 155: * TODO: getScopeKeys should return order-aware data structure instead of HashSet so that graph providers can gremlin-go/driver/serializer.go (1 line): - line 105: // TODO temp serialization before fully streaming set-up gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java (1 line): - line 757: // TODO Auto-generated method stub gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/Attachable.java (1 line): - line 349: return Method.createEdge(attachableEdge, hostVertex.graph()); // TODO (make local to vertex) gremlin-tools/gremlin-socket-server/src/main/java/org/apache/tinkerpop/gremlin/socket/server/SocketServerRunner.java (1 line): - line 34: // TODO: add HTTP version of socketserver gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphTest.java (1 line): - line 140: // TODO: you can't get adjacent labels -- graph.vertices().forEachRemaining(vertex -> TestHelper.validateVertexEquality(vertex, g1.vertices(vertex.id()).next(), true)); gremlin-go/driver/client.go (1 line): - line 132: // TODO interceptors (ie. auth) gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/ArraySerializer.js (1 line): - line 53: length = 0; // TODO: test it gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/UuidSerializer.js (1 line): - line 33: // TODO: any idea to support UUID automatic serialization via AnySerializer in future? gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/binary/internals/BigIntegerSerializer.js (1 line): - line 26: // TODO: it has room for performance improvements spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/structure/io/InputRDDFormat.java (1 line): - line 100: return 1.0f; // TODO: make this dynamic (how? its an iterator.)