paimon-spark/paimon-spark-common/src/main/java/org/apache/paimon/spark/SparkFilterConverter.java (3 lines): - line 102: // TODO deal with isNaN - line 176: // TODO: AlwaysTrue, AlwaysFalse - line 192: // TODO: support nested field paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/SparkV2FilterConverter.scala (3 lines): - line 54: // TODO deal with isNaN - line 156: // TODO: AlwaysTrue, AlwaysFalse - line 163: // TODO: support nested field paimon-arrow/src/main/java/org/apache/paimon/arrow/writer/ArrowFieldWriters.java (2 lines): - line 529: // TODO: reuse this - line 616: // TODO: reuse this paimon-format/src/main/java/org/apache/parquet/hadoop/ParquetFileReader.java (2 lines): - line 876: // TODO: this should use getDictionaryPageOffset() but it isn't reliable. - line 919: return null; // TODO: should this complain? tools/ci/paimon-ci-tools/src/main/java/org/apache/paimon/tools/ci/licensecheck/NoticeFileChecker.java (2 lines): - line 129: // TODO: this doesn't work for modules requiring a NOTICE that are bundled indirectly - line 130: // TODO: via another non-deployed module paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/sink/StoreSinkWrite.java (2 lines): - line 88: * TODO: The argument list has become too complicated. Build {@link TableWriteImpl} directly - line 105: * TODO: The argument list has become too complicated. Build {@link TableWriteImpl} directly paimon-format/src/main/java/org/apache/parquet/filter2/predicate/ParquetFilters.java (2 lines): - line 190: // TODO Support Decimal and Timestamp - line 268: // TODO we can support decimal and timestamp paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/pulsar/PulsarActionUtils.java (2 lines): - line 271: // TODO set RangeGenerator; set PulsarCrypto - line 320: // TODO currently, PulsarCrypto is not supported paimon-format/src/main/java/org/apache/paimon/format/parquet/ParquetReaderFactory.java (2 lines): - line 107: // TODO: remove this when new reader is stable - line 585: *
TODO: delete this after #3883 is fixed completely. paimon-core/src/main/java/org/apache/paimon/table/query/LocalTableQuery.java (2 lines): - line 146: // TODO pass DeletionVector factory - line 185: /** TODO remove synchronized and supports multiple thread to lookup. */ paimon-common/src/main/java/org/apache/paimon/utils/ProjectedRow.java (1 line): - line 83: // TODO move this logical to hive paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/kafka/KafkaLogStoreFactory.java (1 line): - line 110: // TODO visit all options through CoreOptions paimon-core/src/main/java/org/apache/paimon/operation/FileStoreWrite.java (1 line): - line 80: *
TODO: to support writing partitions with different total buckets, we'll also need a paimon-core/src/main/java/org/apache/paimon/compact/CompactFutureManager.java (1 line): - line 35: // TODO this method may leave behind orphan files if compaction is actually finished paimon-format/src/main/java/org/apache/paimon/format/orc/OrcFileFormat.java (1 line): - line 137: *
TODO: The {@link ThreadLocalClassLoaderConfiguration} in {@link OrcWriterFactory} should paimon-spark/paimon-spark3-common/src/main/scala/org/apache/paimon/spark/commands/PaimonShowTablePartitionCommand.scala (1 line): - line 90: // TODO "Partition Parameters", "Created Time", "Last Access", "Partition Statistics" paimon-core/src/main/java/org/apache/paimon/schema/SchemaManager.java (1 line): - line 579: // TODO: Apply changes to other options that contain column names, such as `sequence.field` paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/catalyst/analysis/PaimonAnalysis.scala (1 line): - line 96: // TODO: Support Spark default value framework if Paimon supports to change default values. paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/memory/MemorySegmentAllocator.java (1 line): - line 65: // TODO Use getOffHeapBuffer in MemorySegment after paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/execution/adaptive/DisableUnnecessaryPaimonBucketedScan.scala (1 line): - line 169: // TODO: replace it with `conf.v2BucketingEnabled` after dropping Spark3.1 paimon-format/src/main/java/org/apache/orc/OrcFile.java (1 line): - line 299: // TODO: We can generalize FileMetadata interface. Make OrcTail implement FileMetadata paimon-core/src/main/java/org/apache/paimon/iceberg/manifest/IcebergManifestFile.java (1 line): - line 248: false, // TODO correct it? paimon-core/src/main/java/org/apache/paimon/table/system/FilesTable.java (1 line): - line 209: // TODO support range? paimon-hive/paimon-hive-connector-common/src/main/java/org/apache/paimon/hive/mapred/PaimonRecordReader.java (1 line): - line 172: // TODO make this more precise paimon-core/src/main/java/org/apache/paimon/table/sink/TableCommitImpl.java (1 line): - line 234: // TODO maybe it can be produced by CommitterOperator paimon-common/src/main/java/org/apache/paimon/data/serializer/InternalRowSerializer.java (1 line): - line 160: /** Convert {@link InternalRow} into {@link BinaryRow}. TODO modify it to code gen. */ paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/write/PaimonV2Write.scala (1 line): - line 117: // TODO clean uncommitted files paimon-flink/paimon-flink-1.15/src/main/java/org/apache/paimon/flink/utils/SingleOutputStreamOperatorUtils.java (1 line): - line 28: *
TODO: merge all Flink version related utils into one class. paimon-core/src/main/java/org/apache/paimon/operation/AbstractFileStoreWrite.java (1 line): - line 516: // TODO see comments on FileStoreWrite#withIgnoreNumBucketCheck for what is needed to support paimon-core/src/main/java/org/apache/paimon/operation/DefaultValueAssigner.java (1 line): - line 126: // TODO improve predicate tree with replacing always true and always false paimon-common/src/main/java/org/apache/paimon/statistics/FullSimpleColStatsCollector.java (1 line): - line 34: // TODO use comparator for not comparable types and extract this logic to a util class paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/PredicateConverter.java (1 line): - line 191: // TODO is_xxx, between_xxx, similar, in, not_in, not? paimon-core/src/main/java/org/apache/paimon/mergetree/compact/aggregate/FieldListaggAgg.java (1 line): - line 45: // TODO: ensure not VARCHAR(n) paimon-common/src/main/java/org/apache/paimon/statistics/TruncateSimpleColStatsCollector.java (1 line): - line 61: // TODO use comparator for not comparable types and extract this logic to a util class paimon-common/src/main/java/org/apache/paimon/utils/TypeUtils.java (1 line): - line 268: .size()); // TODO: What about RowKind? always +I? paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mysql/format/DebeziumEventUtils.java (1 line): - line 51: * table comment. TODO remove this method after the method is added to {@link paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/sink/CombinedTableCompactorSink.java (1 line): - line 175: // TODO:refactor FlinkSink to adopt this sink paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/sink/cdc/CdcRecordUtils.java (1 line): - line 103: // TODO TypeUtils.castFromString cannot deal with complex types like arrays and paimon-core/src/main/java/org/apache/paimon/schema/SchemaValidation.java (1 line): - line 96: *
TODO validate all items in schema and all keys in options. paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/sink/SupportsRowLevelOperationFlinkTableSink.java (1 line): - line 131: // TODO: return partial columns after FLINK-32001 is resolved. paimon-spark/paimon-spark3-common/src/main/scala/org/apache/paimon/spark/commands/PaimonShowTablesExtendedCommand.scala (1 line): - line 57: // TODO: view paimon-common/src/main/java/org/apache/paimon/CoreOptions.java (1 line): - line 3453: // TODO : Supports range-partition strategy. paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/utils/SingleOutputStreamOperatorUtils.java (1 line): - line 28: *
TODO: merge all Flink version related utils into one class. paimon-spark/paimon-spark-common/src/main/scala/org/apache/paimon/spark/PaimonScan.scala (1 line): - line 111: // - one `Split` per InputPartition (TODO: Re-construct splits using minKey/maxKey) paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/sink/cdc/CdcDynamicTableParsingProcessFunction.java (1 line): - line 96: // TODO: support multiple databases paimon-codegen/src/main/scala/org/apache/paimon/codegen/SortCodeGenerator.scala (1 line): - line 414: // TODO: support normalize key for non-compact timestamp paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/source/FlinkSourceBuilder.java (1 line): - line 302: // TODO visit all options through CoreOptions paimon-format/src/main/java/org/apache/orc/impl/RecordReaderImpl.java (1 line): - line 1284: boolean[] result = new boolean[groupsInStripe]; // TODO: avoid alloc? paimon-common/src/main/java/org/apache/paimon/fs/hadoop/HadoopFileIO.java (1 line): - line 414: // TODO: this is a workaround of HADOOP-16255 - remove this when HADOOP-16255 is paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/format/debezium/DebeziumSchemaUtils.java (1 line): - line 70: * Utils to handle 'schema' field in debezium Json. TODO: The methods have many duplicate codes with paimon-core/src/main/java/org/apache/paimon/deletionvectors/DeletionVectorIndexFileWriter.java (1 line): - line 85: *
TODO: We can consider sending a message to delete the deletion file in the future. paimon-format/src/main/java/org/apache/paimon/format/parquet/newreader/VectorizedPlainValuesReader.java (1 line): - line 203: // TODO: consider pushing this in ColumnVector by adding a readBytes with a stride. paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/sink/cdc/CdcRecordStoreMultiWriteOperator.java (1 line): - line 109: // TODO: should use CdcRecordMultiChannelComputer to filter paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/MongoDBRecordParser.java (1 line): - line 93: // TODO: When MongoDB CDC is upgraded to 2.5, uncomment the version check logic paimon-core/src/main/java/org/apache/paimon/table/FileStoreTable.java (1 line): - line 108: /** TODO: this method is weird, old options will overwrite new options. */ paimon-format/src/main/java/org/apache/paimon/format/parquet/newreader/VectorizedParquetRecordReader.java (1 line): - line 265: // TODO: remove usage of the last record by primary key table after batch reset paimon-core/src/main/java/org/apache/paimon/mergetree/SortBufferWriteBuffer.java (1 line): - line 157: // TODO do not use iterator paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/CdcSourceRecord.java (1 line): - line 35: // TODO Use generics to support more scenarios. paimon-core/src/main/java/org/apache/paimon/operation/MergeFileSplitRead.java (1 line): - line 223: // TODO Actually, the index is wrong, but it is OK. paimon-common/src/main/java/org/apache/paimon/predicate/OnlyPartitionKeyEqualVisitor.java (1 line): - line 28: *
TODO: more filters if {@code BatchWriteBuilder} supports predicate.