TODO: Remove the dependency on {@link BloomFilter} and have our own implementation to prevent guava library - line 53: // TODO: This method is here for compatibility reasons, should be removed in future PRs pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/PinotLogicalQueryPlanner.java (2 lines): - line 70: // TODO: Currently we don't support multiple sub-plans. Revisit the following logic when we add the support. - line 123: // TODO: Should be SINGLETON (currently SINGLETON has to be local, so use BROADCAST_DISTRIBUTED instead) pinot-core/src/main/java/org/apache/pinot/core/query/executor/ServerQueryExecutorV1Impl.java (2 lines): - line 216: // TODO: the freshness time should not be collected at query time because there is no guarantee that the consuming - line 270: // TODO: Change broker to watch both IdealState and ExternalView to not query the removed segments pinot-core/src/main/java/org/apache/pinot/core/data/manager/BaseTableDataManager.java (2 lines): - line 1408: // TODO: detect if an index changes from Dictionary to Variable Length Dictionary or vice versa. - line 1409: // TODO: RV TEST pinot-plugins/pinot-minion-tasks/pinot-minion-builtin-tasks/src/main/java/org/apache/pinot/plugin/minion/tasks/BaseMultipleSegmentsConversionExecutor.java (2 lines): - line 77: * TODO: add test for SegmentZKMetadataCustomMapModifier - line 300: // TODO: This is not clean to put the override here, but let's think about it harder to see what is the proper pinot-common/src/main/java/org/apache/pinot/common/request/context/LiteralContext.java (2 lines): - line 41: // TODO: Support all of the types for sql. - line 310: // TODO: Remove single quotes except for string and bytes after broker reducer supports expression format change. pinot-timeseries/pinot-timeseries-spi/src/main/java/org/apache/pinot/tsdb/spi/operator/BaseTimeSeriesOperator.java (2 lines): - line 30: * TODO: Add common hierarchy with other operators like Multistage and Pinot core. This will likely require us to - line 48: // TODO: add stats pinot-query-planner/src/main/java/org/apache/pinot/query/planner/physical/v2/PlanFragmentAndMailboxAssignment.java (2 lines): - line 94: // TODO: This is quite a complex invariant. - line 127: false /* TODO: set sort on receiver */, false /* TODO: set sort on sender */, sendNode); pinot-core/src/main/java/org/apache/pinot/core/transport/TableRouteInfo.java (2 lines): - line 91: * TODO: Note that this method cannot be supported for Logical Tables as the classes cannot be used to maintain a - line 101: * TODO: Note that this method cannot be supported for Logical Tables as the classes cannot be used to maintain a pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/forward/FixedByteMVMutableForwardIndex.java (2 lines): - line 93: // TODO: Optimize it - line 195: // TODO Use powers of two for _rowCountPerChunk to optimize computation for the pinot-plugins/pinot-input-format/pinot-orc/src/main/java/org/apache/pinot/plugin/inputformat/orc/ORCRecordReader.java (2 lines): - line 58: *
TODO: Support SDF (simple date format) time column pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/store/SegmentLocalFSDirectory.java (1 line): - line 405: // TODO: thread-safety. Single writer may be shared pinot-core/src/main/java/org/apache/pinot/core/query/logger/ServerQueryLogger.java (1 line): - line 207: * TODO: come up with other criteria for forcing a log and come up with better numbers. pinot-minion/src/main/java/org/apache/pinot/minion/MinionAdminApiApplication.java (1 line): - line 65: // TODO: Add bindings as needed in future. pinot-controller/src/main/resources/app/theme/index.ts (1 line): - line 56: // TODO: remove all StyledButton usages pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/forward/FixedByteSVMutableForwardIndex.java (1 line): - line 48: // TODO: Optimize it pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/readers/forward/VarByteChunkForwardIndexReaderV4.java (1 line): - line 51: * TODO: Consider reading directly from sliced ByteBuffer instead of copying to byte[] first pinot-query-planner/src/main/java/org/apache/pinot/query/planner/physical/DispatchableSubPlan.java (1 line): - line 147: // TODO: this isn't entirely accurate and can be improved. One issue is that the maxExecutionThreads can be pinot-spi/src/main/java/org/apache/pinot/spi/executor/MdcExecutor.java (1 line): - line 34: * TODO: Convert this class and its usages into an Executor instead of an ExecutorService pinot-common/src/main/java/org/apache/pinot/common/cursors/AbstractResponseStore.java (1 line): - line 188: // TODO: Set a result table with schema and no rows pinot-controller/src/main/java/org/apache/pinot/controller/validation/OfflineSegmentIntervalChecker.java (1 line): - line 150: // TODO: we can further split the existing ValidationMetricName enum to OFFLINE and REALTIME, pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/logical/PinotLogicalExchange.java (1 line): - line 44: // TODO: Revisit this as we add more custom distribution types. pinot-server/src/main/java/org/apache/pinot/server/starter/helix/SegmentOnlineOfflineStateModelFactory.java (1 line): - line 48: // TODO: Check how Helix handle CONSUMING -> DROPPED transition and remove this cache if it's not needed. pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/invertedindex/RealtimeLuceneTextIndex.java (1 line): - line 194: // TODO: Optimize this similar to how we have done for offline/completed segments. pinot-controller/src/main/java/org/apache/pinot/controller/util/CompletionServiceHelper.java (1 line): - line 83: // TODO: use some service other than completion service so that we know which server encounters the error pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/ProjectionBlock.java (1 line): - line 67: // TODO: only support one level of path for now, e.g. `map.key` pinot-core/src/main/java/org/apache/pinot/core/plan/DistinctPlanNode.java (1 line): - line 64: // TODO: reserve special value in dictionary (e.g. -1) for null in the future so pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickstartRunner.java (1 line): - line 222: // TODO: Stop Minion pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/StartBrokerCommand.java (1 line): - line 63: // TODO: support forbids = {"-brokerHost", "-brokerPort"}) pinot-broker/src/main/java/org/apache/pinot/broker/routing/adaptiveserverselector/LatencySelector.java (1 line): - line 49: // TODO: If two or more servers have same latency, break the tie intelligently. pinot-plugins/pinot-stream-ingestion/pinot-kafka-base/src/main/java/org/apache/pinot/plugin/stream/kafka/KafkaConfigBackwardCompatibleUtils.java (1 line): - line 47: //FIXME: This needs to be done because maven shade plugin also overwrites the constants in the classes pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/groupby/NoDictionaryMultiColumnGroupKeyGenerator.java (1 line): - line 47: * TODO: pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/SumValuesIntegerTupleSketchAggregationFunction.java (1 line): - line 37: // TODO if extra aggregation modes are supported, make this switch pinot-common/src/main/java/org/apache/pinot/common/response/broker/BrokerResponseNativeV2.java (1 line): - line 38: * TODO: Currently this class cannot be used to deserialize the JSON response. pinot-server/src/main/java/org/apache/pinot/server/starter/helix/IngestionBasedConsumptionStatusChecker.java (1 line): - line 145: // TODO: implement a way to have this work correctly for kafka consumers pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/StartServerCommand.java (1 line): - line 81: // TODO support forbids = {"-serverHost", "-serverPort", "-dataDir", "-segmentDir"} pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/CoalesceTransformFunction.java (1 line): - line 300: // TODO: Support BOOLEAN, TIMESTAMP, BYTES pinot-common/src/main/java/org/apache/pinot/common/request/context/RequestContextUtils.java (1 line): - line 426: // TODO: Pass the literal context into the Predicate so that we can read the value based on the data type. Currently pinot-controller/src/main/resources/app/router.tsx (1 line): - line 40: // TODO: make async pinot-spi/src/main/java/org/apache/pinot/spi/data/SchemaValidatorFactory.java (1 line): - line 38: //TODO: support schema validation for more data formats like ORC. pinot-broker/src/main/java/org/apache/pinot/broker/routing/instanceselector/BaseInstanceSelector.java (1 line): - line 80: * TODO: refresh new/old segment state where there is no update from helix for long time. pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/SumAggregationFunction.java (1 line): - line 138: // TODO: even though the source data has BIG_DECIMAL type, we still only support double precision. pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/timeseries/LeafTimeSeriesOperator.java (1 line): - line 60: // TODO: Return error in the TimeSeriesBlock instead? pinot-connectors/pinot-flink-connector/src/main/java/org/apache/pinot/connector/flink/sink/FlinkSegmentWriter.java (1 line): - line 203: // TODO: Revisit whether we should transform the row pinot-core/src/main/java/org/apache/pinot/core/segment/processing/genericrow/GenericRowFileWriter.java (1 line): - line 39: * TODO: Consider using ByteBuffer instead of OutputStream. pinot-segment-local/src/main/java/org/apache/pinot/segment/local/recordtransformer/enricher/function/CustomFunctionEnricher.java (1 line): - line 37: * TODO: Merge this and ExpressionTransformer pinot-timeseries/pinot-timeseries-spi/src/main/java/org/apache/pinot/tsdb/spi/RangeTimeSeriesRequest.java (1 line): - line 51: // TODO: It's not ideal to have another default, that plays with numGroupsLimit, etc. pinot-core/src/main/java/org/apache/pinot/core/query/optimizer/statement/JsonStatementOptimizer.java (1 line): - line 108: * us to implicitly convert the output of json path expression to DOUBLE. TODO: There are better ways of doing this pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/FilterOperator.java (1 line): - line 99: // TODO: Consider batching the rows to improve performance. pinot-core/src/main/java/org/apache/pinot/core/operator/query/FilteredGroupByOperator.java (1 line): - line 189: // TODO: Currently the groups are not trimmed if there is no ordering specified. Consider ordering on group-by pinot-plugins/pinot-segment-writer/pinot-segment-writer-file-based/src/main/java/org/apache/pinot/plugin/segmentwriter/filebased/FileBasedSegmentWriter.java (1 line): - line 144: // TODO: Revisit whether we should transform the row pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/datasource/DataSource.java (1 line): - line 81: *
TODO: Have a separate interface for range index. pinot-core/src/main/java/org/apache/pinot/core/operator/combine/GroupByCombineOperator.java (1 line): - line 158: //TODO: change upsert api so that it accepts intermediateRecord directly pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/invertedindex/NativeMutableTextIndex.java (1 line): - line 43: //TODO: Move to mutable dictionary pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/readers/forward/VarByteChunkMVForwardIndexReader.java (1 line): - line 35: * TODO: Consider reading directly from sliced ByteBuffer instead of copying to byte[] first pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/nativefst/automaton/Automaton.java (1 line): - line 312: //TODO: move to bitsets pinot-common/src/main/java/org/apache/pinot/common/utils/ServiceStartableUtils.java (1 line): - line 91: // TODO: Currently it puts all keys to the instance config. Consider standardizing instance config keys and pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/fwd/CLPForwardIndexCreatorV2.java (1 line): - line 322: * over serdes overhead. TODO: add the code in a separate PR to simplify review process pinot-core/src/main/java/org/apache/pinot/core/geospatial/transform/function/StWithinFunction.java (1 line): - line 54: // TODO: to fully support Geography within operation. pinot-core/src/main/java/org/apache/pinot/core/operator/combine/CombineOperatorUtils.java (1 line): - line 52: // TODO: Check all operators and properly implement the getIndexSegment. pinot-query-runtime/src/main/java/org/apache/pinot/query/service/dispatch/DispatchClient.java (1 line): - line 40: * TODO: It might be neater to implement pooling at the client level. Two options: (1) Pass a channel provider and pinot-broker/src/main/java/org/apache/pinot/broker/grpc/BrokerGrpcServer.java (1 line): - line 335: //TODO: move this method from OSS Pinot class into util, and then re-use this util pinot-core/src/main/java/org/apache/pinot/core/operator/docvalsets/FilteredRowBasedBlockValSet.java (1 line): - line 40: * TODO: Support MV pinot-query-planner/src/main/java/org/apache/pinot/query/context/PlannerContext.java (1 line): - line 43: * TODO: currently we don't support option or query rewrite. pinot-core/src/main/java/org/apache/pinot/core/query/optimizer/filter/FilterOptimizer.java (1 line): - line 28: * TODO: Support AlwaysTrueFilter and AlwaysFalseFilter pinot-query-planner/src/main/java/org/apache/pinot/query/planner/physical/DispatchablePlanVisitor.java (1 line): - line 64: // TODO: Figure out a way to parallelize Empty OVER() and OVER(ORDER BY) so the computation can be done across pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/lineage/DefaultLineageManager.java (1 line): - line 121: // TODO: Currently, we preserve the replaced segments for 1 day for REFRESH tables only. Once we support pinot-timeseries/pinot-timeseries-spi/src/main/java/org/apache/pinot/tsdb/spi/series/TimeSeries.java (1 line): - line 146: // TODO: This can be cleaned up pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/inv/geospatial/BaseH3IndexCreator.java (1 line): - line 116: // TODO: support multiple resolutions pinot-common/src/main/java/org/apache/pinot/common/segment/generation/SegmentGenerationUtils.java (1 line): - line 263: //TODO: sort input files based on creation time pinot-spi/src/main/java/org/apache/pinot/spi/config/table/TierConfig.java (1 line): - line 58: // TODO: only "serverTag" is supported currently. In next iteration, "InstanceAssignmentConfig pinot-plugins/pinot-stream-ingestion/pinot-kafka-base/src/main/java/org/apache/pinot/plugin/stream/kafka/KafkaStreamMessageMetadata.java (1 line): - line 26: // TODO: Make it a util class pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/window/aggregate/WindowValueAggregatorFactory.java (1 line): - line 41: // TODO: Add type specific aggregator implementations pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/operands/FunctionOperand.java (1 line): - line 109: // TODO: Optimize per record conversion pinot-broker/src/main/java/org/apache/pinot/broker/routing/adaptiveserverselector/NumInFlightReqSelector.java (1 line): - line 47: // TODO: If two or more servers have same number of in flight requests, break the tie intelligently. pinot-plugins/pinot-file-system/pinot-s3/src/main/java/org/apache/pinot/plugin/filesystem/S3PinotFS.java (1 line): - line 728: // TODO: parts can be uploaded in parallel for higher throughput, given a thread pool. pinot-spi/src/main/java/org/apache/pinot/spi/config/table/assignment/InstanceReplicaGroupPartitionConfig.java (1 line): - line 59: // TODO: remove this config in the next official release pinot-query-runtime/src/main/java/org/apache/pinot/query/mailbox/channel/MailboxStatusObserver.java (1 line): - line 51: // TODO: this feedback info is not used to throttle the send speed. it is currently being discarded. pinot-spi/src/main/java/org/apache/pinot/spi/config/table/DedupConfig.java (1 line): - line 30: // TODO: Consider removing this field. It should always be true when DedupConfig is present. pinot-tools/src/main/java/org/apache/pinot/tools/PinotToolLauncher.java (1 line): - line 58: // TODO: Use the natively supported version and usage by picocli pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/StreamOp.java (1 line): - line 67: * TODO: Consider using a file-based stream, where "pushing" events is simply adding new files to pinot-common/src/main/java/org/apache/pinot/common/utils/tls/JvmDefaultSslContext.java (1 line): - line 52: * TODO: need to support "javax.net.ssl.keyStoreProvider", "javax.net.ssl.trustStoreProvider", "https.protocols" and pinot-query-planner/src/main/java/org/apache/pinot/query/routing/WorkerMetadata.java (1 line): - line 41: * TODO: WorkerMetadata now doesn't have info directly about how to construct the mailboxes. instead it rely on pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/instance/InstanceAssignmentDriver.java (1 line): - line 130: // TODO: support more constraints pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/MultiStageBrokerRequestHandler.java (1 line): - line 498: // TODO: Currently we don't emit metric for QUERY_TOTAL_TIME_MS pinot-spi/src/main/java/org/apache/pinot/spi/stream/StreamMetadataProvider.java (1 line): - line 109: * TODO - Remove the flag and fix the clients calling computePartitionGroupMetadata() pinot-controller/src/main/java/org/apache/pinot/controller/util/ConsumingSegmentInfoReader.java (1 line): - line 240: // TODO: Invert response to be a map of partition to a vector of [currentOffset, recordsLag, latestUpstreamOffset, pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/forward/CLPMutableForwardIndex.java (1 line): - line 37: // TODO: We can get better dynamic estimates using segment stats pinot-spi/src/main/java/org/apache/pinot/spi/ingestion/batch/spec/SegmentGenerationJobSpec.java (1 line): - line 51: // TODO: set the default value to false after all clients are aware of this. pinot-core/src/main/java/org/apache/pinot/core/operator/timeseries/TimeSeriesOperatorUtils.java (1 line): - line 47: // TODO: Check isNumGroupsLimitReached, and propagate it somehow to the caller. pinot-tools/src/main/java/org/apache/pinot/tools/config/validator/TableConfigValidator.java (1 line): - line 29: // TODO: ADD MORE VALIDATIONS. pinot-core/src/main/java/org/apache/pinot/core/util/NumberUtils.java (1 line): - line 204: try { // TODO: remove toString() pinot-core/src/main/java/org/apache/pinot/core/query/utils/rewriter/ParentAggregationResultRewriter.java (1 line): - line 42: * TODO: Add support for `AS` clauses. pinot-core/src/main/java/org/apache/pinot/core/query/pruner/ColumnValueSegmentPruner.java (1 line): - line 187: // TODO: This check should be performed on the broker pinot-core/src/main/java/org/apache/pinot/core/query/scheduler/resources/PolicyBasedResourceManager.java (1 line): - line 72: // TODO: For 1 thread we should have the query run in the same queryRunner thread pinot-spi/src/main/java/org/apache/pinot/spi/stream/StreamPartitionMsgOffsetFactory.java (1 line): - line 42: * TODO: Revisit this API since offset should be immutable. pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/loader/SegmentPreProcessor.java (1 line): - line 68: // TODO: Use Schema from IndexLoadingConfig pinot-common/src/main/java/org/apache/pinot/common/function/scalar/StringFunctions.java (1 line): - line 546: * TODO: Revisit if index should be one-based (both Presto and Postgres use one-based index, which starts with 1) pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/readers/MultiplePinotSegmentRecordReader.java (1 line): - line 172: * TODO: add the support for multi value columns pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/BrokerCache.java (1 line): - line 55: * TODO can we introduce a SSE based controller endpoint to make the update reactive in the client? pinot-broker/src/main/java/org/apache/pinot/broker/querylog/QueryLogger.java (1 line): - line 227: // TODO: Consider adding the number of unavailable segments to the response pinot-server/src/main/java/org/apache/pinot/server/api/resources/ReingestionResource.java (1 line): - line 83: // TODO: Make them configurable pinot-spi/src/main/java/org/apache/pinot/spi/config/table/SegmentZKPropsConfig.java (1 line): - line 21: // TODO Possibly redundant class. Use SegmentZKMetadata throughout? pinot-plugins/pinot-input-format/pinot-protobuf/src/main/java/org/apache/pinot/plugin/inputformat/protobuf/ProtoBufSchemaUtils.java (1 line): - line 169: // TODO: Switch to new format after releasing 0.11.0 pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/IntegerTupleSketchAggregationFunction.java (1 line): - line 140: // TODO if extra aggregation modes are supported, make this switch pinot-core/src/main/java/org/apache/pinot/core/query/optimizer/filter/TimePredicateFilterOptimizer.java (1 line): - line 290: // TODO: Support SDF output format pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/ClusterDescriptor.java (1 line): - line 21: // TODO Support https, perhaps based on configuration pinot-controller/src/main/java/org/apache/pinot/controller/api/upload/ZKOperator.java (1 line): - line 57: * TODO: Merge it into PinotHelixResourceManager pinot-controller/src/main/java/org/apache/pinot/controller/recommender/realtime/provisioning/MemoryEstimator.java (1 line): - line 382: // TODO: better way to estimate inverted indexes memory utilization pinot-core/src/main/java/org/apache/pinot/core/data/manager/realtime/ConsumerCoordinator.java (1 line): - line 77: * TODO: Revisit if we want to handle the following corner case: pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/H3Utils.java (1 line): - line 78: // TODO: this can be further optimized to use native H3 implementation. They have plan to support natively. pinot-spi/src/main/java/org/apache/pinot/spi/data/readers/RecordReaderFactory.java (1 line): - line 39: // TODO: This could be removed once we have dynamic loading plugins supports. pinot-core/src/main/java/org/apache/pinot/core/query/scheduler/SchedulerPriorityQueue.java (1 line): - line 36: // TODO: throw OutOfCapacity or drop from the front of the queue ? pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotProjectJoinTransposeRule.java (1 line): - line 30: * TODO: Allow transposing project into left side of lookup join. pinot-spi/src/main/java/org/apache/pinot/spi/data/readers/RecordReader.java (1 line): - line 69: * TODO: Consider clearing the row within the record reader to simplify the caller pinot-common/src/main/java/org/apache/pinot/common/assignment/InstancePartitions.java (1 line): - line 47: *
TODO: Support explicit partition configuration for CONSUMING instance partitions
pinot-controller/src/main/java/org/apache/pinot/controller/util/ServerSegmentMetadataReader.java (1 line):
- line 87: * TODO Some performance improvement ideas to explore:
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/recordtransformer/ComplexTypeTransformer.java (1 line):
- line 85: * TODO: support multi-dimensional array handling
pinot-core/src/main/java/org/apache/pinot/core/startree/plan/StarTreeProjectPlanNode.java (1 line):
- line 85: // TODO: figure out a way to close this operator, as it may hold reader context
pinot-query-runtime/src/main/java/org/apache/pinot/query/mailbox/channel/ChannelManager.java (1 line):
- line 47: // TODO: Revisit parameters
pinot-plugins/pinot-stream-ingestion/pinot-kafka-2.0/src/main/java/org/apache/pinot/plugin/stream/kafka20/KafkaPartitionLevelConsumer.java (1 line):
- line 93: // TODO: A better solution would be to fetch earliest offset from topic and see if it is greater than startOffset.
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/converter/stats/MutableColumnStatistics.java (1 line):
- line 39: * TODO: Gather more info on the fly to avoid scanning the segment
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/dedup/PartitionDedupMetadataManager.java (1 line):
- line 47: * TODO: As commented in PartitionUpsertMetadataManager, revisit this method and see if we can use the same
pinot-plugins/pinot-minion-tasks/pinot-minion-builtin-tasks/src/main/java/org/apache/pinot/plugin/minion/tasks/realtimetoofflinesegments/RealtimeToOfflineSegmentsTaskExecutor.java (1 line):
- line 200: * TODO: Making the minion task update the ZK metadata is an anti-pattern, however cannot see another way to do it
pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BrokerUserDefinedMessageHandlerFactory.java (1 line):
- line 124: // TODO: Fetch the table config here and pass it into the managers, or consider merging these 2 managers
pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/join/LookupTable.java (1 line):
- line 30: // TODO: Make it configurable
pinot-connectors/pinot-spark-3-connector/src/main/scala/org/apache/pinot/connector/spark/v3/datasource/PinotDataWriter.scala (1 line):
- line 198: // TODO Support file systems other than local and HDFS
pinot-controller/src/main/java/org/apache/pinot/controller/util/TableSizeReader.java (1 line):
- line 257: // TODO: here we assume server contains all segments in ideal state, which might not be the case
pinot-core/src/main/java/org/apache/pinot/core/transport/server/routing/stats/ServerRoutingStatsManager.java (1 line):
- line 249: * TODO: Explore if reads to the _serverQueryStatsMap can be done without locking.
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/recordtransformer/ExpressionTransformer.java (1 line):
- line 46: * TODO: Merge this and CustomFunctionEnricher
pinot-broker/src/main/java/org/apache/pinot/broker/queryquota/HelixExternalViewBasedQueryQuotaManager.java (1 line):
- line 454: // TODO consider computing only the online brokers which serve the tables under the database
pinot-query-runtime/src/main/java/org/apache/pinot/query/service/dispatch/timeseries/TimeSeriesDispatchObserver.java (1 line):
- line 34: * TODO: This shouldn't exist and we should re-use DispatchObserver. TBD as part of multi-stage
pinot-common/src/main/java/org/apache/pinot/common/config/provider/TableCache.java (1 line):
- line 715: // TODO : Add expression override map for logical table, issue #15607
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotEvaluateLiteralRule.java (1 line):
- line 294: // TODO: Add more type handling
pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/RebalanceTableCommand.java (1 line):
- line 111: // TODO: Add pre-checks option to this command. This needs the PinotHelixResourceManager to be wired in to use
pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/ZookeeperResource.java (1 line):
- line 123: // TODO: should throw Not found exception, but need to fix how UI interpret the error
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/stats/MapColumnPreIndexStatsCollector.java (1 line):
- line 188: // TODO: I've been told that we already have a function to do this, so find that function and replace this
pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/main/java/org/apache/pinot/plugin/stream/pulsar/PulsarConfig.java (1 line):
- line 66: //TODO: find a good way to support pushing this secret to all servers.
pinot-spi/src/main/java/org/apache/pinot/spi/trace/Tracer.java (1 line):
- line 30: * TODO: Consider using string id or random id. Currently different broker might send query with the same request id.
pinot-common/src/main/java/org/apache/pinot/common/datatable/StatMap.java (1 line):
- line 60: // TODO: Study whether this is fine or we should impose a single thread policy in StatMaps
pinot-core/src/main/java/org/apache/pinot/core/query/reduce/SelectionOnlyStreamingReducer.java (1 line):
- line 54: // TODO: For data table map with more than one data tables, remove conflicting data tables
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/json/MutableJsonIndexImpl.java (1 line):
- line 114: // TODO: Consider storing tuples as the key of the posting list so that the strings can be reused, and the hashcode
pinot-controller/src/main/java/org/apache/pinot/controller/helix/SegmentStatusChecker.java (1 line):
- line 210: * TODO: revisit the logic and reduce the ZK access
pinot-core/src/main/java/org/apache/pinot/core/query/scheduler/resources/BinaryWorkloadResourceManager.java (1 line):
- line 101: // TODO: For 1 thread we should have the query run in the same queryRunner thread
pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountIntegerTupleSketchAggregationFunction.java (1 line):
- line 36: // TODO if extra aggregation modes are supported, make this switch
pinot-controller/src/main/java/org/apache/pinot/controller/api/ControllerAdminApiApplication.java (1 line):
- line 61: // TODO See ControllerResponseFilter
pinot-common/src/main/java/org/apache/pinot/common/datablock/DataBlockUtils.java (1 line):
- line 113: // TODO: Pass in meaningful error code.
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategyFactory.java (1 line):
- line 51: // TODO: Handle segment assignment strategy in future for CONSUMING segments in follow up PR
pinot-core/src/main/java/org/apache/pinot/core/operator/filter/predicate/RangePredicateEvaluatorFactory.java (1 line):
- line 252: // TODO: Tune this threshold
pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/index/metadata/ColumnMetadataImpl.java (1 line):
- line 237: // TODO: Use getProperty() for other properties as well to avoid the overhead of variable substitution
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/io/readerwriter/impl/FixedByteSingleValueMultiColumnReaderWriter.java (1 line):
- line 36: * TODO: Clean this up
pinot-common/src/main/java/org/apache/pinot/common/metrics/ControllerGauge.java (1 line):
- line 71: // TODO: Unify below subtask metrics into a single metric with status label
pinot-core/src/main/java/org/apache/pinot/core/operator/combine/BaseSingleBlockCombineOperator.java (1 line):
- line 79: * TODO: Get the actual number of query worker threads instead of using the default value.
pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/base/AbstractBaseResultSetMetadata.java (1 line):
- line 97: //TODO: Implement API to provide tableName with BrokerResponse.
pinot-core/src/main/java/org/apache/pinot/core/transport/InstanceRequestHandler.java (1 line):
- line 73: // TODO: make it configurable
pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java (1 line):
- line 376: // TODO: decouple protocol and engine selection.
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/SegmentDeletionManager.java (1 line):
- line 197: // TODO: If removing segments from deep store fails (e.g. controller crashes, deep store unavailable), these
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/retention/RetentionManager.java (1 line):
- line 158: // TODO: handle the orphan segment deletion for hybrid table
pinot-common/src/main/java/org/apache/pinot/common/function/scalar/ArrayFunctions.java (1 line):
- line 113: // TODO: if values1.length << values2.length. Use binary search can speed up the query
pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/StartControllerCommand.java (1 line):
- line 66: // TODO support:
pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/StartMinionCommand.java (1 line):
- line 54: // TODO: support forbids = {"-minionHost", "-minionPort"}
pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/AnonymizeDataCommand.java (1 line):
- line 136: // TODO: Uncomment after re-implementing the SQL query generator
pinot-core/src/main/java/org/apache/pinot/core/query/optimizer/filter/IdenticalPredicateFilterOptimizer.java (1 line):
- line 73: * TODO: The rewrite is already happening in PredicateComparisonRewriter.updateFunctionExpression(),
pinot-common/src/main/java/org/apache/pinot/common/response/PinotBrokerTimeSeriesResponse.java (1 line):
- line 40: * TODO: We will evolve this until Pinot 1.3. At present we are mimicking Prometheus HTTP API.
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalanceProgressStats.java (1 line):
- line 267: // TODO: Clean this up once new stats are verified
pinot-common/src/main/java/org/apache/pinot/common/utils/config/TableConfigUtils.java (1 line):
- line 372: * TODO: Other tier specific configs like segment assignment policy may be handled in this helper method too, to
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/function/FunctionEvaluatorFactory.java (1 line):
- line 53: // TODO: once we have published a release w/ IngestionConfig#TransformConfigs, stop reading transform function
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/readers/PinotSegmentRecordReader.java (1 line):
- line 270: // TODO:
pinot-core/src/main/java/org/apache/pinot/core/operator/filter/H3IndexFilterOperator.java (1 line):
- line 68: // TODO: handle nested geography/geometry conversion functions
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/physical/PinotDispatchPlanner.java (1 line):
- line 105: // TODO: Switch to Worker SPI to avoid multiple-places where workers are assigned.
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/RecordReaderSegmentCreationDataSource.java (1 line):
- line 36: // TODO: make it Closeable so that resource in record reader can be released
pinot-plugins/pinot-minion-tasks/pinot-minion-builtin-tasks/src/main/java/org/apache/pinot/plugin/minion/tasks/segmentgenerationandpush/SegmentGenerationAndPushTaskExecutor.java (1 line):
- line 154: // TODO: Make this use SegmentUploader
pinot-core/src/main/java/org/apache/pinot/core/operator/docvalsets/RowBasedBlockValSet.java (1 line):
- line 39: * TODO: Support MV
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/store/FilePerIndexDirectory.java (1 line):
- line 102: // TODO: this leaks the removed data buffer (it's not going to be freed in close() method)
pinot-common/src/main/java/org/apache/pinot/sql/parsers/rewriter/PredicateComparisonRewriter.java (1 line):
- line 67: // TODO: Convert literals to boolean expressions
pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/ControllerResponseFilter.java (1 line):
- line 32: // TODO Remove this class and find out how to use LoggingFeature as described in
pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/executor/OpChainSchedulerService.java (1 line):
- line 86: // TODO: Change the code so we ownership is expressed in the code in a better way
pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/results/ResultsBlockUtils.java (1 line):
- line 43: // TODO: Use schema to fill the correct data types for empty results.
pinot-common/src/main/java/org/apache/pinot/common/function/scalar/ArithmeticFunctions.java (1 line):
- line 175: // TODO: The function should ideally be named 'round'
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/vector/VectorIndexType.java (1 line):
- line 93: // TODO: Support more vector index types.
pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/MultiStageQueryStats.java (1 line):
- line 521: // TODO: we can serialize with short or variable size
pinot-core/src/main/java/org/apache/pinot/server/realtime/ControllerLeaderLocator.java (1 line):
- line 209: // TODO: improve the exception handling.
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotFilterJoinRule.java (1 line):
- line 87: // TODO - add logic to derive additional filters. E.g., from
pinot-query-runtime/src/main/java/org/apache/pinot/query/service/dispatch/timeseries/AsyncQueryTimeSeriesDispatchResponse.java (1 line):
- line 28: * TODO: This shouldn't exist and we should re-use AsyncQueryDispatchResponse. TBD as part of multi-stage
pinot-spi/src/main/java/org/apache/pinot/spi/data/readers/GenericRow.java (1 line):
- line 50: * FIXME: Based on the current behavior, we support the following data types:
pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/BaseBrokerRequestHandler.java (1 line):
- line 292: // TODO: Add partial result flag to RequestContext
pinot-common/src/main/java/org/apache/pinot/common/minion/MinionTaskMetadataUtils.java (1 line):
- line 160: // TODO: another way of finding old minion task metadata path is: (1) use reflection to find all task types,
pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/base/AbstractBaseConnectionMetaData.java (1 line):
- line 224: //TODO: Implement conversion mapping
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/bloom/BloomIndexType.java (1 line):
- line 93: // TODO (saurabh) Check if we can do a better estimate
pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/SetOperator.java (1 line):
- line 129: // TODO: Consider batching the rows to improve performance.
pinot-core/src/main/java/org/apache/pinot/core/query/distinct/table/DistinctTable.java (1 line):
- line 32: // TODO: Tune the initial capacity
pinot-common/src/main/java/org/apache/pinot/common/messages/SegmentReloadMessage.java (1 line):
- line 67: // TODO: use the new List field and deprecate the partition name in next release.
pinot-plugins/pinot-stream-ingestion/pinot-pulsar/src/main/java/org/apache/pinot/plugin/stream/pulsar/PulsarStreamMessageMetadata.java (1 line):
- line 34: // TODO: Make it a util class
pinot-common/src/main/java/org/apache/pinot/common/datablock/ColumnarDataBlock.java (1 line):
- line 77: // TODO: add whole-column access methods.
pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/utils/BrokerSelectorUtils.java (1 line):
- line 109: // TODO: This is probably unnecessary and even wrong. `brokerData` should include the fully qualified name.
pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/utils/StatisticalAggregationFunctionUtils.java (1 line):
- line 40: //TODO: Add MV support for covariance
pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/executor/OpChainScheduler.java (1 line):
- line 83: * TODO: Figure out shutdown flow in context of graceful shutdown.
pinot-controller/src/main/java/org/apache/pinot/controller/recommender/data/generator/DataGenerator.java (1 line):
- line 47: // TODO: add DATE_TIME to the data generator
pinot-broker/src/main/java/org/apache/pinot/broker/routing/adaptiveserverselector/HybridSelector.java (1 line):
- line 55: // TODO: If two or more servers have the same score, break the tie intelligently.
pinot-core/src/main/java/org/apache/pinot/core/data/table/IndexedTable.java (1 line):
- line 167: // TODO: Directly return final result in _tableResizer.getTopRecords to avoid extracting final result multiple times
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/RealtimeSegmentConfig.java (1 line):
- line 72: // TODO: Clean up this constructor. Most of these things can be extracted from tableConfig.
pinot-core/src/main/java/org/apache/pinot/core/plan/ProjectPlanNode.java (1 line):
- line 84: // TODO: figure out a way to close this operator, as it may hold reader context
pinot-common/src/main/java/org/apache/pinot/common/function/scalar/DateTimeFunctions.java (1 line):
- line 544: * TODO: Consider changing the return type to Timestamp
pinot-core/src/main/java/org/apache/pinot/core/common/BlockDocIdSet.java (1 line):
- line 58: // TODO: This scan is not counted in the execution stats
pinot-tools/src/main/java/org/apache/pinot/tools/anonymizer/MapBasedGlobalDictionaries.java (1 line):
- line 160: * TODO: May be if we can do entry.setValue() on Map.Entry, then we don't need this wrapper
pinot-spi/src/main/java/org/apache/pinot/spi/config/table/ReplicaGroupStrategyConfig.java (1 line):
- line 46: * TODO: use partition info from SegmentPartitionConfig
pinot-tools/src/main/java/org/apache/pinot/tools/perf/PerfBenchmarkDriver.java (1 line):
- line 94: // TODO: read from configuration.
pinot-plugins/pinot-stream-ingestion/pinot-kafka-3.0/src/main/java/org/apache/pinot/plugin/stream/kafka30/KafkaPartitionLevelConsumer.java (1 line):
- line 93: // TODO: A better solution would be to fetch earliest offset from topic and see if it is greater than startOffset.
pinot-broker/src/main/java/org/apache/pinot/broker/routing/segmentpruner/TimeSegmentPruner.java (1 line):
- line 170: * TODO: 1. Merge adjacent intervals
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/index/column/PhysicalColumnIndexContainer.java (1 line):
- line 81: // TODO (index-spi): Verify that readers can be closed in any order
pinot-query-planner/src/main/java/org/apache/pinot/query/type/TypeFactory.java (1 line):
- line 104: // TODO: support LIST, MV column should go fall into this category.
pinot-common/src/main/java/org/apache/pinot/common/function/scalar/DataTypeConversionFunctions.java (1 line):
- line 43: // TODO: Support cast for MV
pinot-common/src/main/java/org/apache/pinot/common/datablock/RowDataBlock.java (1 line):
- line 80: // TODO: add whole-row access methods.
pinot-core/src/main/java/org/apache/pinot/core/geospatial/transform/function/StContainsFunction.java (1 line):
- line 55: // TODO: to fully support Geography contains operation.
pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/BaseTransformFunction.java (1 line):
- line 69: // TODO: Support MV BIG_DECIMAL
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/forward/CLPMutableForwardIndexV2.java (1 line):
- line 137: // TODO: Provide more optimized default values in the future
pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/memory/PinotDataBuffer.java (1 line):
- line 687: // TODO: Most calls to this method are just used to then read the content of the buffer.
pinot-tools/src/main/java/org/apache/pinot/tools/BootstrapTableTool.java (1 line):
- line 172: // TODO: it's unclear why this broke as it's been working, but using the PUT API would solve this
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/physical/DispatchablePlanMetadata.java (1 line):
- line 60: // TODO: Change the following maps to lists
pinot-tools/src/main/java/org/apache/pinot/tools/anonymizer/ArrayBasedGlobalDictionaries.java (1 line):
- line 254: // TODO: make this iterative
pinot-plugins/pinot-input-format/pinot-csv/src/main/java/org/apache/pinot/plugin/inputformat/csv/CSVRecordReader.java (1 line):
- line 198: // TODO: This is very expensive. Consider marking the reader then reset it. The challenge here is that the reader
pinot-plugins/pinot-input-format/pinot-avro-base/src/main/java/org/apache/pinot/plugin/inputformat/avro/AvroUtils.java (1 line):
- line 371: // TODO: Switch to new format after releasing 0.11.0
pinot-plugins/pinot-minion-tasks/pinot-minion-builtin-tasks/src/main/java/org/apache/pinot/plugin/minion/tasks/refreshsegment/RefreshSegmentTaskGenerator.java (1 line):
- line 175: // TODO: See comment above - add this later if required.
pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/PlanNodeToOpChain.java (1 line):
- line 185: // TODO: Consider adding non-equi as a separate join strategy.
pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/ConnectionFactory.java (1 line):
- line 265: // TODO: This code incorrectly assumes that connection properties are always the same
pinot-core/src/main/java/org/apache/pinot/core/data/table/Key.java (1 line):
- line 37: * TODO: Consider replacing Key with Record as the concept is very close and the implementation is the same
pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/BaseBooleanAggregationFunction.java (1 line):
- line 35: // TODO: change this to implement BaseSingleInputAggregationFunction