wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/DataQuantaBuilder.scala (5 lines): - line 22: * TODO: add unitary test to the elements in the file org.apache.wayang.api.DataQuantaBuilder.scala - line 1060: // TODO: Add these estimators. - line 1640: // TODO: Get the ClassTag right. - line 1646: // TODO: We could improve by combining the TypeTraps in the body loop. - line 1738: // TODO: We could improve by combining the TypeTraps in the body loop. wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/CrossPlatformExecutor.java (5 lines): - line 199: // TODO: Assumes non-nested loops. - line 279: // TODO: Better pass the stage to the thread rather than letting the thread retrieve the stage itself (to avoid concurrency issues). - line 476: // TODO: This code assumes non-nested loops. - line 1149: // TODO: Better use Java's ForkJoinPool to reduce thread creation overhead and control concurrency. - line 1162: // TODO: Do not busy-wait (could be solved with the ForkJoinPool as well). wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/StageAssignmentTraversal.java (4 lines): - line 132: // TODO: The following criterion isolates LoopHeadOperators into own ExecutionStages, so as to avoid problems connected to circular dependencies. But this might not be as performant as it gets. - line 392: // TODO: This splitting mechanism can cause unnecessary fragmentation of stages. Most likely, because "willTaskBeSeparated" depends on the traversal order of the stage DAG. - line 423: // TODO: Use marks to implement same-stage splits. - line 839: // TODO: We cannot "exchange" Channels so easily any more. wayang-api/wayang-api-python/src/main/java/org/apache/wayang/api/python/executor/ProcessFeeder.java (4 lines): - line 39: //TODO add to a config file - line 58: //TODO use config buffer size - line 84: /*TODO Missing case PortableDataStream */ - line 104: // TODO: Properly type this in the future wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/Subplan.java (4 lines): - line 62: // TODO: If the input operator does not have the common parent as parent, then it must be "terminal" in its parent. - line 63: // TODO: If the output operator does not have the common parent as parent, then it must be "terminal" in its parent. - line 91: InputSlot.mock(inputs, this, false); // TODO: This could give use problems with Slot name collisions. - line 185: // TODO: develop constructors/factory methods to deal with more than one input and output operator wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/graph/JavaPageRankOperator.java (4 lines): - line 82: //TODO: change for efficient map - line 85: //TODO: change for efficient map - line 96: //TODO: change for efficient map - line 105: //TODO: change for efficient map wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTsvFileSource.java (3 lines): - line 103: // TODO rewrite in less verbose way. - line 115: // TODO: Fix Record parsing. - line 118: // TODO: Fix Tuple2 parsing wayang-api/wayang-api-python/src/main/java/org/apache/wayang/api/python/executor/PythonProcessCaller.java (3 lines): - line 44: //TODO How to get the config - line 49: //TODO create documentation to how to the configuration in the code - line 57: /*TODO should NOT be assigned an specific port, set port as 0 (zero)*/ wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/SparkIESelfJoinOperator.java (3 lines): - line 177: //TODO: - line 185: //TODO: - line 195: // TODO: Check if RDD.partition() is an action. wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/ExecutionTaskFlowCompiler.java (3 lines): - line 420: // TODO: Make generic: There might be multiple OutputSlots for final loop outputs (one for each iteration). - line 488: if (currentLoop == null) { // TODO: Current code supports only non-nested loops. - line 501: // TODO: Current code (implicitly) supports only non-nested loops. wayang-plugins/wayang-iejoin/src/main/java/org/apache/wayang/iejoin/operators/SparkIEJoinOperator.java (3 lines): - line 223: //TODO: - line 231: //TODO: - line 241: // TODO: Check if RDD.partition() is an action. wayang-api/wayang-api-sql/src/main/java/org/apache/wayang/api/sql/calcite/converter/WayangTableScanVisitor.java (2 lines): - line 36: //TODO: create tablesource with column types - line 37: //TODO: support other sources wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/execution/FlinkExecutor.java (2 lines): - line 99: // TODO: Use proper progress estimator. - line 136: //TODO validate the execute in different contexts wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTsvFileSink.java (2 lines): - line 78: // TODO: Once there are more tuple types, make this generic. - line 85: .coalesce(1) // TODO: Allow more than one TSV file? wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ObjectFileSource.java (2 lines): - line 102: //TODO validate if the implementation apply for the case - line 159: //TODO validate if the implementation apply for the case wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/SampleOperator.java (2 lines): - line 67: // TODO: With 0 being a legal dataset size, it would be nice to use a different "null" value, e.g., -1. - line 221: // TODO: Incorporate OperatoContext would allow for precise estimation. wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/CardinalityRepository.java (2 lines): - line 107: // TODO: Handle cardinalities inside of loops. - line 168: // TODO: UDFs? How can we reference them? wayang-api/wayang-api-sql/src/main/java/org/apache/wayang/api/sql/sources/fs/CsvRowConverter.java (2 lines): - line 35: * TODO: handle different variants - line 146: //TODO: enable logging wayang-api/wayang-api-sql/src/main/java/org/apache/wayang/api/sql/calcite/rules/WayangRules.java (2 lines): - line 45: //TODO: split into multiple classes - line 134: * TODO: a cleaner way to handle this wayang-api/wayang-api-sql/src/main/java/org/apache/wayang/api/sql/calcite/jdbc/JdbcSchema.java (2 lines): - line 212: // TODO: populate map from JDBC metadata - line 465: // TODO: populate map from JDBC metadata wayang-api/wayang-api-python/src/main/java/org/apache/wayang/api/python/executor/ProcessReceiver.java (2 lines): - line 27: /*TODO cannot be always string, include definition for every operator - line 35: //TODO use config buffer size wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/channels/ChannelConversionGraph.java (2 lines): - line 638: // TODO: Create all possible combinations if required. - line 955: // TODO: Refactor this. wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/SanityChecker.java (2 lines): - line 119: * TODO: (Documentation) add SanityChecker.checkFlatAlternatives - line 132: * TODO: (Documentation) add SanityChecker.getFlatAlternativeCallback wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkRepeatExpandedOperator.java (2 lines): - line 94: // TODO: see if the case have a more elements that after the expanded - line 156: //TODO: see if after the expanded have another case wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/api/Job.java (2 lines): - line 261: // TODO: Move outside of Job class - line 299: // TODO: generate run ID. For now we fix this because we can't handle multiple jobs, neither in montoring nor execution. wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/DataQuanta.scala (2 lines): - line 22: * TODO: add unitary test to the elements in the file org.apache.wayang.api.DataQuanta.scala - line 1193: * TODO: add the documentation to the object org.apache.wayang.api.DataQuanta wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/JoinOperator.java (1 line): - line 104: // TODO: Find a better estimator. wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/operators/FlinkObjectFileSink.java (1 line): - line 81: //TODO: remove the set parallelism 1 wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/types/BasicDataUnitType.java (1 line): - line 35: // TODO: The class might have generics. In that case, this class does currently not fully describe the data unit type. wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkJoinOperator.java (1 line): - line 119: *

TODO: See, if we can somehow dodge all this conversion, which is likely to happen a lot.

python/src/pywy/core/core.py (1 line): - line 29: """ TODO: enrich this documentation wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkObjectFileSink.java (1 line): - line 80: .coalesce(1) // TODO: Remove. This only hotfixes the issue that JavaObjectFileSource reads only a single file. wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/LoopIsolator.java (1 line): - line 80: // TODO In the best case, we should also do the following sanity check: Is any loop body operator reachable... wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/CoGroupOperator.java (1 line): - line 105: // TODO: Find a better estimator. wayang-platforms/wayang-jdbc-template/src/main/java/org/apache/wayang/jdbc/operators/SqlToRddOperator.java (1 line): - line 97: // TODO: Add load profile estimators wayang-api/wayang-api-sql/src/main/java/org/apache/wayang/api/sql/calcite/converter/WayangSortVisitor.java (1 line): - line 50: // TODO: implement fetch & offset for java wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaLoopOperator.java (1 line): - line 188: } // TODO: In this specific case, the actual output Channel is context-sensitive because we could forward Streams/Collections. wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/MaterializedGroupByOperator.java (1 line): - line 96: // TODO: Come up with a decent way to estimate the "distinctness" of reduction keys. wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/executionplan/ExecutionPlan.java (1 line): - line 99: * TODO: ExecutionPlan.toJsonList add documentation wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/serialization/mixins/EstimatorMixIns.scala (1 line): - line 115: // TODO: Add more estimator mixins wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanImplementation.java (1 line): - line 97: // TODO: I think, we don't maintain this field properly. Also, its semantics blur inside of LoopImplementations. Can we remove it? wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/mapping/SampleMapping.java (1 line): - line 60: ); //TODO: check if the zero here affects execution wayang-platforms/wayang-generic-jdbc/src/main/java/org/apache/wayang/genericjdbc/execution/GenericJdbcExecutor.java (1 line): - line 80: // TODO: Load ChannelInstances from executionState? (as of now there is no input into PostgreSQL). wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkReduceByOperator.java (1 line): - line 115: *

TODO: See, if we can somehow dodge all this conversion, which is likely to happen a lot.

wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/KMeansOperator.java (1 line): - line 31: // TODO other parameters wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/costs/SimpleEstimationContext.java (1 line): - line 36: //TODO: change a for efficient Hashmap wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/execution/JavaExecutor.java (1 line): - line 77: // TODO: Use proper progress estimator. wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/Platform.java (1 line): - line 94: // TODO: Return some more descriptors about the state of the platform (e.g., available machines, RAM, ...)? wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaTsvFileSink.java (1 line): - line 95: // TODO: Once there are more tuple types, make this generic. wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/IntersectOperator.java (1 line): - line 68: // TODO: Find a better estimator. wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/serialization/mixins/ConfigurationAndContextMixIns.scala (1 line): - line 49: // TODO: Is this okay? wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/AggregatingCardinalityEstimator.java (1 line): - line 42: // TODO: Check if this is a good way. There are other palpable approaches (e.g., weighted average). wayang-benchmark/src/main/scala/org/apache/wayang/apps/kmeans/postgres/Kmeans.scala (1 line): - line 150: // TODO: The random cluster ID makes collisions during resurrection less likely but in general permits ID collisions. wayang-api/wayang-api-sql/src/main/java/org/apache/wayang/api/sql/calcite/converter/WayangMultiConditionJoinVisitor.java (1 line): - line 148: // TODO: needs withSqlImplementation() for sql support wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/LinearRegressionOperator.java (1 line): - line 32: // TODO other parameters wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/JDBCStorage.java (1 line): - line 23: //TODO: Implement JDBC connection wayang-ml4all/src/main/java/org/apache/wayang/ml4all/abstraction/api/UpdateLocal.java (1 line): - line 39: public abstract ML4allModel assign (R input, ML4allModel context); //TODO: deprecated class -> put input in a singleton list wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/PlanBuilder.scala (1 line): - line 21: * TODO: add unitary test to the elements in the file org.apache.wayang.api.PlanBuilder.scala wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/HadoopFileSystem.java (1 line): - line 108: // TODO implement properly. wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/NoIterationBreakpoint.java (1 line): - line 32: // TODO: We could break, if we enter a loop, however, multi-stage loop heads have feedback predecessors. wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/util/DataQuantaBuilderDecorator.scala (1 line): - line 31: * TODO: add the documentation in the methods of org.apache.wayang.api.util.DataQuantaBuilderDecorator wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/graph/package.scala (1 line): - line 29: * TODO: add the description for the implicitis in org.apache.wayang.api.graph wayang-benchmark/src/main/scala/org/apache/wayang/apps/kmeans/Kmeans.scala (1 line): - line 150: // TODO: The random cluster ID makes collisions during resurrection less likely but in general permits ID collisions. wayang-api/wayang-api-sql/src/main/java/org/apache/wayang/api/sql/sources/fs/JavaCSVTableSource.java (1 line): - line 57: // TODO: incorporate fields later for projectable table scans wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkDoWhileOperator.java (1 line): - line 174: // TODO: In this specific case, the actual output Channel is context-sensitive because we could forward Streams/Collections. wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/HttpMonitor.java (1 line): - line 29: * TODO: Implement wayang-platforms/wayang-flink/src/main/java/org/apache/wayang/flink/mapping/SampleMapping.java (1 line): - line 56: ); //TODO: check if the zero here affects execution wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/lineage/LazyExecutionLineageNode.java (1 line): - line 57: // TODO: Pinning the input ChannelInstances down like this is not very elegant. wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/fs/FileSystems.java (1 line): - line 132: )); // TODO: Add support. wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/ReduceByOperator.java (1 line): - line 108: // TODO: Come up with a decent way to estimate the "distinctness" of reduction keys. wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/RepeatMapping.java (1 line): - line 93: // TODO: This unfortunately does not work because we are introducing a non-source Subplan with a Source. wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkCoGroupOperator.java (1 line): - line 151: *

TODO: See, if we can somehow dodge all this conversion, which is likely to happen a lot.

wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkRandomPartitionSampleOperator.java (1 line): - line 245: ///FIXME: there are cases were the list will be smaller because of miscalculation of the partition size for mini-batch wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/cardinality/AbstractAlternativeCardinalityPusher.java (1 line): - line 118: // TODO: Check if this is a good way. There are other palpable approaches (e.g., weighted average). wayang-api/wayang-api-sql/src/main/java/org/apache/wayang/api/sql/calcite/optimizer/Optimizer.java (1 line): - line 201: //TODO: create a basic ruleset wayang-docs/src/main/resources/_layouts/default.html (1 line): - line 70: wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanEnumeration.java (1 line): - line 508: // TODO: Check if the plan conforms to this instance. wayang-docs/src/main/resources/assets/css/color.css (1 line): - line 19: /*TODO: bring the css to scss*/ wayang-benchmark/src/main/scala/org/apache/wayang/apps/util/ProfileDBHelper.scala (1 line): - line 42: //TODO: do the correction to store the element on the profile-db wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkRepeatOperator.java (1 line): - line 128: // TODO: In this specific case, the actual output Channel is context-sensitive because we could forward Streams/Collections. wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/RecordDataQuantaBuilder.scala (1 line): - line 21: * TODO: add unitary test to the elements in the file org.apache.wayang.api.RecordDataQuantaBuilder.scala wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/mapping/PageRankMapping.java (1 line): - line 88: // TODO: We only need this MapOperator, because we cannot have a singl Subplan InputSlot that maps to two wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkTsvFileSource.java (1 line): - line 81: // TODO: Important. Enrich type informations to create the correct parser! wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/operators/SparkLoopOperator.java (1 line): - line 186: // TODO: In this specific case, the actual output Channel is context-sensitive because we could forward Streams/Collections. wayang-api/wayang-api-sql/src/main/java/org/apache/wayang/api/sql/calcite/converter/WayangProjectVisitor.java (1 line): - line 45: // TODO: create a map with specific dataset type wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/channels/BroadcastChannel.java (1 line): - line 84: // TODO: We must not dispose broadcasts for now because they can break lazy computation. wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/monitor/ZeroMQMonitor.java (1 line): - line 29: * TODO: Implement wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/json/WayangJsonObj.java (1 line): - line 40: * TODO: the java doc is not done because is missing implementation and it performed some wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/json/WayangJsonArray.java (1 line): - line 41: * TODO: the java doc is not done because is missing implementation and it performed some wayang-benchmark/src/main/java/org/apache/wayang/apps/tpch/TPCHQ1WithJavaNative.java (1 line): - line 134: // TODO: Implement sorting (as of now not possible with Wayang's basic operators). wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/plan/wayangplan/InputSlot.java (1 line): - line 212: // TODO: Consider removing broadacast. wayang-api/wayang-api-json/src/main/scala/operatorfromjson/unary/SampleOperatorFromJson.scala (1 line): - line 35: // TODO: Add sample method wayang-ml4all/src/main/java/org/apache/wayang/ml4all/abstraction/plan/wrappers/AssignWrapper.java (1 line): - line 26: public class AssignWrapper extends LogicalOperatorWrapperWithModel> { //TODO:check why this does not work because of the List generic type wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/function/AggregationDescriptor.java (1 line): - line 39: // TODO: What about aggregation functions? wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/function/ProjectionDescriptor.java (1 line): - line 141: // TODO: Revise implementation to support multiple field projection, by names and indexes. wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/serialization/customserializers/OperatorDeserializer.scala (1 line): - line 136: // TODO: Check hard coded output index 0 wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/profiling/PartialExecutionMeasurement.java (1 line): - line 60: // TODO: Capture what has been executed? wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/GlobalReduceOperator.java (1 line): - line 94: // TODO: Come up with a decent way to estimate the "distinctness" of reduction keys. wayang-commons/wayang-utils-profile-db/src/main/java/org/apache/wayang/commons/util/profiledb/storage/Storage.java (1 line): - line 101: //TODO The following methods should be moved to file storage implementation wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/serialization/customserializers/PlatformDeserializer.scala (1 line): - line 35: // TODO: Add all platforms wayang-platforms/wayang-spark/src/main/java/org/apache/wayang/spark/execution/SparkExecutor.java (1 line): - line 115: // TODO: Use proper progress estimator. wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/DistinctOperator.java (1 line): - line 69: // TODO: Come up with a dynamic estimator. wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/JavaPlanBuilder.scala (1 line): - line 21: * TODO: add unitary test to the elements in the file org.apache.wayang.api.JavaPlanBuilder.scala wayang-platforms/wayang-java/src/main/java/org/apache/wayang/java/operators/JavaDoWhileOperator.java (1 line): - line 173: // TODO: In this specific case, the actual output Channel is context-sensitive because we could forward Streams/Collections. wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/serialization/customserializers/MultiContextDeserializer.scala (1 line): - line 78: // TODO: Add all plugins wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/optimizer/enumeration/PlanEnumerator.java (1 line): - line 988: // TODO: if (this.baseEnumeration == null || this.baseEnumeration.getScope().stream().anyMatch(baseEnumeration.getScope()::contains)) { wayang-api/wayang-api-scala-java/src/main/scala/org/apache/wayang/api/package.scala (1 line): - line 41: * TODO: add the documentation in the implicit of org.apache.wayang.api wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/platform/CardinalityBreakpoint.java (1 line): - line 83: // TODO: We might need to look inside of LoopContexts. wayang-profiler/src/main/java/org/apache/wayang/profiler/log/GeneticOptimizer.java (1 line): - line 63: //TODO: change for efficient map